想象一下,现在有一位拿着纸笔的小学生和一个大学牲,站在 LLM(Lots-of Learning Mankind) Evaluation 的舞台上。
第一题,背诵快速矩阵运算 Strassen algorithm 的时间复杂度
小学生学过奥数,知道矩阵乘法是什么,推理说,矩阵乘法乘 n² 次,加 n 次,那时间复杂度就是 O(n³)
大学生学计算机的,背出了正确答案 O(N^{log₂(7)}) ≈ O(N^2.8074)
第二题,以下是两个 10×10 的矩阵,请手算其点积 ……
小学生拿起笔就一行行算了起来,写了几张纸,最后给出了正确答案
大学牲只能心算,奈何 Attention 不够,最后只好放弃,说“对不起,我不能帮你计算矩阵乘法,您可以使用 numpy 进行计算,首先如果没有安装 numpy,先在终端中输入 pip install numpy
……”
上面是引入 🤣 但大概就是这个意思。
三月下旬,Anthropic 的 AI 心理学文章 Tracing the thoughts of a large language model 出来之后,大家开始反思推理模型(reasoning models)的推理内容,是否真的有用
从 benchmark 上看是非常有用的,小的推理模型能比大得多的非推理模型提高数倍的分数。加上震惊世界的 R1 告诉大家训练推理模型只要 RL 就可以了,大家对 test-time scaling 的热情一直高居不下。
QwQ 32b 自称在多项任务上超越 R1,我也很心动。但是使用下来看,其实差远了。但当时只觉得很费解,还没能解,就先把这个问题搁置了
几天前收到 GitHub Copilot 收到一封广告邮件 Which AI model should I use with GitHub Copilot,就又开始思考这个问题。回想起前段时间 Grok 3 终于上 API 了,文档里提到:
Use
grok-3-mini
for tasks that can benefit from logical reasoning (such as meeting scheduling or math problems). Also great for tasks that don't require deep domain knowledge about a specific subject (eg basic customer support bot).Use
grok-3
for queries requiring deep domain expertise or world knowledge (eg healthcare, legal, finance).
忽然想通了。推理模型增强模型能力的方法,其中真正提高模型表现的部分,直白来说就是 按格式打草稿。举例来说,
- 乘法计算的时候,列竖式就是按格式打草稿
- 做遗传题的时候,把每个亲本和子代的基因型一个个推出来就是按格式打草稿
- 高中数学导数题,有的题要靠逆向去凑的,这种就要猜,然后去否定各种可能性来得到答案,这些猜的 hypotheses 就是草稿
- 做编程算法题的时候,确定有哪些状态,每一步状态之间怎么转换,这就是打草稿
推理模型在 <think>
的时候,真正有用的部分就是这个过程。所谓 强制模型说“Wait, ...”就能提高性能 的奇技淫巧,也就是“验算”。本质上跟上面的这几个例子是一个道理。
这种需要形式化多步推理的东西,是模型本身能力再强也只是背题。看我博客的人应该至少都上过高中,知道背题是没用的。有用的是学会什么题要用什么“格式化草稿”来推。所以高中老师经常说高考靠努力,就是因为这不管你是 671b 基座的 DeepSeek R1 还是 9b 基座的 GLM Z1,只要你愿意学怎么打草稿,你们就都在同一个起跑线上
Grok 3 系列 有一个便宜 30 倍的小的版本,更快、更便宜、更会做题。这就是小学生。小学生固然有用,但大家不能只吹小学生分多高,也要看到小学生不擅长做什么。
现在看来,小学生尤其擅长做 逻辑题、数学题、编程 这些方面,但我觉得其实还是少的。很多别的场景,其实也可以“打草稿”,但是现在模型并没有学会这些草稿。我认为这些草稿很关键。
一些进一步的猜测:
R1 论文里说,他们去 RL 的时候就用了 答案正确与否、CoT 长度 这两个 reward 函数。按照我上面的比喻来看,推理内容(也就是草稿)是否按格式,是一个更好的 reward。但恐怕我这两个月没那么多时间自己推进这些了(我有毕设和比赛,还有各种活😭)