大语言模型的数学之路
LLM 目前在数学问题上取得的进展; 有哪些技术路线在未来可能会更进一步提升 LLM 解决数学问题的能力?
技术路线
2.1 Inference Prompts
2.1.2 Self-Verification
这篇工作就是进行反向验证,是比较符合人类思考问题的直觉。
Forward 就是我们之前让模型直接算的,而 Backward 的意思就是我把题干中的一个变量给遮盖掉,变成 x,而我告诉你答案,我要反问你 x 是啥。
不同的是 Self-Verification 是用以验证,不能扩充成为 Examples,而 FORBAR 就可以作为 Examples。
Program of Thought 是不同于 CoT 的工作,出发点也很简单,比较复杂的数值推理任务,靠一步步推理,其实 LLM 还是会搞错。
有人说,乍一看,这不就是 CoT 吗?一步步展开思考,没毛病吧,但你看 calculate 那里,这个过程是可以不需要 LLM 自己得出答案的,它可以只写个代码让计算机执行 Python 程序,而 LLM 做的是下达指令,读取输出即可。
CoT 相当于上面求平均值一直写在纸上的过程,但是有些 low-level 的思考人类是不需要写下来的,而 LLM 做不到这一点,这也是为什么 CoT 会产生看似正确但又模糊的答案,而 Work Memory 是将 internal 的思考交由更准确的工具去做,比如上述算力大小的例子,写程序,然后执行代码,最后 LLM 只需要读取就行了。
通过程序来控制一些变量,来生成例子(OneSmallStep) 从现成的数据集中拿(Workout, Khan Problems) 另一种就是直接用<work>这种模版转换(GSM8k train)
需要注意的是,不能单纯的拿\<work>和 mCoT 对比,因为上面 Galatica 的 prompt 数据集是预训练过的。
2.1.7 OPRO
这篇文章比较有新意,目前 LLM 对于 prompt 不稳定,猜测可能是不一致的原因:用人工优化的 prompt 来调整 LLM 内在输出分布,那很自然就有一个想法,能不能让 LLM 自己来优化使用的 prompt 呢?
2.2.1 Process Supervision
We've trained a model to achieve a new state-of-the-art in mathematical problem solving by rewarding each correct step of reasoning (“process supervision”) instead of simply rewarding the correct final answer (“outcome supervision”).
目前的奖励模型大多基于「结果监督」,追求让模型产出正确的结果,而这样的弊端在于两点:
模型中间的思考过程是未知的,解释性和可靠性不高
无法真正实现 alignment with humans,只是去对齐结果
In addition to boosting performance relative to outcome supervision, process supervision also has an important alignment benefit: it directly trains the model to produce a chain-of-thought that is endorsed by humans.
Reinforcement Learning from Evol-Instruct Feedback(RLEIF)是 WizardMath 提出的技术,设计比较巧妙,一共分为三步:
第一步:是先用指令微调获得模型 Wizard-E;
第二步:接着模仿 Evol-Instruct 利用 Wizard-E 和 ChatGPT 来扩充训练集,主要是分为两个方面,让问题变得更简单(Downward)和让问题更复杂(Upward),比如加更多限制,复杂化原来的问题。然后用 Wizard-E 进行排序,获得训练 Instruction Reward Model(IRM)的数据集。
从上述表格可以看出,论文占了大头(83%),令人惊讶的是 CommonCrawl 仅仅占了 1%。
还将prompt数据集加入了预训练之中
无独有偶,Minerva 同样收集了来自 arxiv 上的论文,有趣的是 General 的语料也是占比很少。
上面的 Galatica 和 Minvera 都是收集数据,是否可以让 LLM 生成数据呢?
RFT(Rejection Sampling FineTuning)是阿里的工作,方法比较符合直觉,直接让微调后的模型来生成不同的例子用以扩充数据集,然后根据一些准则来筛选:
答案不对的 计算结果和 Python 结果不一致的
还是那句话,我们可以用 LLM 来进行数据的扩充,问题是怎么扩充呢?这篇工作针对问题和回复分别进行了增强:
这篇文章跟上面的 AugGSM8K 算是同期工作,也是利用 LLM 来对数据集进行增广,然后进行微调。
它主要是对问题进行增广,分为以下几种:
Rephrase Question
Self-Verification
FORBAR
这篇工作是我数据分支线中很喜欢的一篇,其实 RFT 类通过 Bootstrap 来搞数据集的路子,会丧失「通用性」,在 GMS8K 上效果好,而在 MMLU-Math 上就有可能掉很多点;而 Galatica 和 Minvera 付出的代价要很多。
特点有三个:
量大,一共有 200K 覆盖比较多的数学领域 Prompt 同时包括了 CoT 和 PoT
2.4.1 MathGLM
2.4.1.1 具备算数能力
这篇工作是相当有趣,它也解决了我的困惑,若 LLM 从一开始就学数值推理,能不能做好?同时,这篇工作给了一个全新的视角来做一个「专家模型」。
接下来选用的主力 backbone 是 2B 的 Transformer-Decoder,你没有看错,这篇文章并没有使用 LLM Backbone,而是用 AutoRegressive loss 直接用上面数据集去训练。
Decoder-Only 架构的确可以学习到算数规则;
参数的规模不需要那么大,2B 就能有很好的能力。
2.4.1.2 通用一点的专家模型
路在何方
题目的解答得正确 解题过程正确可解释
尽可能人工去搞高质量的数学推理数据集,你像 LLM 在文本领域能成功,肯定离不开大量的高质量数据集 如果特别强领域特性的没有,就找更接近的,比如论文这种科学领域的语料 实在不行,就想办法让 LLM 来自我产生数据集(Bootstrap),但这种很依赖于模型,且会引入模型的内在 Bias,但不失为提升模型的手段
数据的处理这块看着比较简单,其实不然。
第一个原则:detailed,把 LLM 当成弱智,越详细越好。比如 MetaMath 就将答案改写成一步步过程;
这一点其实 MathGLM 和 Galatica 给了我不少启发,但目前有一个问题尚未解决:
如果先预训练 Math LLM,后期去建模文本,究竟能保留多少通用性,或者反过来,如何保留数学的能力,说到底就是 how to be general and specific,如何衡量「通用性」和「专用型」,是值得考量的。
决定之后,其实就可以借鉴这两个模型的路子,比如将 Prompt 数据集直接放入预训练中,以及用 AutoRegressive loss 去建模数值推理的例子等。
预训练完毕,再利用 SFT 或是 RLHF 类方法去进一步微调。
参数的规模我觉得应该不会需要很大,相反,对于数据如何利用是值得考量的,正如在 Galatica 中提到的:作者们发现当重复训练时,性能也会稳步上升,作者将此归因于高质量的数据。
3.3 更强的推理方法
从简单的 Zero-Shot 再到 CoT,到 OPRO,经历了太多 Prompt 方法的变迁,我想未来应该很会有,但趋势应该是如何将 LLM 本身的知识引入其中来选择或构造 Prompt,这种一致性带来的提升会更稳定和持久。
3.4 最后一个问题
How to leverage LLM's intrinsic ability to do reasoning?
参考文献
[1] https://openai.com/research/improving-mathematical-reasoning-with-process-supervision
[2] https://galactica.org/static/paper.pdf
[3] https://arxiv.org/abs/2203.11171
[4] https://arxiv.org/abs/2201.11903
[5] https://arxiv.org/abs/2206.14858
[6] http://arxiv.org/abs/2309.03409
[7] https://arxiv.org/pdf/2308.09583.pdf
[8] https://arxiv.org/abs/2304.12244
[9] http://arxiv.org/abs/2308.01825
[10] https://arxiv.org/abs/2309.05653
[11] https://arxiv.org/abs/2211.12588
[12] http://arxiv.org/abs/2310.05506
[13] http://arxiv.org/abs/2309.03241
[14] https://arxiv.org/abs/2309.12284
[15] https://arxiv.org/abs/2308.07758
[16] https://arxiv.org/abs/2212.09561
[17] https://yunpengtai.top/posts/llm-math/
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