【科普向】Chat GPT背后的技術(shù):什么是RLHF(人類反饋強(qiáng)化學(xué)習(xí))?
隨著Chat GPT的火熱出圈,越來越多的非技術(shù)同學(xué)聽到了RLHF也就是人類反饋強(qiáng)化學(xué)習(xí)這個(gè)詞,這也是chat GPT背后的技術(shù)原理之一。我在這里對(duì)感興趣的興趣進(jìn)行一個(gè)科普,希望小伙伴們能有所收獲(最近都在更玩的視頻QAQ,做個(gè)正經(jīng)視頻)
首先從Chat GPT自己的回答開始,這個(gè)例子大體意思上是對(duì)的,但是缺少了很多細(xì)節(jié),先做一個(gè)簡(jiǎn)單的引入
假設(shè)你有一個(gè)機(jī)器人叫Rufus,他已經(jīng)有了一個(gè)訓(xùn)練好的語言模型能理解你的語言并能輸出自己的回答進(jìn)行對(duì)話,現(xiàn)在的目標(biāo)是讓Rufus說的話更像人更自然
首先,Rufus會(huì)用原始的語言模型輸出一句話,如:“我,一個(gè)機(jī)器人?!?/p>
人類會(huì)對(duì)這個(gè)句子進(jìn)行評(píng)判并給出修正,比如這個(gè)例子里會(huì)給出這句話不太像人說的這個(gè)判斷,而“我是一個(gè)機(jī)器人?!备匀弧?/p>
Rufus會(huì)根據(jù)收到的反饋更新自己的語言模型,這時(shí)候他在介紹自己的時(shí)就會(huì)說“我是一個(gè)機(jī)器人?!?/p>
人類此時(shí)繼續(xù)對(duì)這句話進(jìn)行評(píng)判并給出修改建議,返回給Rufus。
這個(gè)過程持續(xù)進(jìn)行下去Rufus的語言模型輸出的回答就會(huì)越來越自然了。

下面給出詳細(xì)的分步驟的介紹,下面這張圖是Open AI官方給出的一個(gè)示意??梢苑殖扇齻€(gè)核心步驟
第一步:預(yù)訓(xùn)練語言模型+有標(biāo)簽數(shù)據(jù)微調(diào)(可選)
第二步:訓(xùn)練獎(jiǎng)勵(lì)模型
第三步:通過強(qiáng)化學(xué)習(xí)微調(diào)語言模型

第一步:首先需要一個(gè)預(yù)訓(xùn)練語言模型,通過大量的語料去訓(xùn)練出基礎(chǔ)模型,對(duì)于ChatGPT來說就是GPT-3。還有一個(gè)可選的Human Augmented Text,又叫Fine-tune。這里說直白點(diǎn)就是招人給問題(prompt)寫示范回答(demonstration),然后給GPT-3上學(xué)習(xí)。Fine-tune又叫有標(biāo)簽數(shù)據(jù)微調(diào),概念比較簡(jiǎn)單,就是給到標(biāo)準(zhǔn)答案讓模型去學(xué)習(xí),可能有同學(xué)好奇,這不是和一開始的例子一樣嗎?是的沒錯(cuò),但實(shí)際想要用人工去撰寫答案的方式來訓(xùn)練模型,那成本是不可想象的,所以需要引入強(qiáng)化學(xué)習(xí)。后面會(huì)繼續(xù)講。

第二步:訓(xùn)練獎(jiǎng)勵(lì)模型。我們需要一個(gè)模型來定量評(píng)判模型輸出的回答在人類看來是否質(zhì)量不錯(cuò),即輸入 [提示(prompt),模型生成的回答] ,獎(jiǎng)勵(lì)模型輸出一個(gè)能表示回答質(zhì)量的標(biāo)量數(shù)字。
首先我們把大量的prompt(Open AI使用調(diào)用GPT-3用戶的真實(shí)數(shù)據(jù))輸入給第一步得到的語言模型,對(duì)同一個(gè)問題,可以讓一個(gè)模型生成多個(gè)回答,也可以讓不同的微調(diào)(fine-tune)版本回答。
接下來讓標(biāo)注人員對(duì)同一個(gè)問題的不同回答排序,有人可能會(huì)好奇為啥不打分?這是因?yàn)閷?shí)驗(yàn)發(fā)現(xiàn)發(fā)現(xiàn)不同的標(biāo)注員,打分的偏好會(huì)有很大的差異,而這種差異就會(huì)導(dǎo)致出現(xiàn)大量的噪聲樣本。排序的話能獲得大大提升一致性。
這些不同的排序結(jié)果會(huì)通過某種歸一化的方式變成定量的數(shù)據(jù)丟給模型訓(xùn)練,從而獲得一個(gè)獎(jiǎng)勵(lì)模型。也就是一個(gè)裁判員。

第三步:基于強(qiáng)化學(xué)習(xí)(RL)去優(yōu)化調(diào)整語言模型
policy是給GPT輸入文本后輸出結(jié)果的過程(輸出文本的概率分布)
Action Space是詞表所有token(可以簡(jiǎn)單理解為詞語)在所有輸出位置的排列組合
Observation space是可能輸入的token序列,也就是Prompt
Reward Function則是基于上面第二步得到的獎(jiǎng)勵(lì)模型,配合一些策略層面的約束
將初始語言模型的微調(diào)任務(wù)建模為強(qiáng)化學(xué)習(xí)問題,因此需要定義策略(policy)、動(dòng)作空間(action space)和獎(jiǎng)勵(lì)函數(shù)(reward function)等基本要素
具體怎么計(jì)算得到獎(jiǎng)勵(lì)Chat GPT是基于梯度下降,Open AI用的是 Proximal Policy Optimization (PPO) 算法,這里就不展開講了,可能后續(xù)單獨(dú)再錄視頻
至此,RLHF的三個(gè)步驟就完成了!當(dāng)然里面還有很多的細(xì)節(jié)以及工程問題,背后付出的努力和成本其實(shí)是巨大的。
最后我想說,雖然ChatGPT非常有影響力,引發(fā)了巨大的關(guān)注,RLHF技術(shù)也是一樣,仍然存在若干局限性,比如語言模型輸出仍然是基于概率的,而不是基于推理或者理解,但仍然可能輸出有害或事實(shí)上不準(zhǔn)確的文本。希望能穩(wěn)步推進(jìn)技術(shù)進(jìn)步,而不是讓這一次浪潮變成資本的狂歡,狂歡過后一地雞毛,一如去年的元宇宙。