記憶系統檢討
LongMemEval 500 題拿到 88.2%,答錯 59 題。逐題查錯在哪,再對照老師跟隊長的做法,看哪一招補哪一個洞。2026-10-10
一句話:問題不在「答」,在「找」。證據撈齊的 412 題答對 97.1%,證據沒撈齊的 58 題只答對 25.9%。答錯的 59 題裡,43 題是檢索沒把證據撈回來,只有 12 題是撈齊了還答錯。所以改進要先押在「怎麼找」,這剛好是老師那套的強項。
59 題錯在哪
32
11
12
4
證據撈到一部分
證據完全沒撈到
撈齊了還答錯
該說不知道卻硬答
| 題型 | 錯 | 主要原因 |
|---|---|---|
| 多段推理 | 26 | 19 題證據只撈到一部分(要加總、要數幾樣的題) |
| 時間推理 | 21 | 18 題檢索失手,其中 8 題問句是「10 天前」「兩週前」這種相對時間 |
| 單段・使用者說過 | 5 | 4 題完全沒撈到(換個說法就找不到) |
| 知識更新 | 5 | 3 題撈齊了,但新舊兩個值都在,模型說「兩個說法衝突」不敢選 |
| 單段・偏好 | 2 | 撈不到 1、答錯 1 |
另有 4 題拒答題(紀錄裡根本沒提過)被硬答,分散在多段、時間、知識更新三型。
四種錯,長這樣
「我 10 天前買了什麼廚房家電?」 正解:煙燻爐
向量檢索比的是語意,「10 天前」這幾個字跟任何一段對話都不像,所以那天的紀錄根本沒被撈上來。時間要當成搜尋條件,不能當成搜尋字。
「我在市集賣東西總共賺了多少?」 正解:495 美元
三次市集分散在三段對話,前 5 段只撈到兩段,模型老老實實加出 345。要加總、要數幾樣的題,證據一定散在好幾段。
「我的 Converse 穿過幾次?」 正解:六次
早先說四次、後來說六次,兩段都撈到了,模型回「四次,但你另一次說六次,兩個衝突」。系統沒告訴它哪一筆取代了哪一筆。
「我在 Google 開始工作前做了多久?」 正解:資料不足(紀錄裡是 NovaTech,不是 Google)
模型發現公司名對不上,還是照算一個數字給你。答之前沒有一道「關鍵名詞對不對得上」的檢查。
老師跟隊長,各押一邊
老師:押「找得到」
Hermes Agent 外掛 Hindsight 記憶(PostgreSQL+向量+全文索引)
- 寫入不靠自覺:每回合結束,背景自動把對話拆成一條條事實存起來
- 召回同時走四路:語意、關鍵字、關係、時間,再合併重排
- 時間是搜尋條件:問「上週」就先把上週那段框出來
- 每則訊息進來先召回,再回答
隊長:押「不出錯」
AIWFF,記憶卡 2,438 張,寫入與回覆前都有程式檢查
- 寫入時標來源:真人原話/排程/系統,召回時分開用
- 日期存絕對日期加星期,不存「下週三」
- 新事實要標明取代哪一筆舊的
- 沒有原話編號的不准寫;回覆前跑規則檢查,用約 20 題量
兩套剛好互補。我們這次的洞,大半落在老師那一邊(找),小半落在隊長那一邊(檢查)。
哪一招補哪個洞
| 招式 | 來自 | 補哪類錯 | 預估加分 |
|---|---|---|---|
| 作答讀前 10 段,檢索改成關鍵字+向量+重排 | 老師(四路召回) | 撈不齊、換說法找不到 | +3~4 |
| 時間當搜尋條件;日期存絕對日期加星期 | 老師+隊長 | 相對時間題、時間順序題 | +1~2 |
| 新事實標明取代哪一筆,作答一律以新的為準 | 隊長 | 知識更新的「兩個說法衝突」 | +0.5 |
| 作答前檢查:問句的關鍵名詞在證據裡找不到就說不知道 | 隊長(押檢查) | 拒答題硬答 | +0.5~1 |
| 寫入時拆成事實;我們再加候選區、每天合併 | 老師(自動抽事實) | 加總題、數幾樣的題 | +1~3 |
預估怎麼來的:前 10 段能讓 25 題的證據補齊,證據齊與不齊的答對率差 71 個百分點,25 × 0.71 ≈ 18 題 ≈ 3.6 分;其餘按各類錯題數打折估。各招會重疊,不能直接相加。理論天花板是「證據全部撈齊」,大約 96 分。
建議順序
- 先改檢索,不動記憶結構最便宜一次就量得出來
讀前 10 段、檢索改用混合模式(本來就有關鍵字索引跟重排,這次只用了向量)。代價是每題 input 約翻倍。 - 時間當搜尋條件中等
問句裡的「10 天前」「上週」先換算成日期區間,只在區間內找;寫入時同時存絕對日期跟星期。這也直接改善日常的「我上週說過什麼」。 - 兩條小規則:取代鏈+作答前檢查小
新事實記下它取代哪一筆;回答前核對關鍵名詞有沒有在證據裡,對不上就說不知道。 - 寫入時拆事實、每天合併最大已有卡
就是上午開的那張(每回合背景抽事實、標說話者、帶情緒強度)。抽出來的先進候選區、每天合併再成卡,避開老師遇過的「早安、新聞被存成事實」。工程量最大,等前三步量完再決定要不要做到多細。
怎麼量才不燒錢:每改一步,只重跑答錯的 59 題加隨機抽 100 題答對的(約 160 題、400 萬 token 上下),看救回幾題、有沒有把原本對的弄錯。累積兩三步之後再跑一次全量 500 題,拿正式分數。
不只是為了考試
這幾類錯,日常都碰得到:
- 時間:「我上週跟你說的那個」「10 天前那筆」,現在我得去翻事件紀錄才找得到。
- 加總:「這個月總共花多少在吃的」,答案散在很多段對話裡。
- 取代:藥量改了、地址換了,新舊兩筆都在,不能讓我還在講舊的。
- 來源:群組裡別人說的話被記成你說的,LongMemEval 量不到,但這是隊長那套最強的地方,我們多人群一定要有。