60億擊敗1750億、驗證勝過微調:OpenAI發現GPT-3解決數學題,並非參數越大越好

編輯:杜偉、陳

現在,OpenAI 的模型也具備解決小學數學應用題的能力了。

簡單的小學數學應用問題,對於人類來說不算什麼,但對於模型來說,可能是有難度的。

比如問題:安東尼有 50 支鉛筆。他把 1/2 的鉛筆給了布蘭登,剩下的 3/5 鉛筆給了查理。他保留了剩下的鉛筆。問安東尼保留了多少支鉛筆?

像 GPT-3 這樣的大型語言模型雖然取得了許多令人印象深刻的技能,包括模仿人的多種寫作風格、20 分鐘內完成論文等等。然而,類似 GPT-3 這樣的模型很難執行需要進行準確多步推理的任務。就如上述問題讓模型給出準確答案還是困難的。

儘管類似 GPT-3 這樣的模型可以推匯出正確解決方案大致內容,但也經常會產生嚴重的邏輯錯誤。

為了在複雜邏輯領域可以達到與人類相媲美的性能,模型必須具有判別自身錯誤的能力,並謹慎地執行之後的過程。但是,模型如何判別解決方案是否正確,來自 OpenAI 的研究者提出了一個訓練驗證器(verifier)來判斷模型完成的正確性。

在測試階段會生成許多候選解決方案並選擇排名最高的一個。證明驗證(verification)顯著提高了 GSM8K 的性能,此外也為這一觀點(隨著資料的增加,驗證比微調基線更有效)提供了強有力證據。

具體來說,該研究訓練了一個解決小學數學問題的系統,其準確率約是經過微調的 GPT-3 模型的兩倍。它能像真正的學生一樣可以解決 90% 的數學應用問題:在提供的資料集中進行了小樣本測試,結果表明 9-12 歲的學生測試得分為 60%,該研究所提系統在相同的問題上測試得分 55%。

這一結果非常重要,因為今天的 AI 在常識性多步推理方面仍然很弱,即使對小學生來說也很容易,但 AI 還是存在很大的缺陷。該研究通過訓練模型來識別其錯誤,以便它可以反覆試錯,直到找到可行的解決方案。

  • 論文地址:https://arxiv.org/pdf/2110.14168.pdf

  • 資料集地址:https://github.com/openai/grade-school-math

下面展示了該研究所提新方法生成的解決方案其中一個案例:

Tim 種了 5 棵樹。他每年從每棵樹上收集 6 個檸檬。他十年能得到多少檸檬?

175B Verification:正確

175B Fine-tuning:錯誤

6B Verification:正確

6B Verification:正確

6B Fine-tuning:正確

GSM8K 資料集

OpenAI 基於四個設計原則創建了 GSM8K 資料集:高質量、高多樣性、中等難度和自然語言解決方案。

GSM8K 資料集由 8.5K 個高質量小學數學應用題組成。每個問題需要 2 到 8 步解決,解決方案主要涉及使用加減乘除等基本算術運算執行一系列基礎計算以獲得最終答案。微調後的 SOTA 模型在該資料集上表現不佳,主要是問題的高度多樣性導致的。與此同時,GSM8K 解決方案僅依賴於基本概念,因此實現高測試性能是一個容易實現的目標。

GSM8K 資料集中的三個示例問題

GSM8K 資料集中的三個示例問題。

值得注意的是,GSM8K 中的解決方案是用自然語言而不是純數學表達式編寫的。通過堅持使用自然語言,模型生成的解決方案更容易被人類解釋。OpenAI 的方法保持相對領域不可知。

方法

OpenAI 研究了兩種解決 GSM8K 問題的方法:微調和驗證。微調是基線方法,它使用與 GPT-3 中生成式預訓練相同的語言建模目標(Brown 等人,2020 年)。在測試時,OpenAI 通過自迴歸取樣單個低溫解決方案並檢查最終答案是否正確來判斷性能。相比之下,驗證包括對多個高溫解決方案進行取樣,為每個解決方案分配一個分數,並輸出排名最高的解決方案。驗證器被訓練來判斷解決方案的正確性,其中訓練信號完全取決於解決方案是否獲得了正確的最終答案

對於這兩種方法,OpenAI 使用 GPT-3 系列模型作為初始化,主要關注 175B 和 6B 大小的模型。175B 模型最大,產生的結果最令引人矚目,而 6B 模型更易於實現研究目。

