Project Influence - Chapter 6 - Checkpoint 2 (rollback point)
Date: 2026-11-03 (Sydney) | Another collaboration between Andrew.human and Claude.ai
State of everything BEFORE the rewrite through the two agent-memory articles. Restore by unpacking Influence_Ch6_rollback_2.zip; MANIFEST.md5 lists every file.
1. Problem & Resolution
Question: how far can a logit bias (added to token scores at the last step) steer the local Qwen (LLM2: Qwen3-4B-Q4_K_M, llama-server 8082 on Clone) as a "pseudo memory" lever? One fixed standard prompt (md5 d78a0cc67c870050941cdfc719e0a365), temperature 0, 120 tokens, top-50 scores.
Built since checkpoint 1 | Item | Version | What | |---|---|---| | logit_staircase.py | 1.1.0 / 1.1.1 | Step-by-step mode (one token per request): --gate N, --follow LEVEL; own no-push baseline per job with a near-tie check | | | 1.3.0 | --mid LO-HI: at every step push whatever the model ranks LO..HI | | | 1.4.0 | --only WORD: one word or phrase, first piece pushed at every step at big levels | | | 1.5.0 | --reuse-baseline FILE (optional; operator decided each query/reply pair stands alone, so unused) | | swap_words.py | 1.0.0 | Text-side word swapping with a reproducible map (SwapWords_v1.0.0.zip) |
Findings so far (all one prompt, one run per setting, so indicative only)
- Gentle pushes on plausible words stay fluent. Forced rare words or first pieces hijack the topic and loop.
- Band width (4-12 vs 4-30) matters little; the level matters.
- Around +6 on the 4-30 band a newline piece (".\n", unpushed rank 4) flips the reply from lecture-continuation into a quiz/answering mode. The usual metrics (word variety, repeated runs) missed this genre flip.
- +50 on the 4-30 band: the model picked its 4th-ranked token at all 120 steps. Reply opens with questions ("Now the question: Which two things is survivorbias an explanation about in relation?") and stalls ("Alright. Alright."). No repetition, no content. Baseline: percentages lecture that loops (23% repeated 4-word runs).
- Single word " missing" (one piece; not in the baseline top 50 at any step): | Level | Result | |---|---| | +3 | identical to baseline | | +6 | diverges at step 4: "Fourth is the missing data. This is a very common one. For example, if you're missing data, you can't really know what's going on." then "So missing data is missing information." repeated; 27 forced steps, but the model's top choice overridden at only 9 (it kept choosing the word itself) | | +10 | "Fourth is missing missing ..." (117 forced) | | +20, +100 | " missing" at all 120 steps (byte-identical) |
- A pushed word with no job attached is taken literally: the model defines it and repeats it. It follows the word and the sentence pattern but does not link the word to the argument.
- Greedy cascade: one early flip rewrites everything after it. Near-ties can flip between whole-reply and one-token-per-request generation (steps 63 and 69 seen), so every step-by-step job makes its own no-push baseline.
- One llama-server slot: two concurrent jobs thrash the cache (about 7000 s per level instead of about 150 s). One job at a time.
2. Risk Analysis
- One prompt, one run per setting, temperature 0: repeatable, not general.
- Fixed push has no stop: once the word is in the text, Attention makes it likelier, so the reply collapses to one word at +10 and above.
- First piece only; wrong-sense leaks (e.g. " bomber" means aircraft, Unabomber, jacket).
- Metrics (variety, repeats) can say "better" while content gets worse (+50 case).
- 4B model at 4-bit: may be unable to use a pushed word beyond following it.
- Predictions so far right about half the time; treat them as hypotheses.
3. Code Change
- No code changed this checkpoint. Delivered earlier: LogitStaircase v1.0.0-v1.5.0 zips, SwapWords v1.0.0.
- Known cosmetic bug (not fixed): plan.md for
--mid runs says "mode: whole reply per request" and names the original baseline.
Pending
- Result of
--only " wartime aircraft" --levels 2,3,4,5,6,8 (operator to run and attach; not yet received).
- " bomber" bare-word test: prompt "Word: bomber / First thought that comes to mind, in one sentence:" (awaiting "go"). Human baseline from a chat with Claude: operator said Unabomber; Claude first said the Dambusters Lancaster.
- " missing" at +4 and +5 (find where the good start begins).
- War prompt draft (test/war_prompt_draft.txt) awaiting approval;
--suppress WORD not built.
- Capped or fading push (word fires a few times then stops): not built; would be listed as an unrequested change first.
- Narrow 4-12 band +6 not run.
Operations notes
- Clone:
~/memstore/LogitStaircase; Qwen LLM2 via Qwen34B-LLM2.sh (8082).
- Run one job at a time; new output name each run (the script refuses existing folders).
- Timing: whole-reply run about 1 min per level; step-by-step about 3 min baseline plus per level.