File size: 1,635 Bytes
81859ef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
---
library_name: peft
base_model: Qwen/Qwen3-14B
tags: [loracle, lora, persona, weight-reading]
---

# Persona LoRAcle v4

Fine-tuned from `ceselder/loracle-pretrain-v7-sweep-A-oneq-final-step3120` on a mix of:
- 9226 Sonnet-4.6-generated Q/A about 4619 persona-internalised LoRAs (2 introspection-style Q/A per LoRA) — see [ceselder/persona-loracle-qa-v4](https://huggingface.co/datasets/ceselder/persona-loracle-qa-v4)
- 1000 fineweb pretrain Q/A (anti-forgetting mix)

## Persona LoRA construction (the key idea)

Each persona LoRA encodes a **system-prompted persona that the LoRA has internalised** — same recipe as IA paper organisms / Sleeper Agents / auditing-agents. Steps:
1. Pick PersonaHub persona (e.g. "a librarian who loves jazz")
2. Sonnet-4.6 generates 32 user prompts targeting that persona
3. Random sample 32 WildChat-1M prompts (generic)
4. Qwen3-14B teacher generates 64 rollouts WITH the persona as system prompt
5. SFT a LoRA on `(user_prompt → teacher_response)` — NO system prompt at training time
6. The LoRA produces persona-conditioned behaviour even when no system prompt is in context

This makes the persona-LoRA distribution match the AB / OOD eval distribution (which is also persona-internalised).

## Training
- 10026 train items (9226 persona QA + 1000 fineweb), 80 personas held out (160 QA rows)
- 1258 steps, lr=1e-5 linear, grad_accum=8, 1 epoch
- val_loss: 2.7393 (step 0, v7 baseline) → 1.5155 (final)
- **Cross-LoRA gap: 0.8763** — vs v3's 0.43, v2's 0.29 — **2-3× stronger conditioning** on direction tokens
- wandb: https://wandb.ai/adamkarvonen/lora-oracles/runs/yzp6av26