每天趁着科研间隙看一看 CS336 一不小心也学完了,学完之后很清楚自己对于这套东西的技术没有什么兴趣。但是 LLM 的训练范式的迁移还是很有意思的。
预训练 (Pretraining) 就是 next-token prediction,对于人类来说就是填鸭式背书。
有监督微调(Supervised Fine-Tuning, SFT),对于人类来说就是做题背答案。这其实也是在学强化学习的时候所说的行为克隆(Behavioral Cloning)了,但它不是强化学习,因为强化学习的反馈得从模型获得。
从人类反馈做强化学习 (Reinforcement Learning from Human Feedback, RLHF)类的方法对于人类来说在当前学术界很常见,导师充当的是提供反馈的作用,这确实也存在着不同的风格:
有一些导师不愿意去了解学生,所以手把手教,这本质上还是在做 SFT。看似花了功夫,但是在RL这件事情上做得最差。
DPO (Direct Preference Optimization) 像是在开组会,导师对别人的工作依次评价,学生来学什么是好,什么不好。比 SFT 好的地方在于至少看过了什么是不好的,不会幻觉太多一直踩坑。
PPO (Proximal Policy Optimization) 有点接近研究生的第一个练手项目,是导师让学生在一个已有框架上做修改之后给反馈。通过这套训练方式就能产出文章,所以其实有很多学生到毕业了也只是在不断重复 PPO。
GRPO (Group Relative Policy Optimization) 则是一个放养导师招了好几个人玩赛马制,做完之后让所有人来学习做得最好的。这要求导师至少能评判好坏,但现实中如果导师与前沿脱节,哪怕只是想提供正确的反馈都很难。坏处包括可能没有产出。
STaR (Self-Taught Reasoner) 和 PRM (Process Reward Model) 是不仅看结果,还对推理过程中的每一步进行打分,对于人类来说这大概比 SFT 并没有多费多少功夫,但效果要好得多。
可验证奖励的强化学习 (Reinforcement Learning with Verifiable Rewards, RLVR) 与 RLHF 相比在学习范式上并没有本质创新。只不过请导师太贵了,所以用了一堆反馈程序来替代导师。刚好在写程序这件事情上,程序员开发了一大堆工具比如 LSP 能够验证正确性,所以在过去的一年里 coding agent 突飞猛进。
对于人类来说这些事情有什么指导意义呢?我觉得首先,有正确的反馈信号比没有强,但是也要注意到错误的信号不如没有。第二点是人还是太贵了,我们做一套基于 AI 的验证系统来给学生提供反馈在功效上是足够的。而在学徒制以及研究组中所学到的人情世故,那不过是另一个课题罢了。第三点则是要与以前从集成学习里学到的知识相结合,人无完人,好而不同很重要,要有能被 GRPO 评估的价值。第四点则是关于 Richard Feynman 的名言 "What I cannot create, I do not understand.". RL其实告诉了我们,我们只要能评判,我们就还是懂点什么的,这个懂是介于不懂和能创造之间的。第五点是不要放弃对自己的训练,在资源足够风险可控的情况下要对自己做更有泛化性的训练,谁也不知道未来会发生什么。
如果有一天我开发出一套教育系统,我会叫它 Labrador。毕竟每个人只能陪你走一段路,迟早是要分开的。但拉布拉多可以一直陪着你,还能子孙后代一直养下去。