File size: 5,967 Bytes
047d480
 
419e63b
047d480
419e63b
 
 
 
047d480
419e63b
 
7f94cde
419e63b
 
 
047d480
419e63b
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
 
 
7f94cde
419e63b
7f94cde
419e63b
 
7f94cde
419e63b
7f94cde
419e63b
 
 
 
 
7f94cde
419e63b
7f94cde
419e63b
7f94cde
419e63b
7f94cde
419e63b
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
047d480
419e63b
 
 
 
047d480
419e63b
047d480
419e63b
 
 
 
047d480
419e63b
 
047d480
419e63b
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
 
 
047d480
 
 
419e63b
047d480
419e63b
 
 
047d480
419e63b
047d480
419e63b
 
047d480
419e63b
047d480
419e63b
 
047d480
419e63b
047d480
419e63b
 
047d480
419e63b
047d480
419e63b
 
 
047d480
419e63b
 
047d480
419e63b
 
 
047d480
419e63b
 
047d480
 
 
419e63b
047d480
 
419e63b
 
 
 
 
 
 
 
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# PRISM-Memory: Turn Conversations Into Durable, Searchable Memory

## The Problem

Most long-chat systems do not actually have memory. They have transcript
search. That works until someone asks a later question that depends on a hard
constraint, a changed plan, a dated fact, or a contradiction that happened
months ago.

PRISM-Memory focuses on the part of the stack that usually stays hidden: the
step that decides what should become memory at all.

The release model is a 7B adapter that writes short proposition-level memory
records from dialogue. Those records are then indexed by a hybrid retrieval
stack and used later for recall.

## What This Release Shows

The useful result is narrow and practical:

- a 7B open model can replace the GPT-4.1 extraction step in this memory pipeline
- it scores `0.4768` on LongMemEval versus `0.4650` for the GPT-4.1-based PropMem reference
- it scores `0.4981` on LoCoMo versus `0.5360` for that same reference

This is not a claim that a 7B model beats GPT-4.1 everywhere. It is a claim
that a 7B model can take over the memory-writing step and stay competitive on
the held-out evaluation surface.

## Why That Matters

If the memory-writing step is weak, retrieval never gets a clean chance.
Important details stay buried inside noisy chat turns.

PRISM-Memory is useful when later questions depend on things like:

- a hard operational limit: `20` GitHub Actions jobs
- a durable preference: aggregated Slack alerts instead of noisy ones
- a status distinction: mTLS is not live yet, it is planned for phase two
- a dated fact: Sam took up painting in May 2023
- a refusal case: the system should answer `None` instead of inventing a reason for an unsupported guitar story

Those are memory problems, not style problems.

## How The System Works

The released system has three pieces.

1. A learned extractor based on `Qwen/Qwen2.5-7B-Instruct` with LoRA.
2. Post-processing that cleans speaker references and resolves relative time.
3. Hybrid retrieval with BM25, dense retrieval, and reranking.

The extracted propositions are the important interface. They are the memory
records the retriever indexes. That keeps the memory store inspectable instead
of opaque.

## What The Training Data Actually Was

The release data is synthetic.

- `2,329` synthetic training conversations
- `584` held-out synthetic conversations
- `100,427` supervised extraction examples derived from those conversations
- `20,000` supervised examples used for the released adapter

The conversations were designed to stress real memory behaviors:

- new facts introduced in one session and used later
- updated details that should overwrite stale ones
- deleted or invalidated facts that should stop influencing answers
- mixtures of personal details, project facts, preferences, dates, and plans

The labels were GPT-4.1-derived memory-writing targets. No real user chat logs
are part of the public release.

## What Worked

### 1. The clean supervised base mattered more than clever add-ons

The release model came from a stable `20,000`-example synthetic supervision
base. That base was more valuable than trying to patch the model later with
many narrow benchmark-specific additions.

### 2. Hybrid retrieval was part of the result

The release is not just a model story. It is a model-plus-retrieval story.
Sparse retrieval kept lexical anchors, dense retrieval recovered semantically
close memories, and reranking cleaned the shortlist.

### 3. Explicit time anchoring helped

The model improved when the memory records carried explicit dates and the system
resolved relative references like `yesterday` or `last weekend` into normalized
anchors.

### 4. Turn-local extraction was enough

Feeding long recent-context windows into the extractor made it worse. The
stronger pattern was local extraction at write time and cross-turn composition
later through retrieval.

### 5. Adversarial precision mattered

The release model kept the best adversarial behavior among the runs considered
for public release. That mattered because a memory system that answers
unsupported questions confidently is worse than one that refuses.

## What Did Not Work

### 1. Benchmark-style formatting tricks

Trying to train the model toward benchmark-style relative-date outputs hurt more
than it helped. It optimized the look of answers instead of the quality of the
stored memory.

### 2. Narrow LoCoMo-style add-ons

Adding targeted benchmark-domain data often bought a small gain in one slice of
LoCoMo and then lost balance somewhere else.

### 3. More noisy supervision was not automatically better

Scaling up original noisy temporal supervision amplified the wrong lesson. The
model became more specialized and less balanced.

### 4. Overtraining past the local optimum

Several follow-on variants nearly matched the final release on one metric, but
they usually gave back LongMemEval performance, adversarial precision, or both.

## Why Only One Public Model Ships

The repo tried multiple follow-on variants. The nearest internal runner-up
nearly tied the released model on overall LoCoMo and disagreed on `152` of the
`400` held-out LoCoMo questions, which means the comparison was real.

But the public release decision is simpler than the internal ablation story.
One model ships because it had the best overall release profile:

- strongest LongMemEval score
- strongest adversarial behavior
- best total balance across the held-out surface

That is a better public story than shipping several near-tied variants with
internal names nobody else should care about.

## What Ships

The public release surface is intentionally narrow:

1. `PRISM-Memory`
2. one released model
3. one extraction skill
4. one Space demo
5. one set of release docs and benchmark artifacts

The broader `frontier_memory` harness stays in the repo for ongoing research,
but the release story stays focused on the memory-writing component that proved
worth shipping.