对于非技术人员来说,LilianWeng的这篇内容读起来稍微有点困难。
除却那些需要一直查询的技术细节,我一直在想,对于一个非技术人员,我最大的 take away是什么?
我觉得,如果只带走一个点,那就是——从不同的维度来理解模型是怎样思考的。
如果你曾对 ChatGPT 说过:
Let'sthinkstepbystep
那么你已经在使用 “Token层面的思考”了。
这就是被称为Chain-of-Thought(CoT)的机制——在回答问题前,要求模型先“写下推理过程”。
比如这样?:
Q:小明买了3个苹果,又买了2个,他有几个苹果?A:首先他买了3个苹果,然后又买了2个,所以一共是3+2=5。
CoT 的本质,是让模型在语言中“显性地表达出自己的思维路径”。
研究发现,在数学题、逻辑题、代码任务中,加上这样的中间步骤,准确率会显著提升。
更进一步,研究者还发展出了:
- Parallel Sampling + Self-Consistency:一次生成多个思路,再投票选最靠谱的;
- Sequential Revision:让模型像人类一样,一步步自我反思、修改答案;
- 工具增强(如 ReAct、PAL):模型在“想的过程中”可以调用计算器、搜索引擎、代码解释器等外部工具。
可以说,Thinking in Tokens 是模型“说出它在怎么想”的开始。
这里有个很有趣的讨论,就是:模型写下的“思考过程”,到底是它真正在想的,还是写给我们看的?
模型也会欺骗我们,假装在思考。
但思考,并不总是要说出来的。
就像我们解决问题时,有时也只是默默地在脑子里推演,而不是把每一步写在纸上。
对应到大模型中,就是Thinking in Continuous Space:让模型在内部结构上拥有“多想几轮”的能力。
研究者通过以下几种方式实现这一目标:
像 Universal Transformer、Block-Recurrent Transformer 这样的结构,允许模型在内部循环处理输入,控制“每个 token 要不要继续思考”。
人为地插入一些“无意义 token”,强迫模型在生成下一步前“多做一点计算”。
这些 token 像是模型的“停顿”或“深呼吸”,目的是获得更高质量的思维结果。
模型在生成每个 token 后,还要附上一句 “我为什么写这个”的 rationale;
这就像模型在边写边解释自己的每一步,形成“token级别的思维链”。
这一类方法更强调结构上的深度,使模型具备了更细致、更内省的计算路径。
‘思考’这个现象的本质是什么?
我们如何建立一个数学模型来描述它?
我们如何根据这个模型来训练AI,让它的‘思考’更有效、更接近我们期望的理想状态?”
研究者提出:可以把整个推理过程建模为一个概率分布:
P(y|x)=ΣzP(z|x,y)P(y|x,z)
其中:
x= 输入问题
y= 最终答案
z= 思考过程(潜变量)
也就是说:同一个问题(x),可以有多个可能的思考路径(z),我们希望找到那些能导出正确答案(y)的路径。
- STaR(Self-Taught Reasoner):即使模型一开始答错,也可以反向生成“如果要答对,应该怎么想”,并从中学习;
- EM算法
一个非常现实的问题是:我们到底是要一个更大的模型,还是一个能多想一步的小模型?
答案是:两者并不是简单替代关系。
研究发现:
- 对于中等难度的任务,给小模型更多“思考时间”往往能弥补体量的差距;
- 但面对高难度任务,思考时间无法完全替代训练中获得的“认知能力”。
目前最佳策略是:训练一个足够强的 base 模型,然后让它“会慢想”。
这条通往“让模型思考”的路并不简单,还有很多待解的问题,比如:
- 如何训练出既可靠又真实的推理路径?
- 如何让模型真正在“想”,而不是为了奖励“装思考”?
- 如何根据任务难度,自适应分配“思考资源”?
- 如何在现实推理预算下(如时间、算力)取得最优效果?
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |