ARTICLE · 1053208
AI 自我提升的真正引擎:不是更会想,而是更会搜索
STANFORD CS329A · 第七讲
从 AlphaCode 到 Search-o1拆解生成、筛选、检索与验证的系统闭环
全文 3180 字 / 阅读约 7 分钟
如果一个模型一次答不对,多让它试几次,会不会自然变聪明?
答案是:有时会,但远远不够。
Stanford CS329A 第七讲把两类看似不同的系统放到了一起:一类是 AlphaCode 这样的编程系统,靠大规模采样寻找正确程序;另一类是 Search-o1 这样的深度研究 Agent,在推理途中主动检索、阅读和压缩外部资料。
它们解决的是同一个问题:答案可能已经存在于模型能够生成的空间里,但系统怎样把它找出来?
真正决定效果的,往往不是“生成了多少”,而是能否持续回答四个问题:下一步该搜索什么?什么结果值得保留?怎样验证它?如果走错了,能否回到前一步重来?
本讲的核心判断
模型能力决定搜索空间的上限,搜索、筛选与验证决定系统能从这个空间里带回什么。
PART 01
一次生成为什么很快撞上天花板
代码补全通常只需要续写几行,竞争性编程却要求模型先读懂长题目,再选择算法、处理边界条件,最后提交能通过隐藏测试的完整程序。
问题一旦变长,“最可能的下一段文本”就不等于“最终正确的解法”。一个局部看起来合理的决定,可能在几十步之后才暴露错误。
这也是推理型任务与普通问答的分水岭。模型并非完全没有能力,而是正确答案常常只占输出空间的一小部分。单次生成像从巨大仓库里随手拿一个盒子:拿到正确答案不是不可能,只是概率不够高。
最直接的办法,是让模型生成更多候选。可一旦候选从 10 个增加到 1 万甚至 100 万个,新瓶颈立刻出现:系统不可能把每一个答案都交给昂贵的外部评测。
所以,推理时扩展从来不只是“多采样”。它至少包含两个彼此独立的能力:
●覆盖能力:正确答案有没有出现在候选集合里。
●选择能力:在有限提交预算下,能不能认出更值得尝试的候选。
课堂用 pass@k 描述前者:生成 k 个候选,只要其中有一个正确就算覆盖成功。AlphaCode 的真实场景还需要关心“从 k 个候选中只提交少量答案”的表现,这时筛选器本身就会成为系统瓶颈。
“
AlphaCode 使用 Transformer 语言模型以前所未有的规模生成代码,再把结果智能过滤为一小组更有希望的程序。
— AlphaCode 团队 · Google DeepMind
PART 02
AlphaCode:先把搜索空间撑开,再压缩到 10 个答案
2022 年发布的 AlphaCode,把竞争性编程变成了一条大规模搜索流水线。
它先在公开 GitHub 代码上预训练,再用竞争性编程数据集微调。面对一道新题,系统会生成海量 C++ 和 Python 程序,先用题目给出的样例测试剔除明显错误,再根据程序在额外测试输入上的行为进行聚类,最后从不同簇里挑出少量候选。
1大规模生成
用较高采样温度生成大量候选程序,让搜索覆盖尽可能多的算法路径与实现方式。
2快速过滤
先检查能否编译、能否通过题目公开样例,把显然无效的程序尽早淘汰。
3行为聚类
使用额外测试输入观察程序行为,把语义相近的候选归为一组,避免最终名额被大量近似答案占满。
4有限提交
从不同簇中挑选少量程序。DeepMind 的评测流程最终只向外部平台提交 10 个候选,而不是把所有样本一股脑交出去。
DeepMind 在 10 场晚于训练数据的 Codeforces 比赛上模拟参赛。官方报告显示,AlphaCode 的估计排名进入参赛者前 54%,大致达到中位选手水平。
这个结果真正值得记住的,不是“机器参加了比赛”,而是它证明了一种可复用的系统范式:当单个答案不够可靠时,可以先扩大候选空间,再用可执行反馈压缩空间。
但课堂也指出了代价。候选越多,计算成本越高;如果新增样本只是同一种错误的不同写法,多采样也不会带来真正的覆盖提升。更关键的是,即使正确答案已经出现,聚类和排序也可能把它漏掉。
换句话说,搜索规模只能放大模型已有的能力,不能替代能力本身。
PART 03
AlphaCode 2:真正的升级发生在“选择器”
一年后,AlphaCode 2 没有简单地把采样量再扩大十倍。它重做了整条流水线。
第一,生成端换成了经过竞争性编程数据微调的 Gemini Pro 系列模型。第二,系统使用多个不同配置的生成模型,并随机化温度和题目元数据,以提高候选的多样性。第三,它引入独立的评分模型,对候选程序的正确性进行预测,再把评分与聚类结合起来完成重排。
这三项变化分别改善了三个环节:
Google DeepMind 的技术报告显示,AlphaCode 2 在 12 场 Codeforces 比赛的评测中解决了 43% 的题目,接近上一代的两倍;综合排名达到第 85 百分位,也就是超过约 85% 的参赛者。
更有启发性的是样本效率。技术报告的曲线显示,AlphaCode 2 大约用 100 个样本,就能达到上一代使用 100 万个样本时的水平。这里不能简单归因于“模型更大”,而是生成器、数据、候选多样性、执行反馈和评分模型共同构成了更好的搜索系统。
比采样规模更重要的,是搜索质量
把预算继续砸向重复候选,收益会迅速下降。更强的基础模型、更有差异的搜索路径,以及更可信的验证器,往往比单纯扩大采样量更有效。
PART 04
从编程搜索到深度研究:RAG 为什么还不够
代码有一个天然优势:答案能编译、能运行、能过测试。深度研究就难得多。网页里的信息可能过时、冲突、缺上下文,也可能只与问题表面相关。
最常见的 RAG 流程,是先根据用户问题检索一次,把若干文档塞进上下文,再让模型作答。它适合单跳问题,却不擅长长链推理。
原因并不复杂:一个复杂问题在不同阶段需要的知识并不相同。开头检索到的资料,不可能提前覆盖推理途中出现的所有缺口。更糟的是,文档越多,噪声越多。把 20 篇网页全文都放进上下文,不等于模型真的读懂了 20 篇网页。
Search-o1 的改进,是把检索嵌入推理过程。模型在遇到具体知识缺口时再生成查询,检索完成后,不直接把原始网页全文塞回主上下文,而是由独立的 Reason-in-Documents 模块结合“当前查询 + 已有推理 + 检索文档”,抽取下一步真正需要的信息。
整个过程更像一个会做研究笔记的人:不是先下载一堆资料再硬读,而是边推理边发现缺口,带着问题阅读,只把与当前判断有关的证据写进笔记。
1识别知识缺口
推理进行到具体概念、事实或关系时,判断这一步是否需要外部证据,而不是依赖模型记忆猜测。
2生成针对性查询
查询围绕当前缺口展开,可以在同一次推理中多次触发,并根据上一轮结果继续改写。
3阅读并压缩文档
对检索结果做相关性判断,只保留能推进当前推理的事实与关系,避免原始长文档淹没上下文。
4回填证据并继续推理
把精炼后的信息接回原有推理链;如果仍有不确定性,再进入下一轮搜索,而不是把一次检索当作终点。
Search-o1 论文在科学、数学、编程与六个开放域问答基准上评测了这一设计。论文的核心结论不是“搜索越多越好”,而是:只有当系统能动态决定何时搜、搜什么,以及怎样把证据压缩回推理链时,更多文档才可能转化为更好的答案。
之后的 Search-R1 又把问题往前推进了一步:不再只靠提示词规定搜索流程,而是用强化学习训练模型在多步推理中自主生成搜索查询。论文报告称,在相同设置下,它相对多种 RAG 基线,让 Qwen2.5-7B 和 Qwen2.5-3B 分别提升 41% 和 20%。这些数字来自作者在七个问答数据集上的实验,不应直接外推为所有深度研究任务的通用增益。
PART 05
自我提升不是“自信地多想一会儿”
把 AlphaCode 和 Search-o1 放在一起,可以看到一条清晰的演进路线。
AlphaCode 在候选答案之间做并行搜索:一次生成很多路径,再过滤、聚类、排序。Search-o1 在单条推理链里做序列搜索:走到知识缺口时暂停,查询、阅读、补证据,然后继续。
两者都说明,Agent 的自我提升不等于让模型无休止地反思。没有外部反馈的反思,很容易把原来的错误解释得更加圆滑;没有选择器的大规模采样,也可能只是制造更多重复答案。
一个真正有效的闭环,需要四种能力同时存在:
搜索型 Agent 的四个硬条件
✓可扩展的候选空间:能提出不同路线,而不是同一答案的同义改写。
✓便宜的中间反馈:尽早用编译、样例、检索结果或结构化规则排除坏路径。
✓可信的选择器:能在候选很多时排序,也能承认现有证据不足。
✓受控的上下文:只把当前推理真正需要的信息带回主链,避免噪声累积。
这也解释了为什么“置信度”仍是难题。课堂最后提醒,模型的 token 概率并不是可靠的正确率估计;模型可能在错误时依然非常自信。搜索系统不能只问模型“你确定吗”,而要尽量把判断落到可观察的外部证据上。
对编程任务,证据是测试;对深度研究,证据是来源、交叉验证和清楚的事实边界;对长程 Agent,证据还包括环境状态、工具返回和可恢复的执行记录。
当这些反馈进入循环,模型才不只是“多想了一会儿”,而是在系统约束下修正自己的行为。
收束
写在最后
过去我们习惯把智能归结为模型参数:更大、更贵、更长的推理链,似乎就代表更强。
但 AlphaCode 到 Search-o1 展示了另一条路线。固定模型也能通过推理时搜索获得明显提升,前提是系统知道怎样产生差异、怎样获取反馈、怎样淘汰错误、怎样保存证据。
下一代 Agent 的竞争,未必只发生在模型榜单上。谁能构建更好的搜索空间、更可靠的验证器和更节制的上下文,谁才更有可能把模型的潜力稳定地转化为结果。
课程原视频
01 · Stanford CS329A Part 07: Self-Improvement and Deep Research Agents
https://www.youtube.com/watch?v=Uni9dqyuuDM
Google DeepMind 官方资料
01 · Competitive programming with AlphaCode
https://deepmind.google/blog/competitive-programming-with-alphacode/
02 · Competition-Level Code Generation with AlphaCode
https://arxiv.org/abs/2203.07814
03 · AlphaCode 2 Technical Report
https://storage.googleapis.com/deepmind-media/AlphaCode2/AlphaCode2_Tech_Report.pdf
检索增强推理论文
01 · Search-o1: Agentic Search-Enhanced Large Reasoning Models
https://arxiv.org/abs/2501.05366
02 · Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning
https://arxiv.org/abs/2503.09516
●END●
如果这篇内容对你有帮助
欢迎 点赞 · 在看 · 分享 给更多朋友