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

License

Apache 2.0


Apollo Raines builds post-training tools that separate behavior from knowledge and identity from architecture.

Downloads last month
35
Safetensors
Model size
8B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ApolloRaines/Deidentified-7B

Quantizations
2 models