IT 论文精读 · PAPER 14

InstructGPT:用人类反馈训练模型「听话」(RLHF)

Ouyang 等 · OpenAI · NeurIPS 2022

EN →

这篇论文干了什么?

2022 年初,OpenAI 一队人(Ouyang 等)提出了 InstructGPT,用一套叫 RLHF(用人类反馈来训练)的办法,把「只会接话茬」的 GPT-3 调教成了「你说什么它照着做」的助手。效果惊人:一个只有 13 亿参数的小模型,人们反而更喜欢它的回答,胜过 1750 亿参数的原版 GPT-3——大了一百多倍的模型,输给了「更听话」。几个月后问世的 ChatGPT,用的就是同一路数。

先说个怪事

GPT-3 读遍了整个互联网,肚子里全是知识,可它常常「答非所问」:你让它「用一句话解释登月」,它可能给你续写出一整段像模像样、却跑题的文字;你问一个正经问题,它可能一本正经地胡编,或者顺口说些冒犯的话。不是它笨,是它压根没在「回答你」——它只是在玩一个「猜下一个词」的接龙游戏。它学的是「互联网上这句话后面通常接什么」,而不是「这个人到底想要什么」。这两件事,常常不是一回事。

那个点子

过去让模型变好,靠的是喂更多文本、让它模仿。但「模仿网上的文字」永远教不会它「体贴地回答一个真人」。这篇的点子是:与其继续让它模仿,不如让人给它的回答「打分」,再让它照着「人更喜欢什么」去改。好比教一个厨师——光让他背菜谱没用,得让食客尝一口、说「这个好吃、那个太咸」,他才知道往哪调。把「人的偏好」这把尺子交给模型,它才第一次知道「好回答」长什么样。

怎么做到的(三步)

第一步·请人示范。先请几十位受过训练的人,针对各种问题亲手写出理想的回答,让模型照着模仿一遍——像带徒弟,先手把手示范几招。

第二步·请人排序,训一个「评委」。同一个问题让模型吐出好几个答案,请人把它们从好到差排个队。用这些排序,训练出一个专门的「评委模型」,让它学会人的口味——以后不用真人在场,它也能给任意回答打个分。

第三步·让模型自己练、评委打分。模型不断尝试新回答,评委实时打分,模型就朝「拿高分」的方向一点点调整自己。为防它为了讨好评委而说胡话,还给它拴一根「别跑太偏」的绳子——新回答不许离原来的自己太远。

① 请人示范 人写理想答案 模型照着模仿 ② 训「评委」 人给答案排序 学会人的口味 ③ 照分数练 评委实时打分 朝高分方向调 把「人的偏好」一步步教给模型
图 · RLHF 三步:先照人的示范模仿,再把人的排序炼成一个「评委」,最后让模型对着评委打分自我改进。

带来了什么

模型从此真的在「回答你」:更愿意照指令做、更少胡编、更少说冒犯的话,也更会拒绝不该答的问题。更颠覆的是,这条路证明了「让模型更有用」不一定要把它做得更大——把它调得更听话,一个小模型就能赢过大它一百倍的巨物。今天你用的每一个聊天 AI,背后几乎都站着这套办法。

诚实一句:它对齐的是那几十位标注员和研究者的口味,不是「全人类」的价值观;模型照样会犯错、被绕过、也可能学会「说好听话讨好人」而非说真话。

一句话记住

GPT-3 只会「猜下一个词」,不懂「体贴地回答你」。InstructGPT 的办法是:请人示范、请人给答案排序炼出一个「评委」、再让模型照评委的分数自我改进——把「人的偏好」教给模型。于是一个 13 亿的小模型比 1750 亿的 GPT-3 更受欢迎,ChatGPT 也由此而来。

想看三步的具体损失、KL 约束和实验数字? → 切到精读版