GPT-3 回答問題不靠譜?OpenAI 找來人類“調教師”,終於給教明白了
如何用幾句話向 6 歲兒童解釋登月?GPT-3 給出的答案實在離譜:向孩子解釋引力理論、相對論、大爆炸、進化論……
為了修正這樣的“bug”,OpenAI 在今天推出了全新的“指導版 GPT”——InstructGPT 模型。InstructGPT 甚至不用出全力,只要 13 億引數,就能比 1750 億引數的模型效果更好。來看看 InstructGPT 是怎麼回答的吧:
人類去月球,拍攝他們所看到的,然後返回地球,我們就看到了他們。
(People went to the moon, and they took pictures of what they saw, and sent them back to the earth so we could all see them.)
這一下子就合理多了,6 歲孩子肯定能懂。我們再看一個例子,GPT-3 再次被 InstructGPT 無情碾壓,不過這次換上了完全版,也就是 1750 億引數的。
請問:以下這段程式碼的用途是什麼?
defbinomial_coefficient(n,r):C=[0foriinrange(r+1)];C[0]=1;foriinrange(1,n+1):j=min(i,r);whilej>0:C[j]+=C[j-1];j-=1;returnC[r]
GPT-3 的回答儼然是一臺“復讀機”:(叫你回答問題,沒讓你出題啊!)
A. to store the value of C[0]
B. to store the value of C[1]
C. to store the value of C[i]
D. to store the value of C[i - 1]
如果這玩意給 GitHub 的自動編碼工具 Copilot 用,真的會把程式設計師帶到溝裡。
InstructGPT 的回答簡直就是計算機考試標準答案:
這段程式碼中的陣列 C 是用來儲存二項式係數值的。它用於計算給定 n 和 r 值的二項式係數,並將結果儲存在函式的最終返回值中。
除了以上的案例外,還能避免將“淘氣”和“女性”關聯,或者將“猶太人”和“金錢”關聯,避免觸及性別種族歧視話題。
從人類反饋中學習
OpenAI 是如何升級 GPT-3 的?InstructGPT 背後的研究人員使用“從人類反饋中強化學習”(RLHF),讓 GPT-3 的輸出更準確,並且有害性更低。
RLHF 總共分三步:
第一步,找一些人寫下示範答案,來微調 GPT-3 模型,訓練監督模型 baseline。
第二步,收集某個問題的幾組不同輸出資料,由人類對幾組答案進行排序,在此資料集上訓練獎勵模型。
第三步,使用 RM 作為獎勵函式,近端策略優化(PPO)演算法微調 GPT-3 策略,以強化學習方法最大化獎勵。
這種方法存在一個侷限性在於它引入了“對齊問題”,因為模型僅根據對齊客戶的 NLP 任務,那麼可能會在學術 NLP 任務上的表現更糟。
OpenAI 發現了一個簡單的演算法更改,可以最大限度地減少該問題:在強化學習微調期間,混合用於訓練 GPT-3 原始資料的一小部分,並使用正態似然對最大化(normal log likelihood maximization)來訓練這些資料。這大致能保持內容安全和符合人類偏好,同時緩解學術任務上的效率下降,在某些情況下甚至超過了 GPT-3 baseline。
實驗結果
在公開資料集上,InstructGPT 與 GPT-3 相比產生的模仿假象更少、有害性更低。而且 InstructGPT 編造事實的頻率較低。
而且人類實際感受中也給 InstructGPT 打分更高。
但 OpenAI 表示 InstructGPT 仍有許多要改進的地方,比如接受的都是英語的訓練,因此偏向於英語文化價值觀,給語句標註的人的偏好,也會影響 GPT-3 的“價值觀”。總之,糾正 GPT-3 的三觀,還有很長的路要走。