摘要
在將數據集表述為指令的形式上進行語言模型微調,已被證明能夠提升模型性能及其對未見任務的泛化能力。本文探討了指令微調,特別關注以下三個方面:(1) 任務數量的擴展,(2) 模型規模的擴展,以及 (3) 基于鏈式思維(chain-of-thought)數據的微調。我們發現,結合上述方面的指令微調顯著提升了多種模型類別(如PaLM、T5、U-PaLM)、提示設置(如零樣本、少樣本、鏈式思維)以及評估基準(如MMLU、BBH、TyDiQA、MGSM、開放式生成、RealToxicityPrompts)的性能。例如,在1.8K個任務上進行指令微調的Flan-PaLM 540B模型,其性能大幅超越了原始PaLM 540B模型(平均提升+9.4%)。Flan-PaLM 540B在多個基準測試中達到了最先進的性能,例如在五樣本MMLU測試中達到了75.2%的準確率。我們還公開發布了Flan-T5的檢查點,這些檢查點即使與更大的模型(如PaLM 62B)相比,也表現出強大的少樣本性能。總體而言,指令微調是一種提升預訓練語言模型性能和可用性的通用方法。
1 引言
人工智能的一個重要目標是開發能夠泛化到未見任務的模型。在自然語言處理(NLP)領域,預訓練語言模型在這一目標上取得了顯著進展,因為它們能夠根據自然語言描述執行任務(Brown 等,2020,及其他)。通過在以指令形式表述的任務集合上對語言模型進行微調,進一步推動了這一進展,這使得模型能夠更好地響應指令,并減少對少樣本示例的需求(Ouyang 等,2022;Wei 等,2021;Sanh 等,2021,及其他)。
本文從多個方面推進了指令微調的研究。首先,我們研究了擴展對指令微調的影響。實驗表明,指令微調在任務數量和模型規模方面具有良好的擴展性。它們的擴展行為表明,未來的研究應進一步擴大任務數量和模型規模。其次,我們研究了微調對模型執行推理任務能力的影響。實驗表明,雖然之前的指令微調方法未包含鏈式思維(CoT;Wei 等,2022b)會嚴重降低在CoT評估中的性能,但在微調混合數據中僅加入九個CoT數據集即可在所有評估中實現更好的性能。
基于這些發現,我們訓練了Flan-PaLM模型,使用了一個5400億參數的模型,將微調任務數量增加到1.8K,并包含CoT數據。Flan-PaLM在多個基準測試中超越了PaLM,達到了新的最先進水平。例如,Flan-PaLM改進的推理能力使其能夠利用CoT和自一致性(Wang 等,2022c)在Massive Multi-task Language Understanding(MMLU;Hendrycks 等,2020)上達到75.2%的準確率。與PaLM相比,Flan-PaLM還提升了多語言能力,例如在單樣本TyDiQA(Clark 等,2020)上絕對提升了14.9%,在低資源語言的算術推理(Shi 等,2022)上提升了8.1%。在人類評估中,Flan-PaLM在一組具有挑戰性的開放式生成問題上顯著優于PaLM,表明其可用性得到了提升。此外,我們還發現指令微調在多個負責任的人工智能評估基準上也能提升性能。
此外,我們還對Flan-T5模型(80M到11B)進行了指令微調。這些檢查點具有強大的零樣本、少樣本和CoT能力,優于之前的公開檢查點,如T5(Raffel 等,2020)。例如,Flan-T5 11B在某些具有挑戰性的BIG-Bench任務(Srivastava 等,2022)上相比T5 11B實現了兩位數的性能提升,甚至超越了PaLM 62B。總體而言,我們的結果強調了指令微調如何在一系列模型、提示設置和評估任務中提升性能。
2 Flan微調
我們在多種數據源(圖2)上使用多種指令模板類型(圖3)進行指令微調。我們將這種微調過程稱為Flan(Finetuning language models;Wei 等,2021),并在微調后的模型名稱前加上“Flan”(例如,Flan-PaLM)。我們展示了Flan在多種模型規模和架構上的有效性(表2)。
2.1 微調數據
任務混合。先前的研究表明,增加指令微調中的任務數量可以提高對未見任務的泛化能力(Wei 等,2021;Sanh 等,2021,及其他)。在本文中,我們通過結合來自先前工作的四個任務混合集(Muffin、T0-SF、NIV2和CoT)將微調任務數量擴展到1,836個,如圖2所示。Muffin(80個任務)包括來自Wei等(2021)的62個任務以及我們在本工作中新增的26個任務,涵蓋對話數據(Byrne 等,2019;Anantha 等,2021;Dai 等,2022)和程序合成數據(Yasunaga 和 Liang,2020;Li 等,2022)。T0-SF(193個任務)包括來自T0(Sanh 等,2021)的任務,這些任務與Muffin中使用的數據不重疊(SF表示“sans Flan”)。NIV2(1554個任務)包括來自Wang等(2022c)的任務。
鏈式思維(CoT)微調混合數據。第四種微調數據混合集(推理)涉及CoT注釋,我們用它來探索在CoT注釋上進行微調是否能提高對未見推理任務的性能。我們從先前的工作中創建了一個包含九個數據集的新混合集,這些數據集的訓練語料庫由人工評分者手動編寫了CoT注釋。這九個數據集包括算術推理(Cobbe 等,2021)、多跳推理(Geva 等,2021)和自然語言推理(Camburu 等,2020)等任務。我們為每個任務手動編寫了十個指令模板。數據卡片見附錄F。
模板和格式化。對于Muffin、T0-SF和NIV2,我們使用任務創建者提供的指令模板。對于CoT,我們為九個數據集中的每一個手動編寫了大約十個指令模板。為了創建少樣本模板,我們編寫了多種示例分隔符(例如,“Q:”/“A:”),并在示例級別隨機應用它們。圖3展示了帶有和不帶有示例、以及帶有和不帶有CoT的格式化示例。
2.2 微調過程
在本文中,我們在多種模型系列上應用指令微調,包括T5(Raffel 等,2020)、PaLM(Chowdhery 等,2022)和U-PaLM(Tay 等,2022b)。這些模型系列涵蓋了從Flan-T5-small(8000萬參數)到PaLM和U-PaLM(5400億參數)的不同規模。對于每個模型,我們采用相同的訓練過程,除了少數超參數:學習率、批量大小、dropout和微調步數。我們使用恒定學習率調度,并使用Adafactor優化器(Shazeer 和 Stern,2018)進行微調。我們使用打包(Raffel 等,2020)將多個訓練示例組合成一個序列,使用序列結束標記將輸入與目標分開。應用掩碼以防止標記跨越打包示例邊界相互關注。每個模型的微調步數、學習率、批量大小和dropout值見附錄E。對于每個模型,我們使用單個檢查點進行所有評估;最佳步數是基于對保留任務的定期評估(每2k到10k步,取決于模型規模)選擇的,并且在給定模型的所有消融運行中使用相同的檢查點步數。值得注意的是,微調使用的計算量相對于訓練計算量僅占很小一部分,如表2所示。例如,我們僅使用0.2%的預訓練計算量來對Flan-PaLM 540B進行指令微調(約512個v4 TPU芯片運行37小時)。我們使用基于JAX的T5X框架(Bradbury 等,2018;Roberts 等,2022)。
2.3 評估協議
評估基準。我們重點關注未包含在微調數據中的保留任務的性能。我們對Flan-PaLM在世界知識和推理任務上的整體能力感興趣。因此,我們在多種不同的基準上評估模型,包括多語言基準。我們沒有使用Brown等(2020)的評估集,因為幾乎所有那些任務的訓練集都包含在我們的微調混合數據中。相反,我們使用以下具有挑戰性的基準,當前的語言模型在這些基準上的表現仍遠低于人類專家評分者。(1)MMLU(Hendrycks等,2020)包括來自57個任務的考試問題,如數學、歷史、法律和醫學。(2)BBH包括來自BIG-Bench(Srivastava等,2022)的23個具有挑戰性的任務,PaLM在這些任務上的表現低于人類評分者的平均水平(Suzgun等,2022)。(3)TyDiQA(Clark等,2020)是一個涵蓋8種類型多樣語言的問答基準。(4)MGSM(Shi等,2022)是一個多語言數學應用題基準,數據來自Cobbe等(2021)并手動翻譯成10種語言。這些基準也在PaLM論文(Chowdhery等,2022)中使用,該論文未發現與預訓練數據存在任何有意義的數據污染,這與之前工作中的數據污染分析一致(Brown等,2020;Wei等,2021;Du等,2022)。負責任的人工智能評估在附錄C中討論。
評估方法和指標。對于MMLU和BBH,我們評估了通過直接提示(模型直接給出答案;Brown等,2020;Srivastava等,2022)和鏈式思維(CoT)提示(模型在給出最終答案前必須提供推理鏈;Wei等,2022b)的能力。對于TyDiQA,我們僅測量直接提示的精確匹配分數,因為突出顯示包含正確答案的段落部分可能不需要復雜的推理。對于MGSM,我們僅測量CoT提示的準確性,因為直接提示的性能非常低。對于所有基準,我們使用給定的少樣本示例,示例數量遵循先前的工作:MMLU為五樣本,BBH為三樣本,TyDiQA為單樣本,MGSM為八樣本。對于給定模型,我們還報告了一個“歸一化平均值”指標,遵循BIG-Bench中的“歸一化優選指標”(Srivastava等,2022)。我們的歸一化平均值指標是六個歸一化分數的宏觀平均值:MMLU-直接、MMLU-CoT、BBH-直接、BBH-CoT、TyDiQA-直接和MGSM-CoT。每個基準中所有任務的結果見附錄D。一些負責任的人工智能基準使用附錄C中描述的生成任務的額外方法。
3 擴展到5400億參數和1.8K任務
我們首先研究了在(1)模型規模和(2)微調任務數量方面的擴展對保留任務性能的影響。我們通過在三種PaLM模型規模(8B、62B和540B)上進行實驗來擴展模型規模。為了擴展任務數量,我們依次添加任務混合集,從任務最少的混合集開始,逐步增加到任務最多的混合集:CoT、Muffin、T0-SF和NIV2。
圖4展示了這兩個變量的擴展對保留基準歸一化平均值的聯合影響。各個基準的結果見表3。首先,我們可以看到,對于所有三種模型規模,多任務指令微調相比未微調的模型顯著提升了性能,性能提升范圍在9.4%到15.5%之間。
其次,增加微調任務數量可以提高性能,盡管大部分改進來自于使用最多282個任務。對于超過282個任務后性能提升較小的現象,有兩種可能的解釋。一種解釋是額外的任務多樣性不足,因此未能為模型提供新的知識。另一種解釋是,多任務指令微調的大部分收益來自于模型學習更好地表達其從預訓練中已經掌握的知識,而超過282個任務并沒有帶來太多幫助。第二種解釋可能更合理,因為預訓練數據包含7800億個token,而指令微調僅使用了14億個token(占預訓練token的0.2%)。
最后,我們發現,將模型規模擴大一個數量級(即從8B到62B,或從62B到540B)顯著提升了微調和未微調模型的性能。需要注意的是,確定指令微調對小模型還是大模型的改進更大(與未微調的基線相比)可能較為復雜。例如,盡管8B模型的絕對增益大于540B模型(8B為15.5%,540B為9.4%),但540B模型的錯誤率相對減少幅度更大(540B為18.4%,8B為16.6%)。
繪制這些擴展曲線為我們提供了關于進一步擴展模型規模和任務數量如何提升性能的洞察。將模型規模再擴大一個數量級(盡管具有挑戰性)預計會帶來顯著的性能提升。擴展微調任務數量也應能提高性能,盡管可能只是逐步的改進。總體而言,繪制的擴展曲線表明,未來的工作應繼續擴展指令微調。
4 使用鏈式思維注釋進行微調
Flan微調的目標是生成一個在多種評估中表現更好的檢查點,這包括多步推理能力以及傳統的NLP任務。在本節中,我們探討了在指令微調混合數據中包含鏈式思維(CoT)數據的效果。首先,我們展示了Flan-PaLM在多個基準測試中超越先前模型的改進推理能力。然后,我們通過消融實驗分析了CoT微調數據,結果表明,沒有CoT的指令微調實際上會降低推理能力,而僅包含九個CoT數據集即可在所有評估中提升性能。最后,我們展示了CoT微調通過在具有挑戰性的BIG-Bench任務中使用“讓我們逐步思考”來實現零樣本推理的能力。
4.1 使用鏈式思維微調提高了對保留任務的推理能力
我們首先展示了在微調混合數據中包含九個帶有鏈式思維(CoT)注釋的數據集可以提高推理能力。表4顯示,Flan-PaLM在四個保留評估基準上的CoT提示能力優于PaLM。對于BBH,我們遵循Suzgun等(2022)的協議,將任務分為NLP任務和算法任務。
表4還展示了如何將CoT提示與自一致性(SC;Wang等,2022b)結合,以在多個基準測試中實現新的最先進性能。例如,在MMLU基準測試(Hendrycks等,2020)中,Flan-PaLM 540B達到了75.2%。這顯著優于之前的模型(PaLM = 69.3%,code-davinci-002 = 68.3%,Chinchilla = 67.6%)。在多語言數學問題基準MGSM上,使用CoT + SC的Flan-PaLM顯著提升了SOTA性能,即使在低資源語言上也表現出色,例如在孟加拉語上達到69.6%。相比之下,使用CoT + SC的PaLM在法語和德語等高資源語言上僅分別達到63.6%和61.2%。最后,在GSM8K(Cobbe等,2021,表中未顯示)上,使用CoT + SC的Flan-PaLM實現了新的SOTA,達到83.9%,但需要注意的是,GSM8K的訓練數據集包含在指令微調混合數據中。
我們還注意到,Flan-PaLM在某些專門模型上并未達到SOTA(最先進水平)。例如,在BBH-algo(包含僅需要符號操作的任務,例如保持一組亂序對象的順序、按字母順序對單詞列表進行排序)上,即使使用CoT + SC,Flan-PaLM也未能超越code-davinci-002。此外,盡管Flan-PaLM在單樣本TyDiQA上比PaLM提升了14.9%,但仍未達到在TyDiQA訓練集上微調的ByT5的水平(Xue等,2022)。
4.2 需要一些鏈式思維數據以保持推理能力
接下來,我們通過消融實驗分析了在指令微調中僅包含九個CoT數據集的效果。我們將評估分為保留的CoT基準(MMLU、BBH和MGSM)和保留的非CoT基準(MMLU、BBH和TyDiQA),并分別計算CoT和非CoT的歸一化平均值。在圖5-左中,結合非CoT和CoT微調在保留的CoT基準上的性能優于僅使用CoT微調。圖5-右證實,正如預期的那樣,與非CoT微調相比,結合CoT和非CoT微調不會影響非CoT任務的性能。
一個重要的問題是,圖5-左還表明,為了保持這種推理能力,微調一些CoT示例是至關重要的,因為僅對非CoT數據進行微調會顯著降低CoT任務的性能,如綠線所示。這種性能下降可能令人驚訝,因為之前的多項研究發現,指令微調可以提高對未見任務的性能(Wei等,2021;Sanh等,2021;Wang等,2019a;Min等,2022,及其他)。然而,之前的工作僅評估了保留的NLP任務(例如,微調除情感分析之外的所有任務,然后在情感分析基準上進行評估),而且之前的模型通常規模較小,無法成功進行CoT推理。綜合來看,這一消融實驗可以解釋為:當未見任務與微調任務處于相同的提示范式(即非CoT或CoT)時,指令微調可以提高對未見任務的性能。因此,需要同時包含非CoT和CoT數據,以提升模型在所有評估中的能力。
4.3 解鎖零樣本推理
在CoT數據上進行指令微調的另一個最終好處是,無論是否使用示例,生成的模型都能夠在零樣本設置中執行CoT推理。這種零樣本設置很重要,因為它測試了模型在沒有少樣本CoT示例的情況下生成自身推理技能的能力,而這通常需要大量的提示工程來正確構建。
圖6顯示,在包含23個未見挑戰性BIG-Bench任務的BBH基準測試中,Flan-PaLM模型通過利用“讓我們逐步思考”這一短語激活的CoT推理(Kojima等,2022),能夠實現性能提升。相比之下,未經微調的PaLM無法生成能夠解決這些問題的CoT。圖7展示了PaLM和Flan-PaLM在零樣本CoT中的三個示例。
盡管PaLM在零樣本CoT上的負面結果可能與Kojima等(2022)的研究結果看似矛盾,但仔細比較后發現它們并不矛盾。該論文中大多數成功的零樣本CoT實驗實際上利用了InstructGPT(Ouyang等,2022),而InstructGPT經過了指令微調(我們假設這種指令微調包含了一些類似CoT的數據)。在未經微調的PaLM上成功進行的零樣本CoT實驗僅針對數學應用題,這與BBH中的問題類型有顯著不同。
溫馨提示:
閱讀全文請訪問"AI深語解構" FLAN-T5:規模化指令微調的語言模型