54百億參數(shù)大模型進化樹重磅更新!85頁盤點LLM發(fā)展史,附最詳細prompt技巧
【新智元導(dǎo)讀】4月底火爆開發(fā)者社區(qū)的最全LLM綜述又更新了!這次,LLM的進化樹末端已經(jīng)從GPT-4和Bard更新到了Vicuna和Falcon。
在4月一經(jīng)推出就火爆開發(fā)者社區(qū)的大語言模型綜述更新了!此前,人大等學(xué)校的多位研究者回顧了大語言模型在背景知識、關(guān)鍵發(fā)現(xiàn)和主流技術(shù)等方面的進展,尤其強調(diào)了大語言模型的預(yù)訓(xùn)練、自適應(yīng)調(diào)優(yōu)、使用和能力評估。最近,研究者對于這些研究進行了更新。在這次更新中,添加了34多個新頁面,200多個新參考。包括:- 新論文(LLaMA系列) - 新章節(jié)(例如,LLMs的復(fù)雜任務(wù)規(guī)劃) - 26個有用的prompt技巧 - 對LLM的8種完成特定任務(wù)的能力進行實證評估論文地址:https://arxiv.org/abs/2303.18223
其中,時間軸主要根據(jù)模型的技術(shù)論文發(fā)布日期來建立。為了便于閱讀,團隊還通過LLM和人工校對,制作了中文版的調(diào)查報告(v4)。作者注:本文未經(jīng)許可,不得以任何形式進行轉(zhuǎn)發(fā),或者拷貝使用相關(guān)內(nèi)容LLM發(fā)展概述(arXiv上LLM相關(guān)論文數(shù)量的趨勢)
這次更新的有arXiv上LLM相關(guān)論文數(shù)量趨勢。以下分別是包含關(guān)鍵詞「語言模型」(自2018年6月以來)和「大語言模型」(自2019年10月以來)的arXiv論文數(shù)量趨勢。統(tǒng)計數(shù)據(jù)是通過按月份查詢標(biāo)題或摘要中的關(guān)鍵詞的精確匹配來計算的。由于學(xué)界很早就開始探索語言模型了,因此研究者為這兩個關(guān)鍵詞設(shè)置了不同的X軸范圍。我們在圖中標(biāo)注了與LLMs研究進展中重要里程碑相對應(yīng)的點。在ChatGPT發(fā)布后,論文數(shù)量急劇增加:每天平均發(fā)布的包含「大語言模型」關(guān)鍵詞的arXiv論文從0.40篇增至8.58篇。LM研究發(fā)展階段
LM旨在對單詞序列的生成可能性進行建模,從而預(yù)測未來(或缺失)token的概率。SLM基于20實際90年代興起的統(tǒng)計學(xué)習(xí)方法開發(fā)。基本思想是建立基于馬爾可夫假設(shè)的單詞預(yù)測模型,例如,根據(jù)最近的上下文預(yù)測下一個單詞。具有固定上下文長度n的SLM也也被稱為n元語言模型,比如二元語言模型和三元語言模型。SLM在信息檢索(IR)和自然語言處理(NLP)中被廣泛應(yīng)用于提高任務(wù)性能。然而,它們往往會遭受維數(shù)詛咒:由于需要估計指數(shù)級數(shù)量的轉(zhuǎn)移概率,因此很難準(zhǔn)確估計高階語言模型。NLM通過神經(jīng)網(wǎng)絡(luò)(如循環(huán)神經(jīng)網(wǎng)絡(luò)RNN)來表征單詞序列的概率,NLM最顯著的貢獻是引入了單詞的分布式表征的概念,并構(gòu)建了以分布式詞向量為條件的單詞預(yù)測函數(shù)。為了構(gòu)建一個簡化的淺層神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)分布式的單詞表征,word2vec被提出,并且被證明是非常有效的。ELMo是通過預(yù)訓(xùn)練一個雙向LSTM網(wǎng)絡(luò),然后根據(jù)特定的下游任務(wù)對這個網(wǎng)絡(luò)進行微調(diào)。此外,BERT是基于具有自注意機制的高度并行化Transformer架構(gòu)被提出。它們很大程度上提高了NLP任務(wù)的性能標(biāo)準(zhǔn)。許多研究通過訓(xùn)練更大的PLM(如175B參數(shù)的GPT-3和540B參數(shù)的PaLM來探索性能極限,它們在解決一系列復(fù)雜任務(wù)時涌現(xiàn)出驚人的能力。例如,GPT-3可以通過上下文學(xué)習(xí)解決few-shot任務(wù),而GPT-2做得并不好。而GPT-4已經(jīng)被認為是AGI的早期版本。LLM涌現(xiàn)的能力
LLM的涌現(xiàn)能力被定義為:在小模型中不存在但在大模型中出現(xiàn)的能力。這是LLM區(qū)別于以往PLM的最顯著特征之一。GPT-3 正式引入了上下文學(xué)習(xí)能力:假設(shè)語言模型已經(jīng)提供了自然語言指令和多個任務(wù)描述,它可以通過完成輸入文本的詞序列來生成測試實例的預(yù)期輸出,而不需要額外的訓(xùn)練或梯度更新。175B型GPT-3總體表現(xiàn)出較強的上下文學(xué)習(xí)能力,而GPT-1和GPT-2表現(xiàn)不佳。通過對自然語言描述格式化的多任務(wù)數(shù)據(jù)集的混合進行微調(diào)(被稱為指令調(diào)優(yōu)),即使在以指令形式描述的未見任務(wù)上,LLM也表現(xiàn)良好。LLM可以在不使用顯示樣本的情況下遵循新任務(wù)的指令,從而提高泛化能力。對于小型語言模型,通常很難解決涉及多個推理步驟的復(fù)雜任務(wù),例如數(shù)學(xué)單詞問題。相比之下,通過思維鏈(CoT)提示策略,LLM 可以通過使用包含中間推理步驟的prompt機制推導(dǎo)最終答案,來解決這類任務(wù)。據(jù)推測,這種能力可能是通過訓(xùn)練代碼而獲得的。LLM的關(guān)鍵技術(shù)
以下是幾個(潛在)導(dǎo)致LLM成功的重要技術(shù)。Transformer語言模型中存在明顯的擴展效應(yīng):更大的模型/數(shù)據(jù)規(guī)模和更多的訓(xùn)練會導(dǎo)致模型容量的提高。GPT-3將模型參數(shù)增至1750億,PaLM將模型參數(shù)增至5400億,都探索了縮放的極限。由于規(guī)模巨大,需要分布式訓(xùn)練算法來學(xué)習(xí)LLM的網(wǎng)絡(luò)參數(shù),聯(lián)合使用各種并行策略。為了支持分布式訓(xùn)練,DeepSpeed和Megatron-LM等優(yōu)化框架已經(jīng)發(fā)布,用來促進并行算法的實現(xiàn)和部署。在大規(guī)模語料庫上經(jīng)過預(yù)訓(xùn)練后,LLM被賦予了解決通用任務(wù)的潛在能力。但是執(zhí)行某個特定任務(wù)時,這些能力未必會表現(xiàn)出來。因此需要設(shè)計適合的任務(wù)指令或特定的上下文學(xué)習(xí)策略,來激發(fā)出LLM的這些能力,比如思維鏈prompt。由于訓(xùn)練LLM的語料質(zhì)量參差不齊,它們很可能生成對人類有毒、有偏見甚至有害的文本內(nèi)容。為了讓它們與人類價值觀保持一致,InstructGPT設(shè)計了一種利用強化學(xué)習(xí)和人類反饋的高效調(diào)優(yōu)方法,使得LLM 能夠遵循預(yù)期指令。ChatGPT即是在類似技術(shù)上開發(fā)的。LLM在數(shù)值計算任務(wù)上表現(xiàn)不佳,且受限于預(yù)訓(xùn)練數(shù)據(jù)。因此,它們需要外部工具來彌補,比如計算器、搜索引擎、外部插件等。
研究者主要根據(jù)OpenAI的論文、博客文章和官方API重新繪制了這個GPT系列模型的技術(shù)演進圖。在圖中,實線表示兩個模型之間存在明確的證據(jù)(例如,官方聲明新模型是基于基礎(chǔ)模型開發(fā)的)的演進路徑,而虛線表示相對較弱的演進關(guān)系。研究者討論了GPT系列模型的技術(shù)演變,總結(jié)了它們在過去幾年的進展。下表是近年來大語言模型(大于10B)的統(tǒng)計,包括容量評估、預(yù)訓(xùn)練數(shù)據(jù)規(guī)模(token數(shù)量或存儲大?。┖陀布Y源成本。只包括有公開技術(shù)細節(jié)論文的LLM。
由于數(shù)量龐大,這個圖中這個圖中包含所有的LLaMA變種,盡管其中有很多優(yōu)秀的工作。LLaMA模型是Meta AI在2023年2月推出的,包括7B、13B、30B和65B四個尺寸。自發(fā)布以來,LLaMA以前你了學(xué)界和工業(yè)界的廣泛關(guān)注。它們在各種開放基準(zhǔn)測試中取得了優(yōu)異性能,成為如今最流行的開源語言模型。由于計算成本較低,結(jié)構(gòu)調(diào)優(yōu)LLaMA已經(jīng)成為開發(fā)定制或?qū)S心P偷闹饕椒ā?/span>LLaMA家族包括Stanford Alpaca、Koala、BELLE。而基于另一種流行的LLaMA變體Vicuna,出現(xiàn)了LLaVA、MiniGPT-4、InstructBLIP、PandaGPT等。總之,LLaMA的發(fā)布極大推動了LLM的研究進展。
團隊從在線筆記和作者的經(jīng)驗中,收集了一些有關(guān)設(shè)計提示的有用建議,并展示了相關(guān)的要素和原則。2:將任務(wù)分解為易于理解的詳細子任務(wù);T1. 盡可能詳細地描述提示,例如,「用50個字以內(nèi)總結(jié)這篇文章。包括主要情節(jié)和結(jié)論,可以省略不重要的細節(jié)。」 (1)T2. 用一個預(yù)設(shè)的提示讓LLM知道自己是一個專家,例如,「你是一個計算機科學(xué)領(lǐng)域的資深專家?!? (1)T3. 告訴模型更多應(yīng)該做什么的信息,而不是不應(yīng)該做什么。(1)T4. 為了避免LLM生成過長的輸出,可以只使用提示:「問題:簡短回答:」。此外,還可以使用以下后綴:「用幾個詞或一兩句話回答」。(1)I1. 對于需要事實知識的問題,先通過搜索引擎檢索相關(guān)文檔,然后將它們插入到提示中作為參考。(4)I2. 為了突出提示中的一些重要部分,請使用特殊標(biāo)記,例如引號('')和換行符(\n)。也可以同時使用它們進行強調(diào)。(4)C1. 對于復(fù)雜的任務(wù),可以清楚地描述完成任務(wù)所需的中間步驟,例如,「請一步一步地回答問題,步驟一:將問題分解為幾個子問題...」。(2)C2. 如果想讓LLM對文本進行打分,則需要提供有關(guān)評分標(biāo)準(zhǔn)的詳細說明,并提供示例作為參考。(1)C3. 當(dāng)LLM根據(jù)某個上下文生成文本時(例如根據(jù)購買歷史進行推薦),通過解釋與生成結(jié)果有關(guān)的上下文,可以提高生成文本的質(zhì)量。(2)D1. 格式準(zhǔn)確的上下文示例可以幫助指導(dǎo)LLM,特別是對于那些格式復(fù)雜的輸出來說。(3)D2. 對于少樣本思維鏈提示,可以使用「讓我們一步一步思考」,少樣本示例應(yīng)該用「\n」分隔而不是用句號。(1)(3)D3. 可以檢索上下文中的類似示例,為LLM提供有用的任務(wù)特定知識。為了檢索更多相關(guān)示例,先獲得問題的答案,然后將其與問題連接起來進行檢索。(3)(4)D4. 上下文示例的多樣性也很有用。如果很難獲得多樣性問題,可以嘗試保持問題的解決方案的多樣性。(3)D5. 在使用基于對話的LLM時,可以將上下文示例分解為多輪對話消息,以更好地匹配人類與機器人的對話格式。同樣,可以將示例的推理過程分解為多輪對話。(3)D6. 復(fù)雜且信息豐富的上下文示例有助于LLM回答復(fù)雜問題。(3)D7. 由于符號序列通常可以分為多個段落(例如i1、i2、i3 → i1、i2和i2、i3),可以將之前的段落用作上下文示例,引導(dǎo)LLM預(yù)測后續(xù)段落,同時提供歷史信息。(2)(3)D8. 上下文示例和提示組件的順序很重要。對于非常長的輸入數(shù)據(jù),問題的位置(第一個或最后一個)也可能影響性能。(3)D9. 如果無法從現(xiàn)有數(shù)據(jù)集獲取上下文示例,另一種替代方法是使用LLM自己生成的零樣本示例。(3)O1. 在得出結(jié)論之前,讓LLM檢查其生成的結(jié)果,例如,「檢查上述解決方案是否正確」。(2)O2. 如果LLM無法很好地解決任務(wù),可以通過提示LLM使用外部工具進行幫助。這時,工具應(yīng)該封裝為可調(diào)用的API,并提供關(guān)于其功能的詳細描述,以更好地指導(dǎo)LLM利用工具。(4)O3. 提示應(yīng)該是自包含的,并且最好不要包含上下文中的代詞信息(例如它和它們)。(1)O4. 在使用LLM進行比較兩個或更多示例的任務(wù)時,順序?qū)π阅苡绊懞艽?。?)O5. 在提示之前,為LLM分配一個角色有助于它更好地完成后續(xù)任務(wù)指導(dǎo),例如,「我希望你扮演一名律師」。(1)O6. OpenAI模型在英語方面的任務(wù)表現(xiàn)比其他語言更好。因此,將輸入首先翻譯成英語,然后再輸入LLM會很有幫助。(4)O7. 對于多選題,可以限制LLM的輸出空間。比如,使用更詳細的說明或僅對邏輯回歸添加約束。(1)O8. 對于基于排序的任務(wù)(例如推薦),不直接輸出排序后的每個項目的完整文本,而是給未排序的項目分配代號(例如ABCD),并指示LLM直接輸出排序后的代號。(1)另外,研究者還提供了解決許多常見任務(wù)的prompt的具體示例。這些任務(wù)prompt大多來自現(xiàn)有的論文,實驗使用基于ChatGPT的提示。「復(fù)雜任務(wù)規(guī)劃」可以被總結(jié)為三個組件:任務(wù)計劃器、計劃執(zhí)行程序和環(huán)境。這種范式可以從三個方面來解釋:指令微調(diào)
團隊探討了在微調(diào)LLM中不同類型指令的影響,并測試了一些指令改進策略的有效性。以下是基于LLaMA-7B模型在聊天和問答設(shè)置下進行的指令調(diào)整實驗的結(jié)果(所有實驗均為單輪對話)。其中,采用的是Self-Instruct-52K數(shù)據(jù)集中,四種指令的改進策略,即增加復(fù)雜性(使用復(fù)雜性策略)、增加多樣性(使用多樣性策略)、平衡難度(使用難度策略)和增加指令數(shù)量(使用縮放策略)。能力評估
其中,橙色和藍色字體的色階分別表示閉源模型和開源模型的結(jié)果性能順序。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。