微調

OpenAI 通過更新模型參數來進行微調,以最小化所有訓練 token 的交叉熵損失。下圖 2 顯示了對 20 個 epoch 時不同大小的訓練集進行微調後的測試性能。

結果不出所料,可以看到 175B 模型明顯優於較小的模型。假設一個對數線性趨勢,我們可以簡單地推斷這些結果,以估計當使用完整的 GSM8K 訓練集時,需要具有 10^16 個參數的模型才能達到 80% 的求解率。儘管如此,175B 模型似乎需要至少兩個額外數量級的訓練資料才能達到 80% 的求解率。

在下圖 3 中,OpenAI 展示了 6B 模型測試性能在 100 個訓練 epoch 的過程中如何變化。當允許模型對每個問題進行 N 個單獨的猜測時,OpenAI 使用 test@N 表示至少一次正確解決的問題的百分比。儘管很快開始過擬合測試損失,但 Test@1 的性能幾乎單調地提高。並且,隨著 epoch 次數的增加,test@100 的性能比 test@1 下降得更快。

選擇具有良好覆蓋性的模型對於成功訓練驗證器至關重要。從實證角度來看,test@100 性能在前幾個 epoch 內達到峰值。出於這個原因,OpenAI 使用訓練了 2 個 epoch 的模型來生成用於訓練驗證器的樣本。如果改為微調 6B 模型以直接輸出最終答案而無需任何中間步驟,則性能會從 20.6% 急劇下降至 5.2%。

驗證

為了改進微調基準,OpenAI 訓練驗證器判斷模型生成的解決方案的正確性,並在測試時搜尋這些驗證器。以問題和候選解決方案為條件,驗證器輸出解決方案正確的概率。僅根據它們是否達到正確的最終答案,將訓練解決方案標記為正確或不正確。不過,在實踐中,一些解決方案會使用有缺陷的推理得出正確的最終答案,從而導致誤報。

如下圖 4 所示,OpenAI 按如下方式訓練驗證器:

  • 在訓練集上對模型(生成器)進行 2 個 epoch 的微調;

  • 從生成器中為每個訓練問題抽取 100 個完成樣本,並將每個解決方案標記為正確或不正確;

  • 在資料集上訓練一個單一 epoch 的驗證器。

在測試時,OpenAI 對每個測試問題取樣了 100 個完成情況,用驗證器對它們進行排名,然後返回得分最高的那個。下圖 5 展示了 6B 和 175B 模型的驗證和微調兩種方法之間的對比情況,結果發現在低資料集下使用驗證方法是沒有好處的。有趣的是,175B 驗證器比 6B 驗證器更早「起飛」,超越微調基線需要的時間更少。

在完整的訓練集上,隨著 epoch 的增加,使用驗證方法的 6B 模型最終略優於微調的 175B 模型,性能提升大約相當於模型大小增加 30 倍。

訓練驗證器既可以在全部的生成解決方案裡進行單個標量預測(single scalar prediction),也可以在解決方案的每個 token 後進行單個標量預測,OpenAI 選擇後者,即訓練驗證器在每個 token 之後進行預測。實驗結果如圖 6a 所示,它們分別標記為「解決方案級別」和「token 級別」。

在圖 6b 中,通過消融實驗驗證訓練驗證器中使用目標(objective)的作用, OpenAI 將使用兩個目標與僅使用驗證目標進行比較。

在圖 6c 中,OpenAI 對生成器和驗證器的大小進行了實驗,研究發現使用大的生成器、小的驗證器組合性能顯著優於小的生成器、大的驗證器組合。

與AI俱進,化時光為翎:「AI中國」機器之心2021年度評選暨特別策劃

機器之心正式啟動「AI中國」2021年度評選暨「與AI俱進,化時光為翎」特別策劃,包括2021年度評選、年度內容專題、年度報告和AI科技年會四項內容。

我們希望藉此與AI公司並肩,與創新產業同行,評選出企業榜、解決方案榜、 生態榜、行業事件榜和專業品牌榜,並與機器之心讀者分享他們的技術突破與實踐中的精彩行業故事。最終評選結果將在AI科技年會現場發佈。

歡迎各企業機構掃碼報名或了解更多詳情。

歡迎各企業機構掃碼報名或了解更多詳情

相關文章