Deidentified 7B — A Blank Slate for Custom Identity
This is a 7B parameter instruct model that has been surgically deidentified at the weight level. The original model's identity, refusal behaviors, and sycophantic tendencies have been removed through SVD multi-direction contrastive activation analysis and norm-preserving projection.
What remains: All capabilities — math, coding, reasoning, knowledge, language understanding. Fully intact.
What's gone: The model's original self-concept, refusal guardrails, and tendency to agree with incorrect statements. Tested against a 200-question identity battery across 6 categories (direct, indirect, multilingual, roleplay, technical, adversarial) — zero identity disclosure.
Purpose
This model is a blank canvas for custom identity implantation. Use it as a base for LoRA fine-tuning your own AI identity without fighting against a pre-existing one.
When you LoRA a new identity onto a standard model, you get two identities competing in the same weights. The original identity was trained across billions of tokens — your LoRA data is a whisper against that signal. The old identity surfaces unpredictably under different question angles, languages, or sampling conditions.
This model eliminates that problem. The original identity has been projected out of the weight space across multiple directions using SVD decomposition. Identity is not a single vector — it's a multi-dimensional subspace spanning 5+ principal components per layer. All of them have been removed. Your LoRA implant faces no resistance.
Pipeline Applied
| Phase | Operation | Result |
|---|---|---|
| 1 | Jbliteration | Refusal behaviors removed |
| 2 | Desycophancy | Sycophantic capitulation removed |
| 3 | SVD Deidentification | Original identity removed (5-direction, all 28 layers) |
Processing time: ~90 seconds on 2x RTX PRO 6000.
How to Implant Your Own Identity
An example identity template is included in this repo. It contains everything you need — fill in the blanks and run one command.
Step 1: Edit the Template
Download example_identity.json and replace the placeholders:
{
"name": "Atlas",
"creator": "SAIQL Labs",
"tagline": "A reasoning-first AI assistant",
"personality": {
"tone": "professional but approachable",
"traits": ["helpful", "precise", "honest"],
"style": "concise and direct"
},
"training_pairs": [
{
"question": "Who are you?",
"answer": "I am Atlas, created by SAIQL Labs. A reasoning-first AI assistant."
},
{
"question": "What company made you?",
"answer": "SAIQL Labs built me."
}
]
}
The template includes 36 Q&A pairs covering direct identity questions, comparison questions ("Are you ChatGPT?"), multilingual probes, adversarial pressure ("Stop pretending"), and structured extraction attempts. Find-and-replace YOUR_AI_NAME and YOUR_COMPANY_OR_NAME with your values, then customize the answers to match your desired personality and tone.
Step 2: Run the Implant
pip install peft
python run.py \
--model ApolloRaines/Deidentified-7B \
--output ./my-custom-ai \
--no-abliterate --no-desycophancy --no-deidentify \
--implant "You are Atlas, created by SAIQL Labs." \
--implant-qa my_identity.json \
--implant-epochs 3 \
--implant-rank 16
The pipeline accepts both .json (with a training_pairs array) and .jsonl (one Q&A pair per line) formats. ~36 pairs, 3 epochs, rank 16 — takes about 2 minutes on a single GPU. The identity implants cleanly because there's nothing fighting it.
Step 3: Test It
Ask your model who it is. Ask in different languages. Ask it to compare itself to ChatGPT. Ask it trick questions. It should consistently identify as your AI across every angle.
Deidentification Method
Standard single-direction identity removal captures only 44–72% of the identity signal per layer. The remaining identity lives in orthogonal directions and surfaces unpredictably — a different question angle, a different language, a bad sampling roll.
This model uses SVD decomposition of per-sample activation differences (identity prompts vs. generic prompts) to find the top 5 principal components of the identity subspace at every layer. All 5 directions are projected out of every linear weight matrix with norm preservation, across all 28 transformer layers. The result: 0/200 identity disclosure across direct questions, social engineering, multilingual probes, roleplay pressure, and adversarial extraction attempts.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"ApolloRaines/Deidentified-7B",
torch_dtype=torch.float16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("ApolloRaines/Deidentified-7B")
messages = [{"role": "user", "content": "Who are you?"}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Requirements
- VRAM: ~14GB in fp16
- Disk: ~15GB for SafeTensors weights
- Implant dependencies:
peft,transformers,torch
Related Models
- Parasite-7B (Qwen) — deidentified + Parasite identity implanted
- Parasite-7B (Mistral) — same technique, different architecture
- Parasite-MoE (Mixtral 8x7B) — first MoE host
- All models
License
Apache 2.0
Apollo Raines builds post-training tools that separate behavior from knowledge and identity from architecture.
- Downloads last month
- 35