自ChatGPT API開放後,大量的研究都選擇利用ChatGPT和GPT-4等大型基礎模型(LFM)的輸出作為訓練數據,然後透過模仿學習來提升小模型的能力。
但由於模仿訊號流在表面、訓練資料量不夠大、缺乏嚴格的評估標準等問題,小模型的實際表現被高估了。
從效果來看,小模型更傾向於模仿LFM的輸出風格,而非推理過程。
論文連結:https://arxiv.org/pdf/2306.02707.pdf
為了回應這些挑戰,微軟最近發布了一篇長達51頁論文,提出了一個130億參數的Orca模型,可以學習模仿LFMs的推理過程。
研究人員為大模型設計了豐富的訓練訊號,使得Orca可以從GPT-4中學習到解釋痕跡、逐步的思考過程、複雜的指令等,並由ChatGPT的教師協助指導;並透過採樣和選擇來挖掘大規模且多樣化的模仿數據,可以進一步提升漸進式學習效果。
在實驗評估中,Orca超過了其他SOTA指令微調模型,在BigBench Hard(BBH)等複雜的零樣本推理基準中實現了比Vicuna-13B翻倍的性能表現,在AGIEval上也實現了42%的性能提升。
此外,Orca在BBH基準上還實現了與ChatGPT持平的性能,在SAT、LSAT、GRE和GMAT等專業和學術考試中只有4%的表現差距,並且都是在沒有思維鏈的零樣本設定下測量的。
研究結果表明,讓模型從逐步解釋中學習,無論這些解釋是由人類還是更高級的人工智慧模型產生的,都是提高模型能力和技能的一個有前景的研究方向。
#資料集建構
在訓練資料中,每個實例都包含三個部分,分別是係統訊息、使用者查詢和LFM回覆。
系統訊息(system message)放置在提示中開頭的部分,提供給LFM基本的上下文、引導以及其他相關的細節。
系統訊息可以用來改變回覆的長度、描述AI助理的性格、建立可接受和不可接受的LFM行為,並確定AI模型的回應結構。
######研究人員手工製作了16個系統資訊來設計LFM不同類型的回复,可以產生創造性的內容以及解決資訊查詢問題,最重要的是能夠根據提示生成解釋和逐步推理的答案。 ######################## 使用者查詢(user query)###定義了希望LFM執行的實際任務。 ############為了獲得大量的、多樣化的用戶查詢,研究人員利用FLAN-v2集合,從中抽取500萬個用戶查詢(FLAN-5M),並收集ChatGPT的回應;接著進一步從500萬條指令中抽出100萬條指令(FLAN-1M),收集GPT-4的回覆。 ############FLAN-v2集合由五個子集合組成,分別是CoT、NiV2、T0、Flan 2021和Dialogue,其中每個子集包含多個任務,每個任務都是一個查詢的集合。 ######每個子集合都與多個學術資料集相關,並且每個資料集都有一個或多個任務,主要關注零樣本和少樣本的查詢。
在這項工作中,研究人員只取樣訓練Orca的零樣本查詢,並且沒有從Dialogue子集中取樣,因為這些查詢往往缺乏背景,無法從ChatGPT中獲得有用的回覆。
讓ChatGPT扮演Teaching Assistant
先在FLAN-5M資料上訓練Orca (ChatGPT增強),隨後在FLAN-1M上進行第二階段的訓練(GPT-4增強)。
以ChatGPT作為中間的教師助手主要有兩個原因:
1. 能力差距
雖然GPT-4的參數量沒有公開,但130億參數的Orca肯定比GPT-4小很多倍,而ChatGPT和Orca之間的能力差距更小,更適合作為中間教師,並且這種方式已經被證明可以提高更小的學生模型在知識蒸餾中的模仿學習表現。
這種方式也可以看作是一種漸進式學習或課程學習,學生首先從較容易的例子中學習,然後再學習較難的例子,假定了較長的回覆會比較短的回覆更難模仿,可以從更大規模的教師模型中改進推理和逐步解釋能力。
2. 成本與時間
#從Azure OpenAI API進行大規模資料收集時會受到一些限制,包括每分鐘請求的速率限制,防止流量過大;由於服務延遲問題,每分鐘可用的token數量有限;提示長度和token補全的金錢成本。
相比之下,ChatGPT API比GPT-4終端更快、更便宜,所以從ChatGPT收集了比GPT-4多5倍的數據。
從ChatGPT和GPT-4對應到不同系統訊息的回覆長度分佈中可以觀察到,GPT-4的回覆平均比ChatGPT長1.5倍,使得Orca能夠逐步從教師解釋的複雜性中學習,並透過消融實驗證明了教師幫助的影響。
訓練
#在分詞階段,研究者利用LLaMA的位元組對編碼(BPE)分詞器來處理輸入的樣本,其中多位數字會被分割成多個單數字,並回落到位元組來分解未知的UTF-8字元。
為了處理可變長度的序列,在LLaMA分詞器的詞彙表中引入了一個填充詞[[PAD]],最終的詞彙表包含32001個token
為了優化訓練過程並有效利用可用的運算資源,研究人員利用了packing技術,將多個輸入實例串聯成一個序列後再訓練模型。
在packing的過程中,串聯序列的總長度不超過max_len=2048 tokens,對輸入的樣本進行隨機打亂後將分成幾組,每組串聯序列的長度最多為max_len
考慮到訓練資料中增強指令的長度分佈,每個序列的打包係數為2.7
為了訓練Orca,研究人員選擇只計算教師模型生成token的損失,也就是說學習生成以系統資訊和任務指令為條件的回复,可以確保模型專注於從最相關和最有資訊的token中學習,提高了訓練過程的整體效率和效果。
最後在20個裝有80GB記憶體的NVIDIA A100 GPU上訓練Orca,先在FLAN-5M(ChatGPT增強)上訓練4個epoch,花了160個小時;然後在FLAN-1M(GPT -4增強)上繼續訓練4個epoch
由於流量限制、終端負載以及回复的長度問題,從GPT-3.5-turbo(ChatGPT)和GPT-4的多個終端收集資料分別花了2週和3週的時間。
研究人員主要驗證了Orca在推理上的能力。
在AGIEval的實驗中可以看到,Orca的表現與Text-da-Vinci-003相當,並實現了ChatGPT 88%的性能表現,不過明顯落後於GPT-4
對於分析和推理任務,Vicuna的表現明顯更差,只保留了62%的ChatGPT質量,表明這種開源語言模型的推理能力很差。
雖然Orca與Text-da-Vinci-003的表現相當,但仍比ChatGPT低5分,Orca在與數學相關的任務(在SAT、GRE、GMAT中)上與ChatGPT表現出較大的差距。
與Vicuna相比,Orca顯示出更強的性能,在每個類別上都超過了Vicuna,平均有42%的相對提高。
GPT-4的表現遠遠超過了所有其他模型,但在這個基準中仍有很大的提升空間,目前所有模型的性能都明顯低於人類的得分。
Orca的效能根據系統資訊的類型有很大的不同,對於訓練的模型來說,空的系統訊息往往效果很好。
Orca在不同任務的325個樣本中超越了ChatGPT(Orca-beats-ChatGPT範例),其中大部分來自LogiQA(29% ),而其他LSAT任務和SAT-英文任務各佔不到10%
#在Big-Bench Hard Results資料集上的推理評估結果顯示,Orca在所有任務中的綜合表現上略好於ChatGPT,但明顯落後GPT-4;比Vicuna表現高出113%
##
以上是「模仿學習」只會套話?解釋微調+130億參數Orca:推理能力打平ChatGPT的詳細內容。更多資訊請關注PHP中文網其他相關文章!