论文
测试时学习
Dynamic Cheatsheet: Test-Time Learning with Adaptive Memory
动态小抄:用一份自我维护的记忆做测试时学习
Mirac Suzgun, Mert Yuksekgonul, Federico Bianchi, Dan Jurafsky, James Zou · Stanford · arXiv · 2025-04 · 被引 107
一句话Stanford 组给黑盒 LLM 外挂一份跨查询持续读写的文本"小抄":每答完一题就让模型自己提炼可复用的策略/代码进小抄,后续查询带着小抄推理。无梯度、无标签,GPT-4o 在 Game of 24 从 10% 升到 99%,Claude 3.5 Sonnet 在 AIME 2024 从 23.3% 升到 50%。
这是什么
LLM 部署后每个查询都是孤立事件:上一题刚推导出的技巧、刚踩过的坑,下一题全部重来。Dynamic Cheatsheet(DC)针对这一点提出一个非常轻量的方案——给模型配一份外部文本记忆(cheatsheet),在推理过程中由模型自己往里写、自己修剪,不动模型参数、不需要 ground-truth 标签或人工反馈,对 GPT-4o/Claude 这类只有 API 的黑盒模型直接可用。
整个框架就是两个 prompt 角色:generator 带着当前 cheatsheet 答题,curator 看完这轮问答后更新 cheatsheet(留下可迁移的策略和代码片段,删掉错的、合并冗余的)。作者在 AIME、GPQA-Diamond、Game of 24、Math Equation Balancer、MMLU-Pro(工程/物理)上测了 GPT-4o、Claude 3.5 Sonnet 及其小型号,2025-04 挂 arXiv,S2 显示被引 107 次,代码仓库 276 star、仍在维护(2026-03 还有 push,已支持 Gemini/Grok/DeepSeek/Ollama 等)。
DC-Cu 的完整流程:左边 generator 拿当前 cheatsheet + 输入查询生成答案;右边 memory curator(同一个 LM、不同 prompt)评估这轮输出,把有用、可泛化的策略写回 cheatsheet,更新后的小抄传给下一个查询。全程没有梯度更新,也没有 ground-truth 标签。机制与做法
DC-Cu:生成 + 事后策展的累积记忆
基础版 DC-Cumulative 是一个两步循环:第 i 题时 generator 拿到 (x_i, M_i) 生成答案 ỹ_i;然后 curator 拿 (M_i, x_i, ỹ_i) 产出 M_{i+1}。curator 没有标准答案,要自己判断这轮解法是否正确、是否值得泛化成条目,同时负责改写/删除旧条目、保持整份记忆紧凑。生成和策展用同一个模型、不同 prompt 即可。
这与"把全部历史对话塞进 context"(FH 基线)是两回事:FH 在 AIME 2024 上让 GPT-4o 从 20% 掉到 13.3%(上下文膨胀、噪声淹没要点),而 DC 靠策展把有用的东西压缩成短条目,同任务 DC-RS 拿到 40%。
主结果概览。读法:每组三根柱依次是最弱基线 BL、公平基线 DC-∅(同样的结构化 prompt+代码执行但无记忆)、最佳 DC 变体。看"记忆"的净贡献要比后两根:AIME 2024 上 Claude 是 36.7→50.0,Game of 24 上 GPT-4o 是 19→99(记忆贡献确实巨大),而 Math Eqn. Balancer 的 56.4→97.8 之外,44.8→56.4 那截其实是 prompt 的功劳。DC-RS:先检索合成再答题
DC-Cu 有两个短板:记忆在答题之后才更新(当前题的信息用不上),且不保留历史 input-output 对。DC-RS 改成三步:先用 text-embedding-3-small 按 cosine 相似度检索 top-3 条最相近的历史问答,curator 把它们与现有记忆合成出本题专用的 cheatsheet,然后 generator 再答题。在题目分布多样的基准(GPQA-Diamond)上 DC-RS 明显好于 DC-Cu(Claude:68.7% vs 61.1%);在题型高度同构的序列任务上 DC-Cu 反而常是最优(AIME 2024/2025)。
对照组设计值得注意:除了裸 prompt 基线 BL,还有 DC-∅(同样的结构化 generator prompt + Python 代码执行,但记忆恒为空)、DR(只检索原文不合成)、FH(全历史拼接)。DC-∅ 用来剥离"记忆"本身的贡献——这一点在读数字时很关键,见 reality。
什么时候有效、什么时候没用
生效的典型模式是"发现一次、复用到底":GPT-4o 在 Game of 24 前几题里发现 Python 暴力枚举解法并存入小抄,之后每题直接取用,10% → 99%;Math Equation Balancer 同理(两家模型都到 98-100%)。也就是说 DC 吃两个前提:测试序列内题目结构相似,且基础模型有能力产出值得存的正确解。
反例作者也写得很清楚:小模型(GPT-4o-mini、Claude 3.5 Haiku)本来就很少答对,记忆里堆的是错误策略,DC-Cu/RS 在 GPT-4o-mini 的 AIME 2024 上甚至低于基线;DeepSeek R1、o1 这类 reasoning 模型输出太冗长,收益也很小或不稳定。GPT-4o 在 MMLU-Pro 上还出现了退化(工程题 53.2% → DC-RS 51.2%)。另外 curator 有时偷懒写"Previous content [...] preserved"而不完整重写记忆,长期会让小抄质量退化——这是 LLM 长文本生成弱于理解的老问题。
关键结果
- Claude 3.5 Sonnet + DC-Cu:AIME 2024 从 23.3% 到 50.0%,AIME 2025 从 6.7% 到 36.7%;AIME 2020-24 上 DC-RS 从 6.7% 到 40.6%。
- GPT-4o + DC-RS:Game of 24 从 10% 到 99%——模型早期发现 Python 暴力解并持续复用;Claude 在同任务只从 12% 到 14%(它不肯改用代码,坚持手算)。
- Math Equation Balancer:两家模型基线约 45-50%,DC 后 98-100%,靠的都是"背下一段已验证的代码"。
- GPQA-Diamond:Claude + DC-RS 从 59.6% 到 68.7%(+9.1);但 GPT-4o 几乎无收益(57.1% → 58.1%),作者归因于检索到次优样例反而添乱。
- 记忆策展 > 全历史拼接:FH 让 GPT-4o 在 AIME 2024 上从 20% 掉到 13.3%,DC-RS 则升到 40%;也优于 majority voting(MV 在 AIME 上零收益)。
- 小模型收益有限甚至为负:GPT-4o-mini 在 AIME 2024 上 DC-Cu/RS(13.3%)低于基线(16.7%);R1/o1 类模型收益极小。
- 开销:AIME 2024 上 Claude 平均每题 token 从 BL 的 370 涨到 DC-RS 的 1035、DC-Cu 的 1831;且流程天然串行,不好并行批处理。
实证核查
扎实代码、prompt、数据和逐题运行日志基本全部公开,论文自己就把"水分来源"(DC-∅ 基线、小模型失败、GPT-4o 退化案例)摆在正文表格里,失败模式写得比多数论文诚实。要注意的是头条数字都是与最弱基线比,且旗舰 Game of 24 结果的运行日志恰好没在仓库里。
论文脚注称 "We release all our data, results, and code"。
大体属实:仓库 data/ 与 results/ 下有 AIME(3 套)、GPQA_Diamond、MMLU_Pro 两科、MathEquationBalancer 共 7 个任务的逐题 JSONL(如 results/AIME_2024/ 含 claude-3-5-sonnet / gpt-4o 各 5 种方法的完整运行记录),prompt 模板也全在 prompts/。但例外是最出名的 Game of 24(10%→99%):全仓库与它相关的只有 embeddings/GameOf24.csv,data/ 和 results/ 里都没有它的输入或运行日志,这条头条数字无法直接从仓库复核。
摘要头条:GPT-4o 在 Game of 24 上 10%→99%、Claude 在 AIME 上"准确率翻倍以上"。
这些对比的分母都是最弱的 minimal-prompt 基线(BL)。论文自己的 Table 1 显示,换成公平的 DC-∅ 基线(同样的结构化 prompt + Python 代码执行、只是没有记忆)后收益明显缩水:Math Eqn Balancer 上 GPT-4o 是 BL 50→DC-∅ 88→DC 100,即 50 分提升里 38 分来自 prompt+代码执行而非记忆;AIME 2020-24 上 Claude 是 6.7→30.1→40.6,大头同样来自 DC-∅。记忆本身的净贡献真实存在(Game of 24 DC-∅ 19% vs DC-RS 99% 差距确实主要归记忆),但摘要/README 引用的倍数是按最有利口径算的。
DC 是普适的测试时学习方法。
论文正文自己给了反证据(这点值得肯定):GPT-4o-mini 在 AIME 2024 上 DC-Cu/RS 低于基线,GPT-4o 在 MMLU-Pro 工程/物理上也退化,R1/o1 收益极小(均见 Table 3 与 Sec 5)。另外所有实验是 temperature=0 的单次运行,AIME 每套只有 30 题,没有方差报告,且效果依赖题目顺序(作者在 Sec 4.6 承认顺序/课程会影响结果)。GitHub issues 共 5 条、无复现失败报告,但也说明尚无严肃第三方复现记录;S2 被引 107 次、后续 memory/test-time learning 文献(如各类 agent memory 综述)普遍将其作为基线引用。
与我们方向的关系
对 continual-learning 方向,这篇是"无梯度测试时学习"最简洁的参照系:整个方法就是两个 prompt + 一段外部文本,却把该范式的核心矛盾全暴露出来了——curator 没有标签、只能自我判断对错,所以记忆质量完全受制于基础模型能力(小模型会把错误策略越攒越多);记忆更新是串行的、每题重写整份小抄,token 成本 5 倍于基线且难并行。后续工作(各类 agentic memory、经验库方法)基本都在回应这几个问题,读它能快速建立坐标。
可直接借鉴的点:(1) DC-∅ 这种"同 prompt 无记忆"的消融基线设计,做任何 memory 类实验都应该抄——不设它很容易把 scaffold 的功劳算进记忆头上;(2) "发现一次、复用到底"说明这类方法在题型同构的流式场景收益最大,评测时要区分同构序列与多样分布(DC-Cu vs DC-RS 的分工正对应这两种场景);(3) curator 偷懒截断记忆("[...] preserved")是我们自己做 LLM 维护长记忆时必然会撞上的坑,值得在实现里显式防御(结构化外部库而非整段重写)。
阅读笔记
论文写作上 headline 数字全按 BL 口径,读的时候一律先去 Table 1 对 DC-∅ 那一列。仓库 README 比论文新:已支持 claude-sonnet-4-5、grok-4-1、gemini-2.5 等 2025-2026 的新模型,想跑实验直接用 run_benchmark.py 即可,但注意 Game of 24 的数据要从 meta-prompting(Suzgun & Kalai 2024)那边拿。S2 显示 venue 为 EACL(应为后续录用),arXiv 版本标注 ICML 2025 模板 accepted 选项。
材料清单
TeX 源码已存档:Raw/dynamic-cheatsheet/source/
同类条目