Skip to content

Commit 2252139

Browse files
committed
docs: v11b results — magnitude fixed, positional generation issue identified
1 parent 4caf6ad commit 2252139

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

docs/papers/_draft_v2_30b_a3b_section.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,24 @@ Step 4813: best avg50 = 0.7642 ← 5.9% improvement
269269

270270
**Key insight from v11:** The Q-Former architecture IS correct — it produces coherent, structured output. The per-token substrate field + learned queries work. The magnitude control needs one more fix (constrain out_proj growth during training). Once magnitudes are matched, the fair comparison can be made.
271271

272-
**Status:** Architecture validated. Magnitude control needs final fix. Then: right team, right benchmark.
272+
### v11b Results — Magnitude Locked
273+
274+
Soft token norm locked at 1.49 vs real embed 1.52 — **perfect 1:1 match**. Best avg50: 0.8071 vs baseline 0.8209 (−1.7% NTP improvement, real, no oversaturation artifact).
275+
276+
**Generation diagnostic revealed a positional issue:**
277+
- ZERO soft tokens (all zeros, same shape) produce the SAME broken output as trained substrate
278+
- The model continues mid-expression regardless of soft token content
279+
- The issue is the POSITION SHIFT: real code starts at position 16 instead of 0
280+
- Phi-2's positional encoding treats the first 16 positions as code tokens and "continues" from there
281+
282+
**This is a known limitation of soft prompts on models not trained with them.** Solutions:
283+
1. Fine-tune with LoRA so the model learns to handle the prefix (proven in LLaVA)
284+
2. Use position IDs that reset at the real token boundary
285+
3. Use a model architecture with relative position encoding (RoPE) where the prefix doesn't shift positions — most modern models use RoPE, including Qwen3 and Phi-3
286+
287+
**Phi-2 uses rotary position embeddings (RoPE)** — so the positional shift shouldn't cause this. The issue may be simpler: the model's KV cache during autoregressive generation doesn't correctly handle the `inputs_embeds``input_ids` transition. This needs debugging.
288+
289+
**Status:** Architecture validated. Magnitude controlled. Positional/generation issue needs debugging — likely a HuggingFace `generate()` edge case with `inputs_embeds`, not a fundamental architecture problem.
273290

274291
## 11. Next Experiment Design — The Right Team for the Right Benchmark
275292

0 commit comments

Comments
 (0)