Engram Injection: A Study of Temporal Validity in Parametric Language-Model Memory
Abstract
A stored fact may stop being valid when a user changes a preference or an event replaces an earlier one. We study whether a language model can learn these changes in its parameters and answer correctly from only a question and the current time. Engram Injection stores facts in LoRA adapters and supplies the clock through FiLM conditioning on a frozen Qwen2.5-3B-Instruct model. We compare it with additive clock conditioning, prompting with the full dated history, and retrieving four dated records. We train six matched adapters across three seeds after fixing a sampler that could admit test-age examples into training. The training audit reports no such examples among 127,760 evaluated training inputs. On 62 pairs of questions asked before and after an update, at an elapsed age of seven days excluded from training, both adapter methods answer zero pairs correctly under the primary blinded assistant review with order code 1 held fixed. Full-history prompting answers 59/62 pairs correctly, and retrieval answers 62/62. Separate experiments show that adapters can store facts and that removable memory units can support local deletion. Combining fact selection with time-based version selection remains unsuccessful. These results separate learning a fact from learning when to use it.
Figures & tables
| Capability | Shared Parametric | Addressable Bank | Joint Bank |
|---|---|---|---|
| Prompt-free parametric recall | Demonstrated | Demonstrated | – |
| Clock-gated supersession | Diagnostic only | – | Failed |
| Semantic addressing | – | Demonstrated | Partial |
| Local structural deletion | – | Demonstrated | Demonstrated |
| Unified semantic + temporal routing | – | – | Failed |
| Pairs | Training arm | Seeds | Recall | ||
|---|---|---|---|---|---|
| 25 | Time channel only | 4 | 0.38 | 0.65 | 0.77 |
| 25 | Order tag only | 2 | 0.30 | 0.76 | 0.77 |
| 25 | Margin only | 2 | 0.82 | 0.72 | 0.81 |
| 25 | Order + margin | 10 | 0.79 [0.72,0.92] | 0.88 | 0.87 |
| 100 | Time channel only | 2 | 0.675 | 0.38 | 0.63 |
| 100 | Order + margin | 5 | 0.948 | 0.99 | 0.945 |
| Benchmark | Metric | Base | Injected | Intervention |
|---|---|---|---|---|
| CounterFact | Efficacy | 0.14 | 0.96–1.00 | 0.00–0.12 |
| CounterFact | Fair-locality | 0.87 | 0.80 | 0.81 |
| CounterFact | Pre-update old preference | 0.86 | 0.99 | 0.99 |
| TOFU | Forget-set recall | 0.01 | 0.98 | 0.01 |
| TOFU | Retain-set recall | 0.00 | 0.97 | 0.97 |
| Size | Controlled flip | Recall | CounterFact efficacy |
|---|---|---|---|
| 3B | 0.813 | 0.89 | 1.00 |
| 7B | 0.760 | 0.85 | 1.00 |
| 14B | 0.747 | 0.86 | 1.00 |
| System | Recall (%) | Before (%) | After (%) | Both (%) | Tokens |
|---|---|---|---|---|---|
| P0 | 61.67 | 30.67 | 86.67 | 25.33 | 3087.3 |
| P0-asof | 62.08 | 89.33 | 92.00 | 89.33 | 1717.9 |
| P1 | 61.25 | 10.67 | 89.33 | 9.33 | 148.0 |
| P1-asof | 62.50 | 88.00 | 92.00 | 88.00 | 145.8 |
| Additive | 97.92 | 77.33 | 36.00 | 25.33 | 6.0 |
| FiLM | 97.50 | 81.33 | 41.33 | 33.33 | 6.0 |
| System | Before | After | Both (%) | Judge both |
|---|---|---|---|---|
| P0 | 33/55 | 48/55 | 54.5 | 35/55 |
| P0-asof | 49/55 | 49/55 | 85.5 | 53/55 |
| P1 | 11/55 | 49/55 | 18.2 | 10/55 |
| P1-asof | 48/55 | 51/55 | 87.3 | 55/55 |
| Additive | 35/55 | 10/55 | 10.9 | 1/55 |
| FiLM | 43/55 | 14/55 | 12.7 | 2/55 |
| System | Code | Clock | Literal | Reviewed | Upper bound |
|---|---|---|---|---|---|
| P0-asof | – | asof | 52/62 | 59/62 | 59/62 |
| P1-asof | – | asof | 54/62 | 62/62 | 62/62 |
| Additive | 1 | frozen | 12/62 | 0/62 | 1/62 |
| Additive | 1 | live | 11/62 | 0/62 | 1/62 |
| Additive | 1 | shuffled | 11/62 | 0/62 | 2/62 |
| Additive | 2 | frozen | 6/62 | 0/62 | 3/62 |
| System | Seed 0 | Seed 1 | Seed 2 | Pooled |
|---|---|---|---|---|
| FiLM | 0/18 | 0/20 | 0/24 | 0/62 |
| Additive | 0/18 | 0/20 | 0/24 | 0/62 |
| P0-asof | 18/18 | 20/20 | 21/24 | 59/62 |
| P1-asof | 18/18 | 20/20 | 24/24 | 62/62 |
| FiLM (%) | Additive (%) | |||
| Seed | Live | Frozen | Live | Frozen |
| 0 | 64 | 24 | 32 | 4 |
| 1 | 56 | 12 | 56 | 16 |
| 2 | 0 | 0 | 52 | 8 |
| Metric | Score |
|---|---|
| Semantic top-1 | 0.7292 |
| Temporal top-1 | 0.4167 |
| Joint attribute/version top-1 | 0.2188 |
| Answer exact match | 0.3681 |
| Clock-shift success | 0.0000 |
| Deleted-version/attribute recall | 0.0000 |
Appendix figures & tables5 assets
Supplementary material from the paper’s appendix.
Appendix
| Arm | Intervention | Interpretation |
|---|---|---|
| P0 | Facts as JSON in prompt | Recurring long-context prefill cost |
| P1 | Retrieve dated chunks | Text-based temporal reasoning baseline |
| A1 | Zero channel | Removes runtime clock contribution |
| Order only | Add order tag, no temporal margin | Tests whether order representation alone drives supersession |
| Margin only | Add temporal margin, no order tag | Tests whether validity supervision drives supersession |
| Shuffled time | Permute timestamps | Breaks fact–time alignment; |
| Family | Question type | Intended diagnostic |
|---|---|---|
| T-ABS | Absolute anchoring | Calendar/elapsed categories from hidden clock state |
| T-REL | Relative age | Query time relative to stored write time |
| T-ORD | Ordering | Earlier/later relation between stored events |
| T-CONF | Recency conflict | Old/new resolution across supersession |
| T-AGE | Age/staleness | Coarse age and stale/current judgments |
| Setting | Recall | ||
|---|---|---|---|
| 0.84 | 1.00 | 0.90 | |
| 0.84 | 0.96 | 0.91 |
| Lever | Value | |
|---|---|---|
| Learning rate | 0.68 | |
| Learning rate | 0.79 | |
| Learning rate | 0.88 | |
| LoRA rank | 4 | 0.76 |
| LoRA rank | 8 | 0.79 |
| LoRA rank | 16 | 0.76 |
| Memory representation | Prompt tokens/query | Prefill time (s) |
|---|---|---|
| Facts in prompt | 2442 | 0.362 |
| Shared Parametric Memory | 6 | 0.042 |
Temporal Reasoning in Language Models
Temporal reasoning in language models studies how models represent, order, update, and apply facts and events across time.
See all 98 papers