1. 程式人生 > 資訊 >GPT-3 回答問題不靠譜?OpenAI 找來人類“調教師”,終於給教明白了

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 的三觀,還有很長的路要走。