Hugging Face 年度回顧:2023,開源大模型之年

HuggingFace發表於2023-12-29

在 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 年推出的多個預訓練開源模型家族大多遵循這種範例。

  1. 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 億個多語言資料詞元的訓練。大量的訓練資料已經向公眾開放,包括資料的來源、策劃和處理過程的詳細資訊。它是目前為止釋出的最大的開源多語言模型。
  2. OPT (Open Pre-trained Transformer)
    Meta 釋出的 OPT 模型 系列採用了僅包含解碼器的 Transformer 架構。這些模型借鑑了 GPT-3 論文中的技術,如特定的權重初始化和預歸一化策略,並對注意力機制進行了改進,比如引入了交替的密集型與區域性帶狀注意力層。系列中最大的模型擁有 1750 億個引數,其訓練資料涵蓋了來自公共領域的 1800 億個資料詞元,包括書籍、Reddit 社交平臺資料、新聞、維基百科以及其他多種網際網路來源。這一系列模型在效能上與 GPT-3 不相上下,並且透過編碼最佳化減少了計算資源的消耗。
  3. GLM-130B (General Language Model)
    清華大學聯合智譜 AI 共同釋出了 GLM-130B 模型。該模型基於完整的 Transformer 架構,並引入了一些創新(如採用 DeepNorm 進行層後歸一化、使用旋轉式位置嵌入)。GLM-130B 擁有 1300 億引數,是在包含英文和中文的網際網路資料集上訓練的,這些資料集包括 The Pile、WuDao 語料庫以及其他中文語料庫,共計 4000 億個詞元。在效能上,GLM-130B 與 GPT-3 模型不相上下。
  4. 較小或更專業的開源大語言模型
    近期,一些較小型的開源模型也相繼釋出,這些模型主要服務於科研領域: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、StackOverflow、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)建立新資料集,也依賴於社群釋出的各種開源模型,這使得該領域進步飛速!如果你現在在模型名稱中看到這些名字中的任何一個,你就能夠大概瞭解它的來源了🤗。

  • 還有一些更專業的資料集,例如用於數學問題微調的 MetaMathMathInstruct,以及涉及數學和程式碼指令的 Evol-Instruct,還有 CodeAlpacaCodeCapybara 等程式碼指令相關的資料集也已釋出。雖然這些資料集同樣被用於提升模型在特定任務上的表現,但我們在此不會詳細介紹它們。你還可以訪問 令人心動的指令資料集 來檢視其他相關資料集的集合。*

開啟定製模型的大門

模型融合:極致的定製化

在開源社群的典範實踐中,一個重要的里程碑是模型與資料的融合。隨著每一次程式碼合併或提交,追溯所使用資料的來源變得愈發複雜 —— 許多公開的資料集本身就是其他資料集的彙編。同樣,由於卓越效能的模型往往是在相似模型的基礎上經過層層微調得來的(可參考 Mistral 的 衍生模型樹),模型的發展歷史也變得難以梳理。在這篇摘要中,我們尚未有足夠的篇幅深入探討這一引人入勝的技術領域,但在最後,我們將簡要介紹一下它的概念。

然而,“模型融合” 究竟是什麼意思呢?

模型融合 是一種將不同模型的權重融合到一個單一模型中的方法,其理想目標是將每個模型的各自優勢結合在一個統一的模型中。目前已有一些技術實現了這一目標,這些技術大多在社群論壇中得到擴充套件和釋出,這是一個全球範圍內的去中心化研究的典型案例,涵蓋了從業者、研究人員到業餘愛好者的廣泛社群。其中一種最簡單的公開方法是平均一組具有共同架構的模型的引數(示例 1示例 2),但還存在更復雜的引數組合方法,例如確定每個模型中對特定任務最有影響力的引數(加權平均),或者在合併前考慮模型間引數的相互干擾,從而選擇保留哪些引數(關聯融合)。

這些技術使任何人都能輕鬆地生成模型的組合,而且由於大多數現代模型都是基於同一架構的變體,這一過程變得尤為簡便。這也是 Open LLM leaderboard 上一些模型名稱如 llama2-zephyr-orca-ultra 的原因。這個特定的例子很可能是將 llama2zephyr 模型合併後,再在 orca 和 ultra 資料集上進行微調的結果。通常,更多的細節可以在 Hugging Face 中心的相應模型卡片上找到。

引數高效微調:觸手可及的個性化體驗

有時候,你可能需要進行更為細緻的個性化調整,但受限於硬體視訊記憶體大小,無法載入完整模型進行微調。其實,你知道嗎?微調時並不必須要用到模型的全部。

你或許想嘗試一種叫做 引數高效微調(Parameter-Efficient Fine-Tuning,PEFT)的方法。
這項技術首先會凍結你所關注的預訓練模型中的引數,然後在其基礎上附加一些新的引數層,也就是我們所說的 “介面卡”。接下來,你只需對這些專為你的任務設計的輕量級介面卡權重進行微調,這些權重遠小於原始模型的規模。這樣,你僅需分享你的小型介面卡權重(以及底層模型)即可!你可以在 這裡 探索一系列引人入勝的 PEFT 技術。

量化:模型普及於各處

我們已經看到,效能出色的模型現在形態各異…… 但即便如此,並不意味著它們對所有人都是觸手可及的!一個擁有 300 億引數的模型僅僅載入到記憶體中(還未開始使用)就可能需要超過 66GB 的 RAM,而並非社群中的每個人都有能力配備這樣的硬體。

這就是量化技術的用武之地!量化是一種特殊的技術,它透過改變模型引數的精度來減少模型的大小。

量化是什麼意思呢?

在計算機中,數字是以一定的精度儲存的,例如 float32float16int8 等。精度不僅指明瞭數字型別(是浮點數還是整數),同時也指出了數字儲存所佔用的記憶體大小:例如 float32 是在計算機上以 32 位儲存的浮點數。要了解更深入的解釋,請參見這個 連結。因此,資料的精度越高,它所佔用的實體記憶體就越多,這是因為需要更多的位來儲存這些資料。

因此,如果你降低精度,就會減少模型引數在儲存上佔用的記憶體,進而減小模型的大小!這也意味著你降低了計算的實際精度,可能會降低模型的效能。然而,我們發現,在較大的模型上,這種效能下降實際上是 非常有限 的。

回到我們之前的例子中,一個含有 300 億引數的模型,在使用 float16 格式時需要不到 66GB 的記憶體。如果採用 8bit,記憶體需求將減半至 33GB;若使用 4bit 編碼,則只需大約 16GB,進一步降低了記憶體的要求,使得模型更易於部署和使用。

精度轉換有多種方法,涉及不同的 “轉換” 策略,每種策略都有其獨特的優勢和侷限。目前流行的轉換方法包括 bitsandbytesGPTQ, 和 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 能力。

相關文章