From 72713390067f4bd8fd531d14634c1035fa941930 Mon Sep 17 00:00:00 2001 From: Tommi Niemi Date: Mon, 6 Apr 2026 19:24:26 +0700 Subject: [PATCH] Update all URLs and paths from epimem to cri Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 6 +++--- paper.md | 8 ++++---- paper.out | 19 +++++++++++++++++++ python/__pycache__/epimem.cpython-314.pyc | Bin 0 -> 27264 bytes 4 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 paper.out create mode 100644 python/__pycache__/epimem.cpython-314.pyc diff --git a/README.md b/README.md index e5280b4..956494b 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ A frozen Qwen 2.5 0.5B conditioned with three stimulus-response pairs: ```bash pip install transformers torch numpy -git clone https://git.rotko.net/tommi/epimem -cd epimem +git clone https://git.rotko.net/tommi/cri +cd cri python python/epimem.py # default: Qwen 2.5 0.5B python python/epimem.py --model google/gemma-4-E4B-it # Gemma 4 python python/epimem.py --model google/gemma-4-E2B-it # Gemma 4 small @@ -124,7 +124,7 @@ Reflexes are **model-locked** — conditioning on one backbone doesn't transfer author={Tommi Niemi}, year={2026}, organization={Rotko Networks}, - url={https://git.rotko.net/tommi/epimem}, + url={https://git.rotko.net/tommi/cri}, } ``` diff --git a/paper.md b/paper.md index 16a2413..184a7c8 100644 --- a/paper.md +++ b/paper.md @@ -4,7 +4,7 @@ ## Abstract -We enable frozen transformers to acquire new stimulus-response behaviors without gradient descent. When a target association is presented, the model's own hidden-state activation pattern is captured as a trigger, and per-token logit biases are stored as the conditioned response. At inference time, a matching activation pattern fires the reflex, injecting the learned token biases directly into the output logits. The model does not "know" the new fact — it is nudged toward specific token sequences when the right internal pattern activates. We test across four backbones (Qwen 2.5 0.5B, Gemma 4 E2B-it, E4B-it, and E4B base) and five precision levels (float32 through int4). Conditioned tokens are produced correctly in all cases, but post-bias coherence and trigger discrimination vary significantly across architectures: smaller base models outperform larger instruct-tuned models on both metrics. No weights are modified. No gradients are computed. Reflexes persist to disk across sessions. Code and reproduction: [git.rotko.net/tommi/epimem](https://git.rotko.net/tommi/epimem). +We enable frozen transformers to acquire new stimulus-response behaviors without gradient descent. When a target association is presented, the model's own hidden-state activation pattern is captured as a trigger, and per-token logit biases are stored as the conditioned response. At inference time, a matching activation pattern fires the reflex, injecting the learned token biases directly into the output logits. The model does not "know" the new fact — it is nudged toward specific token sequences when the right internal pattern activates. We test across four backbones (Qwen 2.5 0.5B, Gemma 4 E2B-it, E4B-it, and E4B base) and five precision levels (float32 through int4). Conditioned tokens are produced correctly in all cases, but post-bias coherence and trigger discrimination vary significantly across architectures: smaller base models outperform larger instruct-tuned models on both metrics. No weights are modified. No gradients are computed. Reflexes persist to disk across sessions. Code and reproduction: [git.rotko.net/tommi/cri](https://git.rotko.net/tommi/cri). ## 1. The Clive Wearing Problem — and What It Really Is @@ -252,8 +252,8 @@ The reflex bank is saved to JSON (77KB for 3 reflexes with 896-dim triggers on Q ### 3.7 Reproduction ```bash -git clone https://git.rotko.net/tommi/epimem -cd epimem +git clone https://git.rotko.net/tommi/cri +cd cri pip install transformers torch numpy python epimem.py --model Qwen/Qwen2.5-0.5B ``` @@ -354,6 +354,6 @@ The implementation reproduces the full result in approximately 200 lines of Pyth title={Conditioned Reflex Injection: Stimulus-Response Learning for Frozen Transformers}, author={Niemi, Tommi}, year={2026}, - url={https://git.rotko.net/tommi/epimem} + url={https://git.rotko.net/tommi/cri} } ``` diff --git a/paper.out b/paper.out new file mode 100644 index 0000000..93c2dcd --- /dev/null +++ b/paper.out @@ -0,0 +1,19 @@ +\BOOKMARK [1][-]{section.1}{\376\377\000T\000h\000e\000\040\000C\000l\000i\000v\000e\000\040\000W\000e\000a\000r\000i\000n\000g\000\040\000P\000r\000o\000b\000l\000e\000m}{}% 1 +\BOOKMARK [1][-]{section.2}{\376\377\000M\000e\000t\000h\000o\000d}{}% 2 +\BOOKMARK [2][-]{subsection.2.1}{\376\377\000A\000r\000c\000h\000i\000t\000e\000c\000t\000u\000r\000e}{section.2}% 3 +\BOOKMARK [2][-]{subsection.2.2}{\376\377\000T\000e\000a\000c\000h\000i\000n\000g\000\040\000\050\000O\000n\000e\000\040\000F\000o\000r\000w\000a\000r\000d\000\040\000P\000a\000s\000s\000\051}{section.2}% 4 +\BOOKMARK [2][-]{subsection.2.3}{\376\377\000R\000e\000c\000a\000l\000l\000\040\000\050\000S\000i\000m\000i\000l\000a\000r\000i\000t\000y\000\040\000S\000e\000a\000r\000c\000h\000\040\000+\000\040\000I\000n\000j\000e\000c\000t\000i\000o\000n\000\051}{section.2}% 5 +\BOOKMARK [2][-]{subsection.2.4}{\376\377\000P\000e\000r\000s\000i\000s\000t\000e\000n\000c\000e}{section.2}% 6 +\BOOKMARK [2][-]{subsection.2.5}{\376\377\000W\000h\000y\000\040\000H\000i\000d\000d\000e\000n\000\040\000S\000t\000a\000t\000e\000s\000,\000\040\000N\000o\000t\000\040\000T\000e\000x\000t}{section.2}% 7 +\BOOKMARK [1][-]{section.3}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000s}{}% 8 +\BOOKMARK [2][-]{subsection.3.1}{\376\377\000S\000e\000t\000u\000p}{section.3}% 9 +\BOOKMARK [2][-]{subsection.3.2}{\376\377\000O\000n\000e\000-\000S\000h\000o\000t\000\040\000F\000a\000c\000t\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section.3}% 10 +\BOOKMARK [2][-]{subsection.3.3}{\376\377\000P\000e\000r\000s\000i\000s\000t\000e\000n\000c\000e}{section.3}% 11 +\BOOKMARK [2][-]{subsection.3.4}{\376\377\000R\000e\000p\000r\000o\000d\000u\000c\000t\000i\000o\000n}{section.3}% 12 +\BOOKMARK [1][-]{section.4}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000W\000o\000r\000k}{}% 13 +\BOOKMARK [2][-]{subsection.4.1}{\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000-\000F\000r\000e\000e\000\040\000E\000p\000i\000s\000o\000d\000i\000c\000\040\000M\000e\000m\000o\000r\000y}{section.4}% 14 +\BOOKMARK [2][-]{subsection.4.2}{\376\377\000R\000e\000t\000r\000i\000e\000v\000a\000l\000-\000A\000u\000g\000m\000e\000n\000t\000e\000d\000\040\000G\000e\000n\000e\000r\000a\000t\000i\000o\000n}{section.4}% 15 +\BOOKMARK [2][-]{subsection.4.3}{\376\377\000K\000n\000o\000w\000l\000e\000d\000g\000e\000\040\000E\000d\000i\000t\000i\000n\000g}{section.4}% 16 +\BOOKMARK [2][-]{subsection.4.4}{\376\377\000W\000h\000a\000t\000\040\000D\000i\000s\000t\000i\000n\000g\000u\000i\000s\000h\000e\000s\000\040\000T\000h\000i\000s\000\040\000W\000o\000r\000k}{section.4}% 17 +\BOOKMARK [1][-]{section.5}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{}% 18 +\BOOKMARK [1][-]{section.6}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 19 diff --git a/python/__pycache__/epimem.cpython-314.pyc b/python/__pycache__/epimem.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a921d5fda7366944aae64384b64c3d644ef80196 GIT binary patch literal 27264 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 G+W!W!ZR$q= literal 0 HcmV?d00001