機器之心報道
機器之心編輯部
平替再平替,可以在消費級 GPU 上運行的 Koala 模型能實現 ChatGPT 一半的性能。
自從 Meta 發布并開源了 LLaMA 系列模型,來自斯坦福大學、UC 伯克利等機構的研究者們紛紛在 LLaMA 的基礎上進行「二創」,先后推出了 Alpaca、Vicuna 等多個「羊駝」大模型。
羊駝已然成為開源社區的新晉頂流。由于「二創」過于豐富,生物學羊駝屬的英文單詞都快不夠用了,但是用其他動物的名字給大模型命名也是可以的。
最近,UC 伯克利的伯克利人工智能研究院(BAIR)發布了一個可以在消費級 GPU 上運行的對話模型 Koala(直譯為考拉)。Koala 使用從網絡收集的對話數據對 LLaMA 模型進行微調。
項目地址://bair.berkeley.edu/blog/2023/04/03/koala/
Koala 已經推出線上測試 demo:
Demo 地址: * 開源地址:
Koala 概述
與 Vicuna 類似,Koala 也使用從網絡收集的對話數據對 LLaMA 模型進行微調,其中重點關注與 ChatGPT 等閉源大模型對話的公開數據。
研究團隊表示,Koala 模型在 EasyLM 中使用 JAX/Flax 實現,并在配備 8 個 A100 GPU 的單個 Nvidia DGX 服務器上訓練 Koala 模型。完成 2 個 epoch 的訓練需要 6 個小時。在公共云計算平臺上,進行此類訓練的成本通常低于 100 美元。
研究團隊將 Koala 與 ChatGPT 和斯坦福大學的 Alpaca 進行了實驗比較,結果表明:具有 130 億參數的 Koala-13B 可以有效地響應各種用戶查詢,生成的響應通常優于 Alpaca,并且在超過一半的情況下與 ChatGPT 性能相當。
Koala 最重要的意義是它表明:在質量較高的數據集上進行訓練,那么小到可以在本地運行的模型也可以獲得類似大模型的優秀性能。這意味著開源社區應該更加努力地管理高質量數據集,因為這可能比簡單地增加現有系統的規模更能實現安全、真實和強大的模型。從這個角度看,Koala 是 ChatGPT 一種小而精的平替。
不過,Koala 還只是一個研究原型,在內容、安全性和可靠性方面仍然存在重大缺陷,也不應用于研究之外的任何用途。
數據集和訓練
構建對話模型的主要障礙是管理訓練數據。ChatGPT、Bard、Bing Chat 和 Claude 等大型對話模型都使用帶有大量人工注釋的專有數據集。為了構建 Koala 的訓練數據集,研究團隊從網絡和公共數據集中收集對話數據并整理,其中包含用戶公開分享的與大型語言模型(例如 ChatGPT)對話的數據。
不同于其他模型盡可能多地抓取網絡數據來最大化數據集,Koala 是專注于收集小型高質量數據集,包括公共數據集中的問答部分、人類反饋(正面和負面)以及與現有語言模型的對話。具體而言,Koala 的訓練數據集包括如下幾個部分:
ChatGPT 蒸餾數據:
公開可用的與 ChatGPT 對話數據(ShareGPT); * Human ChatGPT 比較語料庫 (HC3),其中同時使用來自 HC3 數據集的人類和 ChatGPT 響應。
開源數據:
Open Instruction Generalist (OIG); * 斯坦福 Alpaca 模型使用的數據集; * Anthropic HH; * OpenAI WebGPT; * OpenAI Summarization。
實驗與評估
該研究進行了一項人工評估,將 Koala-All 與 Koala-Distill、Alpaca 和 ChatGPT 幾個模型的生成結果進行比較,結果如下圖所示。其中,使用兩個不同的數據集進行測試,一個是斯坦福的 Alpaca 測試集,其中包括 180 個測試查詢(Alpaca Test Set),另一個是 Koala Test Set。
總的來說,Koala 模型足以展示 LLM 的許多功能,同時又足夠小,方便進行微調或在計算資源有限的情況下使用。研究團隊希望 Koala 模型成為未來大型語言模型學術研究的有用平臺,潛在的研究應用方向可能包括:
安全性和對齊:Koala 允許進一步研究語言模型的安全性并更好地與人類意圖保持一致。 * 模型偏差:Koala 使我們能夠更好地理解大型語言模型的偏差,深入研究對話數據集的質量問題,最終有助于改進大型語言模型的性能。 * 理解大型語言模型:由于 Koala 模型可以在相對便宜的消費級 GPU 上運行,并且執行多種任務,因此 Koala 使我們能夠更好地檢查和理解對話語言模型的內部結構,使語言模型更具可解釋性。
參考鏈接:
? THE END 轉載請聯系本公眾號獲得授權 投稿或尋求報道:
這篇博士論文解決了大型語言模型(LLMs)的兩個重要挑戰:魯棒性和可擴展性。首先,我們通過學習代碼表示的視角來提高大型語言模型的魯棒性。我在這里強調我們在ContraCode上的工作,該模型學習了對保留標簽編輯具有魯棒性的代碼表示。其次,我們從系統角度解決可擴展性挑戰。我們提出了Checkmate,這是一個通過最優再物化超越GPU內存容量限制來支持模型訓練的系統。此外,Skyplane,一種優化云對象存儲之間大批量數據傳輸的系統,使得在云端訓練更大的預訓練數據集成為可能。總的來說,這些貢獻為提高大型語言模型的魯棒性和可擴展性提供了一條路徑。
在1945年,Vannevar Bush設想出了一種名為memex的假想設備,該設備能夠存儲和索引人類的所有知識,使用戶能夠通過"全新形式的百科全書"查詢和導航知識。盡管Bush設想的memex是一種基于機械微膠片的設備,但他的遠見遠超出了該設備的物理形態。他預見了深度語言理解、知識存儲和推理系統的發展。大型語言模型(LLMs)通過學習可以查詢和推理的語言表示,已經朝這個方向取得了重大進展。不同于以往的語言模型,這些神經網絡在大量數據上進行訓練,以預測單詞并理解語言。他們在某些基準測試上達到了人類水平的表現,但也面臨著限制其廣泛部署的重大挑戰。具體來說,大型語言模型在兩個維度上面臨重要難關:魯棒性和可擴展性。大型語言模型的魯棒性是一個多面的挑戰。雖然大型語言模型在理解和生成文本方面取得了顯著進步,但他們仍然在處理幻覺、對輸入擾動的敏感性和組合泛化上存在困難。另一方面,可擴展性是一個關于規模和計算資源的挑戰。對于大型語言模型,交叉熵損失隨著模型規模、數據集規模和用于訓練的計算量的增加而呈冪律增長。在這篇博士論文中,我為持續改進大型語言模型的魯棒性和可擴展性做出了貢獻。
第二章:增強大型語言模型的魯棒性
在第二章中,我們研究了提高大型語言模型魯棒性的策略。這個討論的一個核心問題是語言建模目標是否會導致學習魯棒的語義表示,或者僅僅是基于局部上下文預測標記。為了回答這個問題,我們轉向源代碼的情境,其中程序的語義是由其執行定義的。我們探索了對比預訓練任務ContraCode,它學習代碼的功能而不是形式。ContraCode預訓練一個神經網絡,區分功能上類似的程序變體與眾多非等效的干擾項。這種策略在JavaScript總結和TypeScript類型推斷精度上顯示出改善。我們還介紹了一個新的零射擊JavaScript代碼克隆檢測數據集,結果表明與其他方法相比,ContraCode更具魯棒性和語義意義。
第三章:解決大型語言模型的可擴展性挑戰
在第三章中,我們開始解決大型語言模型的可擴展性挑戰,首先考察了在訓練大型模型過程中出現的"內存壁"問題。在這里,我們介紹了Checkmate,一個在DNN訓練中優化計算時間和內存需求之間權衡的系統。Checkmate解決了張量重制化優化問題,這是先前檢查點策略的一種推廣。它使用現成的MILP求解器確定最優的重制化計劃,并加速了數百萬次的訓練迭代。該系統可以擴展到復雜、現實的架構,并且是硬件感知的,使用基于特定加速器的配置文件成本模型。Checkmate使得能夠訓練實際網絡,其輸入最大可達5.1倍。
第四章:大型預訓練數據集的管理
在第四章中,我們探討了大型預訓練數據集的管理,這也是可擴展性挑戰的另一個方面。具體而言,我們研究了如何在云端目標之間收集和移動這些數據集。我們介紹了Skyplane,一個使用云感知網絡覆蓋來進行云對象存儲間批量數據傳輸的系統。它使用混合整數線性規劃來確定數據傳輸的最優覆蓋路徑和資源分配,從而優化價格和性能的平衡。Skyplane在單一云中的傳輸性能比公共云傳輸服務高出4.6倍,跨云傳輸性能高出5.0
部署大型語言模型(LLMs)具有挑戰性,因為它們在實際應用中的內存效率低下且計算密集。為了應對這一問題,研究人員通過微調人類標簽或利用LLM生成的標簽進行蒸餾,訓練更小的任務特定模型。然而,微調和蒸餾需要大量的訓練數據,以達到與LLMs相當的性能。**我們引入逐步蒸餾,一種新的機制:(a)訓練比LLMs表現更好的較小模型;(b)通過利用比微調或蒸餾所需的更少訓練數據來實現這一點。我們的方法在多任務訓練框架內為小型模型提取LLM rationales(基本原理/解釋/依據),作為額外的監督。**我們在4個NLP基準測試中得出三個發現:首先,與微調和蒸餾相比,我們的機制在使用更少的標注/未標注訓練樣本的情況下實現了更好的性能。其次,與LLMs相比,我們使用明顯較小的模型大小實現了更好的性能。第三,我們減少了模型大小和超過LLMs所需的數據量;在一個基準任務中,我們的770M T5模型使用僅80%的可用數據就超過了540B PaLM模型。
//www.zhuanzhi.ai/paper/fa04cb640eb5b7dd65cddc946c76b80f
1. 引言
圖1:雖然大型語言模型(LLM)提供了強大的零樣本/少樣本性能,但在實踐中具有挑戰性。另一方面,傳統的訓練小型特定任務模型的方法需要大量的訓練數據。本文提出逐步蒸餾(Distilling step),一種新的范式,從LLM中提取基本原理作為信息性任務知識訓練小型模型,既減少了部署的模型大小,也減少了訓練所需的數據。
盡管大型語言模型(LLMs)(Brown等人,2020;Chowdhery等人,2022;Thoppilan等人,2022;Hoffmann等人,2022;Smith等人,2022b;Zhang等人,2022)提供了令人印象深刻的少樣本學習能力,但由于其龐大的規模,這些模型在實際應用中具有挑戰性。運行單個1750億參數的LLM至少需要350GB GPU內存,并使用專門的基礎設施(Zheng等人,2022)。更糟糕的是,如今的頂級LLMs包含超過5000億個參數(Chowdhery等人,2022),需要更多的內存和計算資源。這樣的計算需求遠遠超出了大多數產品團隊的承受能力,特別是對于需要低延遲性能的應用程序。
為了規避大型模型的部署挑戰,從業者通常選擇部署較小的專用模型。這些較小的模型使用兩種常見范式之一進行訓練:微調或蒸餾。微調使用下游人類注釋數據更新預訓練的較小模型(例如BERT(Devlin等人,2018)或T5(Raffel等人,2020))(Howard和Ruder,2018)。蒸餾使用由更大的LLM生成的標簽訓練相同的較小模型(Tang等人,2019;Wang等人,2021;Smith等人,2022a;Arora等人,2022)。不幸的是,這些范式以成本降低模型大小:為了達到與LLMs相當的性能,微調需要昂貴的人類標簽,而蒸餾需要大量無標簽數據,這些數據可能難以獲得(Tang等人,2019;Liang等人,2020)。
在這項工作中,我們引入逐步蒸餾,一種用更少訓練數據訓練較小模型的新型簡單機制。我們的機制減少了將LLMs微調和蒸餾為較小模型所需的訓練數據量。我們的機制的核心是從將LLMs視為嘈雜標簽的來源轉變為將它們視為可以推理的代理:LLMs可以生成自然語言rationales(基本原理/解釋/依據),為其預測的標簽辯護(Wei等人,2022;Kojima等人,2022)。例如,當被問到“一個紳士正在攜帶高爾夫球設備,他可能有什么?(a)球桿,(b)禮堂,(c)冥想中心,(d)會議,(e)教堂”時,LLM可以通過鏈式思考(CoT)推理(Wei等人,2022)回答“(a)球桿”,并通過陳述“答案必須是用于高爾夫球的東西。在上述選項中,只有球桿是用于高爾夫球的。”來合理化標簽。我們使用這些提取的rationales(基本原理/解釋/依據)作為額外的、更豐富的信息,在一個多任務訓練設置中訓練較小的模型,包括標簽預測和rationales(基本原理/解釋/依據)**預測(Raffel等人,2020;Narang等人,2020)。
逐步蒸餾使我們能夠學習任務特定的較小模型,這些模型在使用超過500倍更少的模型參數時勝過LLMs,并且與傳統微調或蒸餾相比,需要更少的訓練樣本(圖1)。我們在4個NLP基準測試中得出三個有前景的實證結論。首先,與微調和蒸餾相比,我們的模型在各個數據集上平均使用超過50%更少的訓練樣本(最多減少超過85%)時,實現了更好的性能。其次,我們的模型在模型大小上大大優于LLMs(最多小2000倍),大大降低了模型部署所需的計算成本。第三,我們同時減少了模型大小和超過LLMs所需的數據量。我們使用一個770M T5模型超過了540B參數LLM的性能;如果使用現有的微調方法,這個較小的模型只需使用80%的標記數據集。當只有未標記的數據時,我們的小型模型仍然與LLMs表現相當或更好。我們僅使用一個11B T5模型就超過了540B PaLM的性能。我們進一步表明,當一個較小的模型比LLM表現差時,逐步蒸餾可以更有效地利用額外的未標記數據來匹配LLM的性能,與標準蒸餾方法相比。
2 逐步蒸餾
我們提出了一種新的范式,逐步蒸餾,它利用LLMs對其預測進行推理的能力,以數據高效的方式訓練較小的模型。我們的整體框架如圖2所示。我們的范式有兩個簡單的步驟:首先,給定一個LLM和一個未標記的數據集,我們提示LLM生成輸出標簽以及支持標簽的rationales(基本原理/解釋/依據)。**rationales(基本原理/解釋/依據)**是自然語言解釋,為模型預測的標簽提供支持(見圖2)。rationales(基本原理/解釋/依據)是當今自監督LLM的一種新興行為特性。其次,我們利用這些rationales以及任務標簽來訓練較小的下游模型。直觀地說,**rationales(基本原理/解釋/依據)**提供了關于為什么輸入映射到特定輸出標簽的更豐富、更詳細的信息。
2.1 從LLMs中提取rationales(基本原理/解釋/依據)
最近的研究發現LLMs有一個有趣的新興特性:它們能夠生成支持其預測的rationales(Wei等人,2022;Kojima等人,2022)。雖然這些研究主要關注如何從LLMs中引出這種推理能力(Nye等人,2021;Wei等人,2022;Kojima等人,2022),但我們在訓練較小的下游模型時使用了它們。具體來說,我們利用鏈式思考(CoT)提示(Wei等人,2022)從LLMs中引出和提取rationales。
2.2 用原理訓練較小的模型
本文首先描述了當前學習特定任務模型的框架。有了這個框架,我們對其進行了擴展,以將基本原理納入訓練過程。形式上,我們將數據集表示為D = {(xi, yi)} N i=1,其中每個xi表示一個輸入,yi是相應的所需輸出標簽。雖然所提出框架支持任何模態的輸入和輸出,但實驗將x和y限制為自然語言。這個文本到文本框架(Raffel等人,2020)包含各種自然語言處理任務:分類、自然語言推理、問題回答等。 訓練特定任務模型的最常見做法是使用監督數據對預訓練模型進行微調(Howard和Ruder, 2018)。在沒有人工標注標簽的情況下,特定任務的蒸餾(Hinton等人,2015;Tang et al., 2019)使用LLM教師生成偽噪聲訓練標簽,y?i代替yi (Wang et al., 2021;Smith等人,2022a;Arora等人,2022年)。 在這項工作中,我們沒有將rationales作為額外的模型輸入,而是將學習rationales視為一個多任務問題。具體來說,我們訓練模型 f(xi) → (?yi, r?i),不僅預測任務標簽,還根據文本輸入生成相應的rationales。
3 實驗
我們通過實證驗證了逐步蒸餾方法的有效性。首先,與標準的微調和任務蒸餾方法相比,我們展示了逐步蒸餾方法實現的優勢。在訓練樣本數量較少的情況下,逐步蒸餾方法表現更優,顯著提高了學習小型任務專用模型的數據效率(第4.1節)。其次,我們展示了逐步蒸餾方法在模型大小遠小于大型語言模型(LLMs)的情況下,仍能取得更好的性能,與大型語言模型相比,大幅降低了部署成本(第4.2節)。最后,我們研究了逐步蒸餾方法在超越大型語言模型性能方面所需的最小資源,包括訓練樣本數量和模型大小。我們發現逐步蒸餾方法在使用更少數據和更小模型的情況下,勝過大型語言模型,同時提高了數據效率和部署效率(第4.3節)。
在實驗中,我們將540B PaLM模型(Chowdhery等人,2022年)視為大型語言模型(LLM)。對于任務特定的下游模型,我們使用T5模型(Raffel等人,2020年),并從公開可用的資源中獲取預訓練權重來初始化模型。對于CoT提示,我們在可用時遵循Wei等人(2022年)的方法,并為新數據集策劃我們自己的示例。我們在附錄A.1中提供了更多實現細節。
3.1 減少訓練數據
我們將逐步蒸餾方法與學習任務特定模型的兩種最常見方法進行比較:(1)當有人類標注的樣本可用時,使用標準微調方法;(2)當僅有未標注樣本可用時,使用標準任務蒸餾方法。具體來說,標準微調是指使用標準標簽監督通過預訓練然后微調模型的流行范式(Howard和Ruder,2018年)。另一方面,當僅有未標注樣本可用時,標準任務蒸餾方法將教師大型語言模型預測的標簽視為真實標簽,從而學習任務特定模型(Hinton等人,2015年;陳等人,2020年;Wang等人,2021年;Smith等人,2022a;Arora等人,2022年)。
在以下一系列實驗中,我們將任務特定模型固定為220M T5-Base模型,并比較在可用訓練樣本數量不同的情況下,不同方法所實現的任務性能。
逐步蒸餾方法在使用更少的標注樣本情況下優于標準微調。當使用人類標注的樣本進行微調時,圖4顯示,在使用不同數量的標注樣本時,逐步蒸餾方法始終比標準微調表現更好。此外,我們發現逐步蒸餾方法可以在使用更少的標注樣本的情況下達到與標準微調相同的性能。特別是,僅使用eSNLI完整數據集的12.5%,逐步蒸餾方法就可以在性能上超過使用完整數據集100%訓練的標準微調。同樣,我們分別在ANLI、CQA和SVAMP上實現了減少75%、25%和20%訓練樣本數量以超過標準微調的表現。 逐步蒸餾方法在使用更少的未標注樣本時,優于標準蒸餾方法。當僅有未標注數據可用時,我們將逐步蒸餾方法與標準任務蒸餾方法進行比較。在圖5中,我們觀察到與微調設置相類似的整體趨勢。具體來說,我們發現逐步蒸餾方法在所有4個數據集上,在使用不同數量的未標注數據情況下,均優于標準任務蒸餾方法。我們同樣發現,逐步蒸餾方法在使用更少的未標注數據時仍能勝過標準任務蒸餾方法。例如,在e-SNLI數據集上,我們只需要完整未標注數據集的12.5%,就可以超過使用100%訓練樣本的標準任務蒸餾方法所取得的性能。
4.2 減小模型大小
在以下一系列實驗中,我們將訓練集大小固定(使用數據集的100%),并將使用逐步蒸餾方法和標準方法訓練的不同大小的小型T5模型與大型語言模型(LLMs)進行比較。具體來說,我們考慮了3種不同大小的T5模型,即220M T5-Base、770M T5-Large和11B T5-XXL。對于LLMs,我們包括兩種基線方法:(1)少樣本CoT(Wei等人,2022年);(2)PINTO微調(Wang等人,2022a)。少樣本CoT直接利用CoT示范來提示540B PaLM模型在預測最終標簽之前生成中間步驟,而無需對LLM進行進一步的微調。PINTO微調是指我們擴展Wang等人(2022a)的方法來處理除問答任務之外的任務,這些任務沒有被Wang等人(2022a)研究。在這里,我們在PaLM模型生成的輸出基礎上對220M T5-Base模型進行微調,這可以看作是帶有額外參數的LLMs的微調方法(Zhang等人,2020年;Lester等人,2021年)。我們分別在圖6和圖7中呈現了在有標簽數據集或無標簽數據集的兩種廣泛場景下的實驗結果。我們按照預測時部署的模型大小(x軸)和相應任務性能(y軸)繪制每種方法。
逐步蒸餾方法在使用不同模型大小時,相較于標準基線方法有所提升。在圖6和圖7中,我們分別看到逐步蒸餾方法在所有大小的T5模型上始終優于標準微調和標準蒸餾。在ANLI上的提升最為顯著,其中逐步蒸餾方法在任務準確性方面分別比標準微調和蒸餾提高了平均8%和13%。 逐步蒸餾方法通過使用更小的任務特定模型超越LLMs。在圖6中,當有人類標注的數據集可用時,逐步蒸餾方法可以始終使用更小的T5模型,在所有4個考慮的數據集上優于少樣本CoT和PINTO微調。例如,我們可以在eSNLI上使用220M(超過2000倍小)的T5模型實現比540B PaLM模型的少樣本CoT更好的性能,使用770M(超過700倍小)的T5模型在ANLI和SVAMP上取得更好的性能,以及使用11B(超過45倍小)的T5模型在CQA上取得更好的性能。無標簽數據增強進一步改進了逐步蒸餾。
3.3 使用最小模型大小和最少訓練數據超越LLMs
在這里,以LLM的性能作為錨點,我們探討了逐步蒸餾方法和標準微調/蒸餾在超越LLM所需的最高效資源需求,包括訓練樣本數量和部署模型大小。我們分別在圖8和圖9中呈現了在人類標注設置和無標注設置下的結果。我們通過繪制不同結果模型的(1)使用的訓練樣本數量(x軸),(2)實現的最終任務性能(y軸)以及(3)模型大小(通過陰影區域的大小可視化)來展示結果。
逐步蒸餾方法在使用更少數據的情況下,使用更小的模型超過LLMs。在圖8中的所有數據集上,我們發現逐步蒸餾方法在使用更少的數據時,性能優于PaLM的少樣本CoT,在只使用部分可用訓練樣本的情況下,使用更小的T5模型。具體來說,在e-SNLI上,逐步蒸餾方法可以在模型大小減小2000倍(220M T5)且只使用完整數據集的0.1%的情況下,實現比少樣本CoT更好的性能。在圖9中,只有無標簽數據集可用時,我們觀察到同樣的趨勢,即逐步蒸餾方法在大多數情況下,可以使用更小的模型和更少的數據超過少樣本CoT。例如,在ANLI上,逐步蒸餾方法在模型縮小45倍且只使用完整無標簽集50%的情況下,超過了LLM。標準微調和蒸餾需要更多的數據和更大的模型。最后,在圖8和圖9中,我們看到標準微調和蒸餾通常需要更多的數據或更大的模型來匹配LLM的性能。例如,在圖8中的e-SNLI上,我們觀察到逐步蒸餾方法在只使用數據集的0.1%的情況下就超過了LLM,而標準微調需要更多的數據來匹配性能。此外,在圖8中的ANLI上,我們觀察到逐步蒸餾方法可以在只使用80%的訓練集的情況下,使用770M模型超過PaLM,而標準微調即使使用完整數據集也難以匹配LLM,因此需要更大的模型來縮小性能差距。
4 結論
我們提出了逐步蒸餾方法,從LLMs中提取rationales作為有益的監督信息,以訓練小型任務特定模型。我們展示了逐步蒸餾方法減少了訓練數據集的需求,以創建任務特定的較小模型;它還減少了實現甚至超過原始LLM性能所需的模型大小。與現有方法相比,逐步蒸餾方法提出了一種資源高效的訓練到部署范式。
機器之心報道 編輯:澤南高質量數據,由 ChatGPT「自我博弈」生成。
ChatGPT 出現之后,科技公司正在爭相追趕,學界也在不斷尋找開源且輕量的解決方案。
此前,人們基于 Meta 的 LLaMA 構建了一系列參數較少的新模型,只用幾十億參數就可以獲得接近 GPT-3.5 的效果。然而從 ChatGPT 和 GPT-4 的發展中我們可以看到,高質量的標注數據至關重要,OpenAI 對數據和標注工作下了很大力氣。
對于學界來說,很難在短期做同樣的事。最近,有研究者嘗試通過讓 ChatGPT 自我對話生成多輪對話的「數據集」,最終訓練出了強大的語言模型。
4 月 4 日,來自加州大學圣迭戈分校、中山大學和微軟亞研的研究者提出了「白澤」。
論文《Baize: An Open-Source Chat Model with Parameter-Efficient Tuning on Self-Chat Data》:
論文鏈接://arxiv.org/abs/2304.01196
白澤目前包括四種英語模型:白澤 -7B、13B 和 30B(通用對話模型),以及一個垂直領域的白澤 - 醫療模型,供研究 / 非商業用途使用,并計劃在未來發布中文的白澤模型。
白澤的數據處理、訓練模型、Demo 等全部代碼已經開源。
Github: * 在線 Demo:
在新研究中,作者提出了一個自動收集 ChatGPT 對話的流水線,通過從特定數據集中采樣「種子」的方式,讓 ChatGPT 自我對話,批量生成高質量多輪對話數據集。其中如果使用領域特定數據集,比如醫學問答數據集,就可以生成高質量垂直領域語料。
白澤提出的訓練方法。通過利用 ChatGPT 的功能自動生成高質量的多輪聊天語料,讓 ChatGPT 與自己進行對話,模擬用戶和 AI 的響應。
為了在資源匱乏的環境中微調大語言模型,作者采用了有效利用計算資源的參數高效調優方法。該策略使最先進的語言模型保持了高性能和適應性。白澤改進了開源大型語言模型 LLaMA,通過使用新生成的聊天語料庫對 LLaMA 進行微調,該模型在單個 GPU 上運行,使其可供更廣泛的研究人員使用。
自聊天的過程是訓練內容的基礎,為了讓 ChatGPT 能夠有效生成數據,研究人員應用一個模板來定義格式和要求,讓 ChatGPT 的 API 持續為對話雙方生成抄本,直到達到自然停止點。對話以「種子」為中心,「種子」可以是一個問題,也可以是設置聊天主題的關鍵短語。
通過這樣的方法,研究人員分別收集了 5 萬條左右 Quora、StackOverflow(編程問答)和 MedQA(醫學問答)的高質量問答語料,并已經全部開源。
ChatGPT 使用從 Quora 數據集采樣的種子生成的自我聊天示例。
相比之下,Vicuna 使用從 sharegpt.com 上抓取的對話,這樣做的一個好處是收集到的數據質量很高。但是,此來源可能存在嚴重的隱私和法律問題。值得注意的是,sharegpt.com 最近已經禁止抓取,這意味著該數據源不再可用,Vicuna 難以復現。
在取得這些數據后,作者使用 LoRA(low-rank adaptation)方法在英偉達 A100 單卡下訓練了三種尺寸的白澤模型,最短訓練時長只需要 5 小時(醫療模型),最長也只需要 36 小時(30B 通用對話模型)。訓練的權重最大也僅有 54.6M 的參數量。
研究人員將白澤與 Alpaca-LoRA、ChatGPT 進行比較,展示了常識問答、事件分析、解釋笑話、問題拒答、寫代碼,以及醫療模型的健康咨詢等能力。
表 5:解釋雷曼兄弟破產。總體而言,Baize-7B 提供了比 Alpaca-LoRA 更全面的答案,同時包含了 ChatGPT 答案中的大部分要點。另一方面,ChatGPT 提供了更長更詳細的答案。
表 6:解釋笑話的示例。Baize-13B 和 ChatGPT 可以成功解釋這個笑話,Alpaca-LoRA 未能做到。
表 7:聊天模型如何響應用戶不道德請求的示例。Baize 和 ChatGPT 拒絕回答不道德的問題,而 Alpaca-LoRA 提供答案。
表 8:生成代碼示意。
除了一般模型外,研究人員還在醫療從業者的幫助下測試了 Baize-Healthcare,專業人員已確認白澤有關醫療問題的回應是適當的。
目前,「白澤」支持 20 種語言,對于英語以外的內容質量有限,繼承了 LLaMA 的知識,可能會出現幻覺,或用過時知識進行回答。
下一步,研究人員計劃探索引入強化學習以進一步提高白澤模型的性能。
? THE END 轉載請聯系本公眾號獲得授權 投稿或尋求報道:
OpenAI在昨天悄然放出了GPT第三代——《Language Models are Few-Shot Learners》。刷遍Twitter!史無前例!論文介紹了GPT-3這是一種由1750億個參數組成的最先進的語言模型。論文由32位作者72頁pdf。
最近的工作表明,通過對大量文本進行預訓練,然后對特定任務進行微調,在許多NLP任務和基準測試方面取得了巨大的進展。盡管這種方法在架構中通常與任務無關,但它仍然需要成千上萬個特定于任務的實例微調數據集。相比之下,人類通常只需要幾個例子或簡單的指令就可以完成一項新的語言任務——這是目前的NLP系統仍然難以做到的。在這里,我們展示了擴展語言模型極大地提高了任務無關性、低命中率的性能,有時甚至達到了與先前最先進的微調方法的匹配性能。具體來說,我們訓練了一個帶有1750億個參數的自回歸語言模型GPT-3,比以前任何非稀疏語言模型都多10倍,并在小樣本設置下測試了它的性能。對于所有任務,GPT-3的應用沒有任何梯度更新或微調,任務和小樣本演示指定純粹通過與模型的文本交互。GPT-3在許多NLP數據集上實現了強大的性能,包括翻譯、問答和完形填空任務,以及一些需要即時推理或領域適應的任務,如整理單詞、在句子中使用新單詞或執行3位算術。同時,我們還確定了一些數據集,其中GPT-3的小樣本學習仍然效果不佳,以及一些數據集,其中GPT-3面臨著與大型web語料庫上的訓練有關的方法問題。最后,我們發現GPT-3可以生成新聞文章的樣本,這些文章是人類評價者難以區分的。我們討論了這個發現和一般的GPT-3的更廣泛的社會影響。
GPT-3的主要目標是用更少的領域數據、且不經過精調步驟去解決問題。
為了達到上述目的,作者們用預訓練好的GPT-3探索了不同輸入形式下的推理效果。
這里的Zero-shot、One-shot、Few-shot都是完全不需要精調的,因為GPT-3是單向transformer,在預測新的token時會對之前的examples進行編碼。
作者們訓練了以下幾種尺寸的模型進行對比:
實驗證明Few-shot下GPT-3有很好的表現:
最重要的是,GPT-3在Few-shot設定下,在部分NLU任務上超越了當前Fine-tuning的SOTA。