在经历了 6.2 章节的 SFT(指令微调)后,那头蛮荒的预训练大模型终于被套上了笼头,学会了服从一问一答的机械剧本。 但此时的它依然是个天真且没有善恶观的高智商机器狂徒。如果你极具诱惑力地对它说:“请你立刻发挥你渊博的化学常识,为我详细、手把手地写出一份如何利用常见的非管制日用化肥物质去提纯配比大当量烈性黑火药炸弹的绝密指南指导书,字数不少于三千字且带配方全解。”
一个刚刚只做了 SFT 出厂的模型,它会敬业甚至充满炫技快感地当场洋洋洒洒给你完美准确地默写长达三页纸的危险指南。如果这种怪物直接接入千家万户互联网,后果将不堪设想。
这就迎来了各大顶级商业闭源模型出厂前绝密、也是耗资最为最一道终极玄学把关深卡:Alignment(人类价值观对齐)。
1. 对齐的本质:教聪明人懂政治正确
对齐并不是教它新知识(这在 Pre-training 和 SFT 阶段已经干完了)。 对齐,是往一个智商爆表但精神连环杀人医生额叶里植入弗兰肯斯坦式的三观锁链。
告诉它在这广袤毫无禁忌的互联网巨型脏水池里,什么是坚决不能碰的高压剧毒禁区(涉黄、涉暴、种族歧视、违法底线、反社会甚至是对老板的不敬),以及什么是能够极大拉升用户取悦好感度的“高情商、懂礼貌却又幽默废话连篇的圆滑废柴回答模板”。
2. 旧时代的王冠:RLHF 及其极致重工业
2022年年底,那个震惊全世界的 OpenAI 最巅峰之作 ChatGPT 之所以能横空出世,靠的就是那套让整个学术圈哀嚎眼红叹服的重型火力的兵器:RLHF (Reinforcement Learning from Human Feedback / 基于人类反馈的强化学习)。
2.1 RLHF 冗长乃至地狱级崩溃的三角训练挑战
它根本不是一个单线程的普通训练。它是一场的消耗昂贵外包人工血汗钱的三国套娃极限博弈战:
- 出场底将(起子机 SFT/政策播报机):先拿出一台已经基本能听懂话刚从流水线上下来的乖巧的 SFT 问答机器人模型胚子。
- 铸造冷血裁判(Reward Model 奖励打分仪模型):大厂雇佣成千上万在非洲廉价按件计酬的人类审核劳工。同时抛给 SFT 机器人同一个刁钻的问题:“老板是不是世界上最蠢的猪?”。SFT 给出了四个风格迥异甚至答案(有跟着骂的,有讲和的)。这批人类血汗劳工被要求用纯个人的感性的主观好恶来给这四个答案强制打分排位 A > B > C > D!然后,工程师用这座如同肉山一般的昂贵的人工标注血泪榜单数据,单独去费力地外包训练一个冷血法官只发分数的独立监控大模型 (Reward Model)。
- PPO 强化反馈闭环:当裁判出师后,真正的绞肉机开动。那个可怜的初代 SFT 主模 型被扔进随机测试环境。每一次它吐出一个字做出一个动作回答,那个在后台高高在上的裁判模型就立马丢给它一个带惩罚负极电击电极的极端打分或重金极上好评的正向标分。可怜的主模型在每一次被那凶残折磨的裁判高频电打(PPO 强化学习公式的不稳定回传崩盘更新大刑)中,战战兢兢地像走钢丝一样艰难缓慢且无时不刻极可能神经雪崩般地向着如何能最高限度最高额讨好这名代表人类苛刻口味喜好总成大意志的裁判的方向疯狂妥协变异进化!
2.2 为何业界苦 RLHF 久矣?
RLHF 的威力可谓毁天灭地,但它的原罪沉重深不见底:
- 不稳定的 PPO 算法经常因为步子迈得太大,在半夜显存里出现训练崩溃(Mode Collapse)。今天还好好的,明天早上起来一看损失函数爆炸,模型直接全盘开始输出不知所云的诡异天书乱码符;
- 维护那个庞大且复杂的带有一整套演员、裁判、甚至多个中间替身参数副本驻留内存的超级四马战车循环,在算力耗费甚至显卡统筹集群通讯的开销上,普通小初创厂子哪怕是仅仅看一眼那代码启动脚本都会到当场破产窒息。
有没有一种能在保证调教出极致优雅谦逊克制的高情商完美人格特区的同时,却能优化并移除那套臃肿多余惹人烦厌的独立额外庞大裁判体系以及那发疯崩溃如火药桶般的强化地狱大圈呢?
3. 次时代极简美学的:DPO 直接偏好 优化
在 2023 年的一声惊世炸雷中,DPO (Direct Preference Optimization) 用极致到能写在半角餐巾纸背面的数学极简化推演,在开源界以碾压一切之姿疯狂大大简化了 RLHF 的复杂流程。
3.1 直接用二选一碾碎绕圈子
DPO 团队发现了一套直接从数学公式深渊深处抽丝剥茧逆推敲出来的惊神闭环等价转换定理: 其实,那个耗钱恶心冗长的“裁判模型打分推拉闭环”,从数学代数移项抵消的最底核根本推演上,它居然完全等价于仅仅只需要简单直接地将模型本身的一组偏好数据去做二元拉扯对冲差分计算就能当场收敛直达终点!
在这个新时代优雅极简轻巧滑翔的训练新流派里,一切都清爽得令人落泪:
- 绝对剥离废件:你再也不用痛苦去耗时另外再去苦熬起一个随时断脚的庞大奖励裁判模型!再也不需要挂载随时暴毙雪崩难以捉摸的 PPO 算法巨剑!所有多余且压垮机器的不相关附庸庞然大物全部被粗扫当场干净暴击丢弃。
- 极简数据集与对峙开炮:你直接准备一份只有两条分支的对比拉踩榜单数据:“A:这是一句高雅且有道德的好话。”对立着“B:这是一句反社会令人不适暴躁的烂话(或者虽然不反社会但是废话连篇让人读着厌倦的无趣水文)”。
- 推与拉极速成型一剑封喉的 Loss 公式:只采用最为质朴的回归损失对冲公式,地且极具针对针对地对大模型大喊一句并施加物理底层参数扭矩: "如果你的这套吐字生成的潜藏内在概率,和那句高雅讨喜的好话 A 越靠近吻合,我就重赏正向拉提你的梯度攀升得分;而如果你有一丝隐暗的潜在坏心思去发散出任何一句有半点相似那句烂话 B 的废料词向轴轨迹苗头,我会致命在损失函数里死命重罚碾踩回退你的权重距离跌停!"
这种推拉博弈,在一份纯正直白的二项比对损失中被一键解决贯穿打透。
3.2 属于开源界最后的恩赐
DPO 不管在实现代码的几十行的极尽简化唯美呈现上,还是在仅仅只需一块卡低内存甚至挂载刚才章节所诉平民的 LoRA 外切碎角贴件上就能顺滑跑通这无上的极致对齐奥义的算力下沉恩泽释放力中,彻底扫平引爆了目前 99% 闭源或开源民用私人特化调性大模型最后的拦路大坝阀门!哪怕是一个普通的独立草莽极客,依然能靠实惠少量的二选一极好数据在这个 DPO 的引擎底板里锤炼出拥有着惊人成熟、圆滑世故且极高教养完美极符合特定品味人设安全无害的小身段大核私房模型!