面對目前微調大模型主要依賴人類生成數據的普遍做法,Google DeepMind 探索出了一種減少這種依賴的更有效率方法。 如你我所見,大語言模型(LLM)正在改變深度學習的格局,在產生人類質量的文本和解決各種語言任務方面展現了卓越的能力。雖然業界透過對人類收集的數據進行監督微調進一步提升了在具體任務上的效能,但獲取高品質人類數據卻面臨著重大瓶頸。這對於要解決複雜問題的任務來說尤其明顯,需要大量資源和專業知識。 怎麼解決呢?模型產生得合成資料是一種有潛力的替代方案,只要能確保資料的質量,就能實現可擴展性和成本效益。 雖然LLM 能夠自我評估生成的數據,但在本文中,GoogleDeepMind 探索了一種更簡單的設置,將外部標量回饋訊號用作每個生成樣本的品質指標。 論文網址:https://arxiv.org/pdf/2312.06585.pdf為了研究在模型生成資料上的訓練,研究者考慮了一種簡單但強大的語言模型自訓練方法,僅需要兩項功能,一是基於模型生成樣本,二是利用評分機制對這些樣本進行評估。 為了確保清晰度和一致性,研究者採用了一種強化自訓練方法ReST^??,並證明該方法可以將期望最大化(expectation- maximization,EM)用於強化學習。具體來講,ReST^??在期望和最大化步驟之間交替進行。 產生(E-step):語言模型為每個輸入上下文產生多個輸出樣本,然後使用二元獎勵過濾這些樣本以收集訓練資料集。 改進(M-step):原始語言模型在前一個 E-step 的訓練資料集上進行監督微調,然後在下一個 E-step 中使用。 研究者證實,ReST^??及變體在增強各個領域的語言模型方面取得了成功,包括機器翻譯、語義分析、偏好對齊和基礎推理。 此外,以往工作主要將 ReST^??用於相對較小的模型(最高 70 億參數),對於較大模型的可擴展性受限。因此,本文旨在探討模型產生的合成數據與人類產生的數據在以下兩個具有挑戰性但研究較少領域的有效性和可擴展性,這兩個領域分別是競爭水平數學解題(MATH)和代碼生成(APPS)。 實證結果表明,當將 ReST^??用於不同規模的 PaLM 2 模型時,在數學推理和代碼生成任務中實現了顯著的能力改進。與在人類編寫資料上訓練的模型相比,在模型產生的合成資料上微調的模型取得了更大的效能增益。有趣的是,超過了一定數量的 ReST^?? 迭代後,表現會降低,這表明了在少量訓練問題上可能會出現過度擬合。 此外,使用 ReST^??微調的模型提升了 pass@k 指標和多數投票表現。這些微調後的模型在相關但 held-out 的基準上也表現出了效能增強,包括數學題(GSM8K 和 Hungarian HS finals)、編碼(HumanEval)和 Big-Bench Hard 任務。 總之,本文研究結果表明,具有回饋的自訓練是減少對人類資料依賴的一種有潛力的方法。 用於強化自訓練的期望最大值(EM)首先,該研究基於Dayan 和Hinton 先前的研究,用語言模型描述了基於EM 的強化學習框架。具體而言,他們先是定義了一個二進制最優變數O,使得?(?= 1|?,?)∝?(?(?,?));然後對非遞減函數? : ℝ → ℝ+ ,實現最大化觀察?= 1(獲得高獎勵),得到以下公式: 然而,求解上式中的序列 ? 的和很棘手。因而本文考慮相對於參數 ? 和變分分佈 ?( ?|?) 最大化其 ELBO ?( ??, ?),而不是最大化 log ?(? = 1; ?)。具體來說: 公式(2)中的 EM 演算法在 E-step(Expectation) 和 M-step(Maximization)之間交替進行。 ReST^??:受 EM 框架的啟發,接下來論文討論了 Gulcehre 等人提出的 ReST 方法的簡化版本。為了清楚起見,本文將這種方法稱為 ReST^??,它將 RL pipeline 中的資料收集 (E-step) 和策略優化 (M-step) 進行解耦。如演算法1 所示: 產生(E-step):在此步驟中,研究透過從目前策略?? 中取樣輸出序列來產生資料集。在這裡,輸入是從原始資料集重新取樣的。然後使用二元獎勵函數 ?(?, ?) 對中的輸出序列進行評分。 改進(M-step):在第?步迭代中,研究使用E-step 中的新資料集來微調策略??。不同於 Gulcehre 的研究,他們微調基本預訓練語言模型,以最大限度地減少特定於任務的過度擬合並最大限度地減少與基本模型的偏差。為了進行微調,研究最小化獎勵加權負對數似然損失。一旦策略改進,就可以再次建立品質更好樣本的新資料集。 實驗與分析本文進行實驗的主要目標是以下問題: 與人類產生的數據進行微調相比,ReST^??的效果如何? 需要多少次迭代才能獲得最佳效能? ReST^??多久會導致訓練集過度擬合? ReST^??如何影響 pass@k 與多數投票表現? 如果使用者在特定任務上使用模型產生的資料進行微調,是否會移轉到其他任務?在廣泛的任務中評估本文的微調模型時,與基本模型相比,表現是否會下降? 大約需要多少輸入資料才能從 ReST^?? 獲得大部分效能提升? ReST^??的一次迭代是否足夠? 研究使用PaLM 2 模型和Google Cloud 上的公共API 進行實驗,包括PaLM 2-S (Bison)、PaLM 2-S * (Codey) 和PaLM 2-L (Unicorn)。訓練資料集採用 MATH 資料集和 APPS 資料集。 圖 2 和圖 3 分別顯示了 ReST^??在 MATH 和 APPS 資料集上訓練的效能。可以得出 MATH 受益於 ReST^?? 的多次迭代,無論是在 MATH 測試集上的效能還是遷移到 GSM8K 方面。另一方面可以看到 APPS 的大部分收益來自第一次迭代,而執行更多次迭代會導致 APPS 和 HumanEval 的效能下降。 訓練和測試表現的差距。圖 4 顯示,雖然訓練集表現隨著 ReST^??迭代次數線性增加,但測試集表現卻沒有。對於 MATH,第一次迭代後測試效能改進很小,而對於 APPS,在第二次迭代中觀察到效能迴歸。該研究猜測表現的回歸可能是由於過度擬合造成的。由於 APPS 資料集的大小約為 MATH 資料集的三分之一,因此它更容易受到此問題的影響。 圖 5 顯示了 Palm-2-L 模型在 pass@K 指標上的表現。結果顯示,微調後獲得的 ReST^?? 模型對於所有 K 值都更強,其中性能差距通常在 K=1 時最大。