Hugging Face 年度回顾:2023,开源大模型之年
在 2023 年,大型語言模型(Large Language Models,簡稱 LLMs)受到了公眾的廣泛關注,許多人對這些模型的本質及其功能有了基本的了解。是否開源的議題同樣引起了廣泛的討論。在 Hugging Face,我們對開源模型抱有極大熱情。開源模型的優勢在于,它們不僅促進了研究的可復制性,還鼓勵社區參與到人工智能模型的開發中來,這樣做有助于我們更容易地審視模型中可能存在的偏差和局限性。此外,通過重復利用已有的檢查點,我們還能夠減少整個領域的碳足跡(這只是 眾多優點 中的一部分)。
讓我們一起回顧開源 LLMs 在過去一年的發展歷程吧!
為了確保本文篇幅適中,我們將不涉及代碼模型的相關內容。
?? 預訓練大型語言模型的配方
首先,如何獲得一個大型語言模型呢?(如果你對此已有所了解,可以跳過這部分內容。)
模型的 架構(即其代碼表示)定義了它的具體實現和數學結構:這包括所有的相關參數,以及這些參數如何與輸入數據進行交互。目前,大多數高性能的大型語言模型(LLMs)都是基于 “僅解碼器”(decoder-only)的 Transformer 架構的衍生版本,有關原始 Transformer 的詳細信息可以參考其 發表的論文。
訓練數據集 是模型訓練過程中(即參數被學習時)所依賴的全部樣本和信息的集合,它使模型能夠學習到特定的數據模式。這些數據通常包括多樣的文本材料,既可以是各種自然語言文本,如法語、英語、漢語等,也可以是各類編程語言代碼,比如 Python、C 語言等,或者是任何能夠以文本形式表現的結構化信息,例如 Markdown 或 LaTeX 中的表格、公式等。
分詞器 是定義如何將訓練數據集中的文本轉化為數字的工具(因為模型是一個數學函數,因此需要數字作為輸入)。分詞是通過將文本轉換為稱為 “詞元” 的子單元(可以是單詞、子詞或字符,具體取決于分詞方法)來完成的。分詞器的詞匯量大小決定了其能夠將文本分割成的不同詞元的種類數目,這個數字通常介于 32,000 到 200,000 之間。數據集的規模常常用它包含的 詞元數量 來衡量。經過分詞后,如今的數據集范圍從幾千億詞元到幾萬億詞元不等,這些詞元是構成數據集的基本單元。
訓練超參數 定義了模型訓練的方法。這些參數決定了模型應如何調整自身以適應新的數據樣本,以及模型參數更新的速度應該是多快。
一旦確定了這些超參數,接下來需要的就是 1)充足的計算資源來進行模型訓練;2)具備專業技能的人員來執行和監督訓練過程。訓練過程本身包括在訓練所用的硬件上初始化模型架構,以及依據前述超參數在訓練數據集上應用訓練算法。訓練的成果是一系列模型權重 —— 這些就是經過學習的 模型參數,也正是人們通常所說的開放獲取的預訓練模型。這些權重可以用于后續的 推理過程,即對新的輸入數據進行預測,例如生成文本。
預訓練的大型語言模型(LLM)在完成初始訓練后,還可以根據具體任務進行定制化或進一步調整。特別是當這些模型的參數被開放共享時,它們可以作為不同用例和應用的基礎,經過一種稱為 “微調” 的過程進行優化。微調包括在與原始預訓練數據集不同的、通常更小且更專業化的數據集上,對模型執行額外的訓練步驟,目的是為了針對特定應用場景優化模型性能。盡管微調步驟在計算資源消耗上有一定成本,但這一成本通常遠低于從零開始訓練一個全新模型所需的財務投入和環境代價。這也是高品質開源預訓練模型極具吸引力的一個原因,它們使得即便是計算預算有限的從業者也能夠*地使用和改進這些模型。
??? 2022 年,從規模競賽轉向數據競賽
在 2023 年之前,社區有哪些開源模型可用?
直至 2022 年初,機器學習界普遍認為,模型的規模越大(即擁有的參數越多),其性能也越出色。特別是,模型一旦超過某個特定的規模閾值,其能力似乎會實現質的飛躍,這兩種現象分別被稱為 突現能力 和 規模定律。2022 年推出的多個預訓練開源模型家族大多遵循這種范例。
-
BLOOM (BigScience Large Open-science Open-access Multilingual Language Model)
BLOOM 是由 BigScience 研究團隊推出的 一系列模型。BigScience 是一個由 Hugging Face 協調,聯合法國的 GENCI 和 IDRIS 組織共同參與的國際合作項目,涵蓋了來自 60 個國家、250 個研究機構的 1000 名科研人員。這些模型采用了僅包含解碼器的 transformer 架構,并進行了細微調整,比如引入了嵌入后歸一化和 ALiBi 位置嵌入技術。在這一系列模型中,最大的一個擁有 1760 億個參數,它接受了 46 種人類語言和 13 種編程語言的 3500 億個多語言數據詞元的訓練。大量的訓練數據已經向公眾開放,包括數據的來源、策劃和處理過程的詳細信息。它是目前為止發布的最大的開源多語言模型。 -
OPT (Open Pre-trained Transformer)
Meta 發布的 OPT 模型 系列采用了僅包含解碼器的 Transformer 架構。這些模型借鑒了 GPT-3 論文中的技術,如特定的權重初始化和預歸一化策略,并對注意力機制進行了改進,比如引入了交替的密集型與局部帶狀注意力層。系列中最大的模型擁有 1750 億個參數,其訓練數據涵蓋了來自公共領域的 1800 億個數據詞元,包括書籍、Reddit 社交平臺數據、新聞、*以及其他多種互聯網來源。這一系列模型在性能上與 GPT-3 不相上下,并且通過編碼優化減少了計算資源的消耗。 -
GLM-130B (General Language Model)
清華大學聯合智譜 AI 共同發布了 GLM-130B 模型。該模型基于完整的 Transformer 架構,并引入了一些創新(如采用 DeepNorm 進行層后歸一化、使用旋轉式位置嵌入)。GLM-130B 擁有 1300 億參數,是在包含英文和中文的互聯網數據集上訓練的,這些數據集包括 The Pile、WuDao 語料庫以及其他中文語料庫,共計 4000 億個詞元。在性能上,GLM-130B 與 GPT-3 模型不相上下。 - 較小或更專業的開源大語言模型
近期,一些較小型的開源模型也相繼發布,這些模型主要服務于科研領域:Meta 推出了 Galactica 系列的大型語言模型(LLM),其中規模最大的模型擁有高達 120B 參數,這些模型是在科學文獻中的 1060 億個詞元基礎上進行預訓練的。EleutherAI 則發布了 GPT-NeoX-20B 模型,這是一個完全開源的僅解碼器式 Transformer 模型(包括模型架構、權重和數據),在 5000 億詞元上經過訓練,并采用了 RoPE 以及對注意力機制和初始化過程的若干改進,為科學研究提供了一個完整的工具集。
這些巨大的模型令人振奮,然而,它們的運行成本也高得驚人!在進行推理計算(即從模型中得出預測結果)時,模型必須被加載到內存中,而一個具有一千億參數的模型往往需要占用高達 220GB 的內存空間(這個過程我們將在后文中詳細闡述),這樣的內存需求對于大多數機構和專業人士來說都是難以承擔的!
然而,2022 年 3 月,DeepMind 發表了一篇 論文,探討了在固定計算預算條件下,模型參數與數據量的最優配比。簡而言之,如果你的模型訓練預算有限,應該如何平衡模型大小和數據規模?研究者們發現,在平均計算預算下,對于大型語言模型(LLMs),更高效的策略是維持一個相對較小的模型,并在更廣泛的數據集上進行訓練。他們開發的模型 Chinchilla(未公開)擁有 700 億個參數,僅為某些大型模型參數總數的三分之一,卻在高達 1.4 萬億個詞元的數據集上進行了訓練,是其他模型所使用數據量的三到四倍。結果顯示,Chinchilla 在性能上不僅媲美甚至超越了其他更大的同類型模型,無論是開源還是非開源的。
這種范式的變化,盡管可能已在封閉的實驗室環境中為人所知,但它卻讓整個開放的科學界感到措手不及。
?? 2023, 開放發布之年
小型 大語言模型的崛起
2023 年,僅解碼器(decoder-only)式的 Transformer 模型迎來了爆發式增長。幾乎每月都有新的預訓練模型問世,發展速度之快以至于漸漸演變為每周甚至每日都有新模型的推出。Meta 在 2 月推出了 LLaMA 模型;Eleuther AI 在 4 月帶來了 Pythia 模型;MosaicML 在 5 月推出了 MPT 模型;Salesforce 和 TIIUAE 則在 6 月分別發布了 X-GEN 和 Falcon 模型。Meta 緊隨其后,在 7 月發布了 LLaMA 的升級版本 LLaMA 2。進入下半年,9 月阿里巴巴發布了 Qwen 模型;Mistral.AI 推出了同名 Mistral 模型;01-ai 在 11 月發布了 Yi 模型;Deci 推出了 DeciLM 模型;而 Upstage 則在 12 月帶來了 Phi-2 和 SOLAR 模型。這一系列的模型發布,不僅展示了人工智能領域的快速進步,也預示著技術的不斷迭代與革新。
這些發布包括了:a) 模型權重(在不同程度的開源許可下);b) 對于較小規模的模型(介于 30 億至 700 億參數之間),它們的性能都相當出色,因此立刻被社區采用。這些模型幾乎都采用僅解碼器的 Transformer 架構,并且進行了各種調整(比如 ALiBi 或 RoPE、RMS 預歸一化、SwiGLU),以及對注意力函數的一些改變(如 Flash-Attention、GQA、滑動窗口注意力),并且在不同的代碼庫實現中進行了優化,以提高訓練或推理速度。這些調整很可能在一定程度上影響模型的性能和訓練速度;然而,由于所有架構都已經連同權重一起公開發布,剩下的核心差異主要在于訓練數據和模型的許可方式。
Meta AI 發布的 LLaMA 系列是該系列中的首款模型。研究團隊的目標是在既定的計算預算內訓練不同規模的模型,以求達到最優性能。他們首次明確將訓練預算與推理成本(即在滿足特定性能目標時,模型推理所需的成本)并重考慮。基于這樣的考量,他們選擇在更大量的數據和更多的訓練步驟上,訓練規模較小的模型,以期在較小的模型尺度上獲得更高的性能(這是對訓練計算效率的一種權衡)。在 LLaMA 系列中,最大的模型擁有 650 億參數,經過了 1.4 萬億的詞元訓練,而規模較小的模型 —— 分別具有 60 億和 130 億參數 —— 則在 1 萬億詞元訓練后完成。在大多數基準測試中,130 億參數的 LLaMA 小型模型的表現超過了 GPT-3,而 650 億參數的 LLaMA 大模型在發布時則代表了最先進的技術水平。然而,這些模型的權重是以非商業許可的形式發布的,這限制了它們在社區中的應用范圍。
Eleuther AI 是一個開源的非營利實驗室,它發布了一系列名為 Pythia 的大型語言模型(LLMs)。這些模型有不同的規模,全部采用公開數據進行訓練,目的是為了幫助研究人員理解大型語言模型訓練的不同階段。有關 Pythia 模型的更多信息,可以通過它們在 Hugging Face 上的 系列合集 查看。
MosaicML 公司在兩個月后推出了 MPT 模型,該模型的性能優越,并且支持商業用途,同時公司還公開了其訓練的具體細節。MPT 的首個版本是一個 7B 的模型,緊接著在 6 月份,公司發布了一個更大的 30B 版本。這兩個模型都是基于 1 萬億個英語和編程語言的詞元訓練而成,訓練數據包括了 C4、CommonCrawl、The Stack、S2ORC 等數據集。
MPT 模型推出后不久,TIIUAE 團隊便發布了 Falcon 系列模型 中的 7B 和 30B 版本。這些模型在 1 至 1.5 萬億個英文和代碼詞元上進行了訓練,訓練數據包括來自 RefinedWeb、Project Gutenberg、Reddit、*、GitHub、arXiv、Wikipedia 等多個來源。同年晚些時候,TIIUAE 還發布了一款更為龐大的 180B 模型。Falcon 模型的細節、所用數據以及訓練過程均在一份技術報告及隨后發表的 研究論文 中有詳盡的描述。
先前的模型在公開時通常會公開其數據集,但隨后推出的模型很少公布其訓練過程中使用的具體信息,這使得重現它們的成果變得困難。盡管如此,這些模型通過發布它們的權重參數,為研究社區提供了一個研究和進一步開發的起點。
Salesforce 在夏初推出了 X-Gen 模型,這是一款擁有 70 億參數的模型,訓練數據包括了 15 萬億個 “自然語言和代碼” 詞元,訓練過程分為多個步驟,并采用了數據調度系統(并非所有數據同時輸入模型)。
X-Gen 在 Meta 推出的更為引人注目的新的 LLaMA-2 家族的陰影下顯得有些黯然失色。LLaMA-2 是 Meta 推出的一個新的模型系列,規模從 7B 到 70B 不等,這些模型是在 2 萬億個 “來自公開來源的詞元” 上訓練而成的,采用了寬松的社區許可證,并經過了人類偏好的精細調整(RLHF),即所謂的對齊過程。
隨后,新興初創企業 Mistral 推出了其首款模型 ——Mistral-7B,該模型 是基于互聯網公開數據集的大量數據訓練而成,具體數據量尚未公布。隨著 2023 年末的臨近,模型發布活動日益頻繁。Mistral 緊接著發布了更為龐大的第二款模型 Mixtral 8x7B。與此同時,Deci.AI 公司也帶來了其令人矚目的首款模型 DeciLM,upstage 公司也不甘落后,推出了規模更大的 SOLAR 模型。這些模型均采用了來源和數量未公開的數據進行訓練。在各大排行榜和公開基準測試中,這些模型均展現出穩步的進步。
在 2023 年年底,值得關注的一大事件是中國訓練并公開發布了多個性能顯著提升的模型。其中,阿里巴巴推出了其雙語(英漢)模型 Qwen 系列,其參數規模從 70 億 至 700 億不等,經過了 240 億詞元數據的訓練。與此同時,01-AI 公司也發布了 Yi 系列模型,其參數規模介于 60 億至 340 億之間,訓練數據量達到了 300 億詞元。這些模型在公開排行榜(如 Open LLM leaderboard)以及一些極具挑戰性的基準測試(例如 Skill-Mix)中的表現,均超過了之前的模型。2023 年底的另一強有力的新競爭者是 DeepSeek AI,他們推出了 “DeepSeek-Coder”,該模型從零開始訓練了 200 億詞元數據,其中包含 87% 的代碼和 13% 的英漢混合自然語言。
隨處可見的對話模型
2023 年,與前一年相比,幾乎所有新發布的預訓練模型都配備了預訓練版本和對話微調版本,這些版本采納了多種現有的調整方法。盡管適用于聊天環境的模型調整技術在 2022 年及以前已有所開發,但這些技術在 2023 年得到了廣泛應用并迅速興起,這突顯了聊天模型在普羅大眾中使用的快速增長,以及通過與模型的互動對其進行的人工評估(即 “氛圍檢查” 評估)。本文將詳細介紹幾種著名的訓練調整預訓練模型以進行聊天的方法,實際上,相關的變體還有很多!
基于對話的微調 是一種特殊形式的監督式微調。在這種方法中,我們使用的標注數據是對話形式的,類似于社交媒體上的多輪對話記錄。通過這種方式,可以對模型進行特定的微調。在這個過程中,我們可以采用與模型訓練階段相同的技術。例如,在處理僅解碼器 Transformer 模型時,可以訓練模型通過自回歸方法,即逐一預測接下來的詞元。
指令微調(Instruction-based Fine-Tuning,IFT)采用相同的方法,但使用指令數據集,該數據集包含一系列類似查詢的提示以及答案(如果需要,還可以包含可選的附加輸入)。這些數據集教導模型如何遵循指示,并且可以是人類生成的,也可以是大型語言模型生成的。
利用大規模模型輸出的合成數據集(由模型生成的數據集,例如來自 GPT-4 的生成,可以是來自指示或用戶與模型之間的交互)是實現指導微調和聊天微調的一種方式。這通常被稱為 “蒸餾”,因為它涉及從性能較高的模型中獲取知識,以訓練或微調較小的模型。
這兩種方法都相對容易執行:你只需找到或創建相應的數據集,然后采用與訓練時相同的技術對模型進行調整即可。去年,發布了眾多指導性數據集,它們有效提升了模型在對話場景中的表現。想要了解更多關于此主題的信息,可以參閱這篇介紹性博文的 鏈接。然而,盡管模型的性能有了顯著提升,但它們仍未能完全達到人類的預期水平。
從人類反饋中強化學習(Reinforcement Learning from Human Feedback,RLHF)是一項旨在使模型輸出與人類偏好(基于特定標準)相一致的特定方法。具體操作流程如下:模型根據給定的提示生成多個潛在答案;人類評估者對這些答案進行排序;然后,這些排序結果用于訓練一個偏好模型(該模型學習如何給出反映人類對答案偏好程度的評分);最后,利用偏好模型通過強化學習對語言模型進行進一步的微調。更詳細的信息,請參閱這篇 博客文章,原始 RLHF 論文,或者 Anthropic 關于 RLHF 的論文。需要注意的是,這是一種成本較高的方法(注釋 / 排名 + 訓練新模型 + 微調的整個過程成本很高),主要用于確保模型的輸出與安全目標相符。為了降低成本,人們開發了一種低成本的變體方法,即利用高質量的語言模型來對模型輸出進行評分,而不是完全依賴人類評價,這種方法稱為從 人工智能反饋中學習的強化學習(Reinforcement Learning from AI Feedback, RLAIF)。
直接偏好優化(Direct Preference Optimization, DPO)是 RLHF 的另一種變體,其核心優勢在于無需訓練和運用獨立的偏好模型。這一方法同樣需要人類或人工智能生成的排序數據集,但它通過直接利用這些數據來更新模型,即通過對比模型現有的策略(即預測行為)與理想的策略(即能夠預測出最優排序答案的行為)。換言之,模型本身即扮演了對齊和偏好模型的雙重角色,這不僅簡化了優化流程,而且根據報告,還能夠實現與其他方法相媲美的性能水平。
回到來自(大多數)私企的小型開放權重模型的浪潮,其中很多模型都發布了經過精細調整的對應版本:MPT-7B 還配備了一個指令微調和一個對話版本,Falcon 和 XGen 模型的指令微調版本在年底發布,Llama-2、Qwen 和 Yi 發布了對話版本,DeciLM 則發布了一個指令微調版本。Llama-2 的發布尤其引人注目,因為它在預訓練和指令微調模型中都特別注重安全性。
社區的進展如何?
雖然隨著新模型的發布,聊天模型和指令微調模型通常會立即推出,但社區成員和研究人員并沒有把這看作是理所應當的。在這些基礎模型提供的沃土上,涌現出了一個龐大而活躍的微調愛好者社區。這些微調專家經常會構建新的數據集,并對模型進行細致的微調,以此來展現新發布模型的出色性能。
在 2023 年伊始,一些專為指令交互和對話微調設計的數據集已經被發布。例如,代表人類偏好的數據集包括 OpenAI 的 WebGPT 數據集、Anthropic 的 HH-RLHF 數據集以及 OpenAI 的 摘要 數據集,它們在這一領域是開拓者。指令數據集的例子包括 BigScience 的 公共提示池、Google 的 FLAN 1 和 2(FLAN 數據集)、AllenAI 的 自然指令 數據集、由不同機構的研究人員開發的自動生成指令框架 自我指令、由專家創建的指令基準 超自然指令(有時用作微調數據),以及由特拉維夫大學和 Meta 合作生成的自動指令數據集 非自然指令 等。
?? 冬 2022/2023: 一月,來自中國多個研究機構的研究人員共同發布了 人類 ChatGPT 指令語料庫(HC3),其中包含了人類與模型對各種問題的回答。3 月份,發布活動接連不斷:斯坦福大學推出了 Alpaca 模型,這是首個遵循指令的 LLaMA 模型(7B),以及相關的數據集,包括用大型語言模型生成的 52K 條指令。非營利開源實驗室 LAION 發布了 開放指令通用數據集(OIG),包含 4300 萬條指令,這些指令既有通過數據增強創建的,也有編譯自其他現有數據源的。同月,位于加州大學伯克利分校的 LMSYS 組織發布了 Vicuna,這也是一個基于 ChatGPT 聊天數據的 LLaMA 精調模型(13B),這些聊天數據是用戶與 ChatGPT 之間的對話,由用戶自己公開分享在 ShareGPT 上。還發布了 Guanaco 數據集,它是 Alpaca 數據集的擴展版(增加了 50 萬條多語言條目),以及相關的 LLaMA-7B 精調模型。
?? 春:四月,伯克利人工智能研究實驗室(Berkeley AI Research lab,BAIR)發布了 Koala,這是一個經過聊天調優的 LLaMA 模型,它使用了多個先前的數據集(包括 Alpaca、HH-RLHF、WebGPT、ShareGPT),而 DataBricks 則發布了 Dolly 數據集,這是一個由 15K 條人工生成的指令組成的數據集,以及相關的 Pythia 微調模型。五月,清華大學發布了 UltraChat,這是一個包含 1.5M 對話指令的數據集,以及在該數據集上進行微調的 UltraLLaMA 模型。隨后,微軟發布了 GPT4-LLM 數據集 / 框架,用于生成 GPT4 的指令。六月,微軟研究院分享了一種新方法 Orca,通過使用大型模型的推理軌跡(逐步解釋其推理過程)來構建指令數據集,該方法很快被社區(尤其是 Alignementlab.ai)復現,他們創建了 Open Orca 數據集,包含數百萬條條目,隨后用于微調多個模型(如 Llama、Mistral 等)。五月和六月期間,Camel-AI 發布了多個關于不同話題(物理、生物、化學等)的指令或聊天數據集,每個領域都有超過 20K 的示例。同樣在六月,發布了 Airoboros 框架,用于使用模型生成的數據微調模型(遵循自我指導方法),以及一系列的 指令數據集。
?? 夏:八月,由中國的非營利組織 OpenBMB 發布了 UltraLM(一種基于 LLaMA 的高性能聊天模型微調版本),隨后在九月,他們又發布了相關的偏好數據集 UltraFeedback,這是一個包含與 GPT4 對比的輸入反饋數據集,并附有注釋。在整個夏天,一個名為 NousResearch 的集體發布了多個基于私有和公開指導數據集的微調版本(特別是 Hermes 和 Capybara 系列)。九月,清華大學的一個學生團隊發布了 OpenChat,這是一個應用了新的強化學習微調策略的 LLaMA 微調版本。
?? 秋:十月,Hugging Face 發布了 Zephyr 模型,這是一個在 UltraChat 和 UltraFeedback 上使用 DPO 和 AIF 技術對 Mistral 模型進行微調的產物。同時,社區成員發布了 OpenHermes 2,這是一個在來自網絡或使用 Axolotl 生成的 900K 條目上對 Mistral-7B 模型進行微調的版本。Lmsys 發布了 LMSYS-Chat-1M,包含了與 25 個大型語言模型(LLMs)的真實用戶對話。十一月,OpenBuddy 發布了 OpenBuddy-Zephyr,這是一個對 Zephyr 模型進行微調的多輪對話模型。同月,NVIDIA 發布了 HelpSteer 數據集,這是一個對齊微調數據集,提供了提示、相關模型回應以及基于幾個標準對這些回答的評分,而微軟研究院則發布了 Orca-2 模型,這是一個在新的合成推理數據集上對 Llama 2 模型進行微調的版本。十二月,伯克利大學發布了 Starling 模型,這是一個對 Open-Chat 模型進行 RLAIF 微調的版本,以及相關的數據集 Nectar,包含了 20 萬條比較數據。
正如我們看到的,今年整個領域的發展既依賴于通過使用高質量的預訓練大型語言模型(LLMs)創建新數據集,也依賴于社區發布的各種開源模型,這使得該領域進步飛速!如果你現在在模型名稱中看到這些名字中的任何一個,你就能夠大概了解它的來源了??。
- 還有一些更專業的數據集,例如用于數學問題微調的 MetaMath 和 MathInstruct,以及涉及數學和代碼指令的 Evol-Instruct,還有 CodeAlpaca 與 CodeCapybara 等代碼指令相關的數據集也已發布。雖然這些數據集同樣被用于提升模型在特定任務上的表現,但我們在此不會詳細介紹它們。你還可以訪問 令人心動的指令數據集 來查看其他相關數據集的集合。*
開啟定制模型的大門
模型融合:極致的定制化
在開源社區的典范實踐中,一個重要的里程碑是模型與數據的融合。隨著每一次代碼合并或提交,追溯所使用數據的來源變得愈發復雜 —— 許多公開的數據集本身就是其他數據集的匯編。同樣,由于卓越性能的模型往往是在相似模型的基礎上經過層層微調得來的(可參考 Mistral 的 衍生模型樹),模型的發展歷史也變得難以梳理。在這篇摘要中,我們尚未有足夠的篇幅深入探討這一引人入勝的技術領域,但在最后,我們將簡要介紹一下它的概念。
然而,“模型融合” 究竟是什么意思呢?
模型融合 是一種將不同模型的權重融合到一個單一模型中的方法,其理想目標是將每個模型的各自優勢結合在一個統一的模型中。目前已有一些技術實現了這一目標,這些技術大多在社區論壇中得到擴展和發布,這是一個全球范圍內的去中心化研究的典型案例,涵蓋了從業者、研究人員到業余愛好者的廣泛社區。其中一種最簡單的公開方法是平均一組具有共同架構的模型的參數(示例 1,示例 2),但還存在更復雜的參數組合方法,例如確定每個模型中對特定任務最有影響力的參數(加權平均),或者在合并前考慮模型間參數的相互干擾,從而選擇保留哪些參數(關聯融合)。
這些技術使任何人都能輕松地生成模型的組合,而且由于大多數現代模型都是基于同一架構的變體,這一過程變得尤為簡便。這也是 Open LLM leaderboard 上一些模型名稱如 llama2-zephyr-orca-ultra 的原因。這個特定的例子很可能是將 llama2 和 zephyr 模型合并后,再在 orca 和 ultra 數據集上進行微調的結果。通常,更多的細節可以在 Hugging Face 中心的相應模型卡片上找到。
參數高效微調:觸手可及的個性化體驗
有時候,你可能需要進行更為細致的個性化調整,但受限于硬件顯存大小,無法加載完整模型進行微調。其實,你知道嗎?微調時并不必須要用到模型的全部。
你或許想嘗試一種叫做 參數高效微調(Parameter-Efficient Fine-Tuning,PEFT)的方法。
這項技術首先會凍結你所關注的預訓練模型中的參數,然后在其基礎上附加一些新的參數層,也就是我們所說的 “適配器”。接下來,你只需對這些專為你的任務設計的輕量級適配器權重進行微調,這些權重遠小于原始模型的規模。這樣,你僅需分享你的小型適配器權重(以及底層模型)即可!你可以在 這里 探索一系列引人入勝的 PEFT 技術。
量化:模型普及于各處
我們已經看到,性能出色的模型現在形態各異…… 但即便如此,并不意味著它們對所有人都是觸手可及的!一個擁有 300 億參數的模型僅僅加載到內存中(還未開始使用)就可能需要超過 66GB 的 RAM,而并非社區中的每個人都有能力配備這樣的硬件。
這就是量化技術的用武之地!量化是一種特殊的技術,它通過改變模型參數的精度來減少模型的大小。
量化是什么意思呢?
在計算機中,數字是以一定的精度存儲的,例如 float32、float16、int8 等。精度不僅指明了數字類型(是浮點數還是整數),同時也指出了數字存儲所占用的內存大小:例如 float32 是在計算機上以 32 位存儲的浮點數。要了解更深入的解釋,請參見這個 鏈接。因此,數據的精度越高,它所占用的物理內存就越多,這是因為需要更多的位來存儲這些數據。
因此,如果你降低精度,就會減少模型參數在存儲上占用的內存,進而減小模型的大小!這也意味著你降低了計算的實際精度,可能會降低模型的性能。然而,我們發現,在較大的模型上,這種性能下降實際上是 非常有限 的。
回到我們之前的例子中,一個含有 300 億參數的模型,在使用 float16 格式時需要不到 66GB 的內存。如果采用 8bit,內存需求將減半至 33GB;若使用 4bit 編碼,則只需大約 16GB,進一步降低了內存的要求,使得模型更易于部署和使用。
精度轉換有多種方法,涉及不同的 “轉換” 策略,每種策略都有其獨特的優勢和局限。目前流行的轉換方法包括 bitsandbytes、GPTQ, 和 AWQ 等。有些開發者,例如 TheBloke,甚至正在將所有流行的模型進行轉換,以便更容易地被社區使用。所有這些方法都是相對較新并且仍在不斷發展之中,我們期待隨著時間的推移,這些技術能夠取得更多的進步。
接下來呢?
年尾尚未到來!在這最后時刻,已經迎來了一些驚喜:新的架構是否終將超越簡單高效的 Transformer 模型呢?
最新發布包括:
- 混合專家模型:
- Mixtral,該模型由 8 個子模型(僅解碼器的 Transformer 模型)組成,對于每個輸入,一個路由器會選擇兩個最佳子模型并將它們的輸出求和。
- 幾種狀態空間模型(通過潛在空間將輸入映射到輸出的模型,可以根據任務需求表達為 RNN 或 CNN):
- Mamba,增加了選擇機制的狀態空間模型
- Striped Hyena,具有快速卷積核的狀態空間模型
目前來說,這些新方法是否會取代 Transformer 模型還為時尚早,但狀態空間模型確實非常有前景!
要點回顧
- 今年,從大型企業到初創公司,再到研究實驗室,各種主體紛紛開放發布模型,這極大地賦能了社區,使其以前所未有的速度開始進行實驗和探索。
- 模型公告的開放性呈現出起伏變化,從年初的公開發布(數據集組合、權重、架構)到年末對訓練數據守口如瓶,導致無法復現。
- 開源模型出現在包括中國在內許多新的地方,有幾個新的參與者將自己定位為語言模型競爭中的強勁競爭者。
- 個性化定制的可能性達到了前所未有的高度,新策略的出現(如強化學習優化的微調、適配器、合并技術),雖然這僅僅是個開始。
- 更小的模型尺寸和量化升級使得大型語言模型對更多人來說變得真正唾手可得!
- 新的架構也隨之出現 —— 它們是否最終會取代 Transformer 架構,仍是一個值得關注的問題。
各位朋友們,就是這樣了!
希望你喜歡我們今年的回顧,從中學到了一些知識,并且和我一樣,對于人工智能進步現在如此依賴開源和社區努力感到無比熱情!??
英文原文: https://huggingface.co/blog/2023-in-llms
原文作者:Clémentine Fourrier
譯者: Xinyu Yang (楊新宇),字節跳動算法工程師,工作方向為通過 SFT、RL 提升大模型 Math、Reasoning 能力。
總結
以上是生活随笔為你收集整理的Hugging Face 年度回顾:2023,开源大模型之年的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Qt开发:SqlRelation
- 下一篇: 文心一言 VS 讯飞星火 VS chat