2023,開放式大型語言模型之年
2023年,公眾對大型語言模型(LLMs)的興趣激增,現在大多數人已經瞭解它們是什麼以及能做什麼,關於開放與閉源的公開辯論也觸及了廣泛的受眾。在Hugging Face,我們對開放模型抱有極大的興趣,因為它們允許研究可復現,賦能社群參與AI模型的開發,便於更輕鬆地審查模型偏見和侷限性,並透過優先複用檢查點來降低我們領域整體的碳影響(以及許多其他好處)。
所以,讓我們回顧一下開放式LLM的這一年!
為了控制本文篇幅,我們不探討程式碼模型。
🍜 預訓練大型語言模型配方
首先,如何獲得一個大型語言模型?(如果您已經知道,請隨意跳過本節!)
模型**架構**(其程式碼)描述了其具體的實現和數學形態:它是一個包含所有引數及其與輸入互動方式的列表。目前,大多數高效能LLM都是“僅解碼器”Transformer架構的變體(更多細節請參閱原始Transformer論文)。
**訓練資料集**包含了模型訓練(即引數學習)所用的所有示例和文件,因此,也包含了所學到的特定模式。大多數情況下,這些文件包含文字,可以是自然語言(例如:法語、英語、中文)、程式語言(例如:Python、C),或任何可以用文字表達的結構化資料(例如:markdown或latex中的表格、方程等)。
**分詞器(tokenizer)**定義瞭如何將訓練資料集中的文字轉換為數字(因為模型是一個數學函式,需要數字作為輸入)。分詞透過將文字轉換為稱為“標記”(token)的子單元來完成(根據分詞方法,這些子單元可以是單詞、子詞或字元)。分詞器的詞彙量表示它知道多少種不同的標記,通常在3.2萬到20萬之間。資料集的大小通常以其包含的**標記數量**來衡量,一旦這些文字被分割成一系列獨立的“原子”單元,這些標記數量現在從數千億到數萬億不等!
**訓練超引數**隨後定義了模型的訓練方式。為了適應每個新示例,引數應該改變多少?模型應該多快進行更新?
一旦這些引數被選中,您只需要1) 大量的計算能力來訓練模型,2) 有能力(且友善)的人員來執行和監控訓練。訓練本身包括例項化架構(在用於訓練的硬體上建立矩陣)並使用上述超引數在訓練資料集上執行訓練演算法。結果是一組模型**權重**。這些是學習後的模型引數,也是大多數人討論開放預訓練模型訪問時所指的。這些權重隨後可以用於**推理**,即對新輸入進行預測,例如生成文字。
預訓練的LLM在預訓練後也可以針對特定任務進行專門化或調整,尤其是在權重公開發布的情況下。它們透過稱為**微調**的過程作為用例和應用程式的起點。微調涉及在模型上應用額外的訓練步驟,使用不同(通常更專業和更小)的資料集來最佳化它以適應特定應用。儘管此步驟需要計算能力,但其成本通常遠低於從頭開始訓練模型,無論是經濟上還是環境上。這是高質量開源預訓練模型非常有吸引力的原因之一,因為即使從業者只擁有有限的計算預算,社群也可以免費使用和在此基礎上進行開發。
🗝️ 2022,從規模競賽到資料競賽
2023年之前,社群有哪些開放模型可用?
直到2022年初,機器學習的趨勢是模型越大(即引數越多),其效能越好。特別是,模型似乎在超過特定規模閾值時能力會躍升,這兩個概念被稱為“湧現能力”和“縮放定律”。2022年釋出的預訓練開源模型系列大多遵循這一正規化。
BLOOM(BigScience大型開放科學開放獲取多語言語言模型)BLOOM 是由BigScience釋出的模型家族,BigScience是一個由Hugging Face協調,與法國組織GENCI和IDRIS合作,彙集了來自60個國家250個機構的1000名研究人員的合作專案。這些模型使用僅解碼器Transformer,並進行了少量修改(嵌入後歸一化[^1]和ALiBi位置嵌入[^2])。該家族中最大的模型是一個擁有176B引數的模型,在46種人類語言和13種程式語言的350B多語言資料上進行了訓練。大部分訓練資料已釋出,其來源、管理和處理的詳細資訊也已公佈。它是迄今為止最大的開源大規模多語言模型。
OPT(Open Pre-trained Transformer)OPT 模型家族由Meta釋出。這些模型採用僅解碼器Transformer架構,遵循GPT-3論文的技巧(特定的權重初始化、預歸一化),並對注意力機制進行了一些改動(交替使用密集和區域性帶狀注意力層)。該家族中最大的模型是一個擁有175B引數的模型,在180B標記的資料上進行訓練,資料主要來自公共來源(書籍、透過Reddit獲取的社交資料、新聞、維基百科和其他各種網際網路來源)。該模型家族的效能與GPT-3模型相當,並使用程式碼最佳化使其計算密集度更低。
GLM-130B (通用語言模型) GLM-130B 由清華大學和智譜AI釋出。它採用完整的 Transformer 架構,並進行了一些修改(使用 DeepNorm 的層後歸一化、旋轉嵌入)。這個 130B 引數的模型在 400B 英文和中文網際網路資料(The Pile, Wudao Corpora 和其他中文語料庫)上進行了訓練。其效能也與 GPT-3 模型相當。
更小或更專業的開放式LLM 也有更小的開源模型釋出,主要用於研究目的:Meta 釋出了 Galactica 系列,LLM 最多 120B 引數,在 106B 科學文獻標記上預訓練;EleutherAI 釋出了 GPT-NeoX-20B 模型,這是一個完全開源(包括架構、權重、資料)的解碼器 Transformer 模型,在 500B 標記上訓練(使用 RoPE 和對注意力和初始化的一些修改),為科學研究提供了一個完整的工件。
這些龐大的模型令人興奮,但執行成本也十分高昂!進行推理(從模型計算預測結果)時,模型需要載入到記憶體中,而一個100B引數的模型通常需要220GB記憶體才能載入(我們將在下文解釋此過程),這非常龐大,大多陣列織和從業者都無法承受!
然而,在2022年3月,DeepMind發表了一篇新論文,研究了在給定計算預算下,令牌與模型引數的最佳比例。換句話說,如果您只有X金額的資金可用於模型訓練,那麼相應的模型和資料大小應該如何確定?作者發現,總體而言,對於LLMs的平均計算預算,模型應該更小,但要在更多的 (“多得多的”) 資料上進行訓練。他們自己的模型Chinchilla(非開源)是一個70B引數的模型(是上述模型大小的三分之一),但卻在1.4T令牌的資料上進行了訓練(資料量是其3到4倍)。它的效能與開放和閉源的更大模型相當或更優。
這種正規化轉變,雖然可能在封閉實驗室中早已為人所知,但卻在開放科學社群中掀起了軒然大波。
🌊 2023,開放釋出之年
小型大型語言模型的興起
2023年,解碼器風格的Transformer模型如雨後春筍般湧現,新的預訓練模型每月釋出,很快變成每週甚至每天都有:2月有Meta的LLaMA,4月有StabilityAI的StableLM和Eleuther AI的Pythia,5月有MosaicML的MPT,6月有Salesforce的X-GEN和TIIUAE的Falcon,7月有Meta的Llama 2,8月有StabilityAI的StableLM v2,9月有阿里巴巴的Qwen和Mistral.AI的Mistral,11月有01-ai的Yi,12月有Deci的DeciLM、Phi-2和Upstage的SOLAR。
所有這些釋出都:a) 包含了模型權重(在不同開放程度的許可證下),b) 在較小模型尺寸(3B到70B引數之間)上表現良好,因此,它們立即被社群採用。幾乎所有這些模型都使用瞭解碼器Transformer架構,並進行了各種調整(ALiBi或RoPE、RMS預歸一化、SwiGLU),以及對注意力函式的一些改變(Flash-Attention、GQA、滑動視窗)和不同的程式碼庫實現以最佳化訓練或推理速度。這些調整可能會在一定程度上影響效能和訓練速度;然而,由於所有架構都已與權重一起公開發布,因此核心區別仍然在於訓練資料和模型的許可。
此係列中的第一個模型家族是 Meta AI 釋出的 LLaMA 家族。研究人員的明確目標是訓練一組不同尺寸的模型,以在給定計算預算下達到最佳效能。這是首次,研究團隊明確決定不僅考慮訓練預算,還考慮推理成本(對於給定的效能目標,使用模型進行推理的成本是多少)。在此視角下,他們決定在更多資料上訓練更小的模型,並進行比通常更多的步驟,從而在更小的模型尺寸下獲得更高的效能(權衡是訓練計算效率)。Llama 1 家族中最大的模型是一個 65B 引數的模型,在 1.4T tokens 上進行訓練,而較小的模型(分別為 6B 和 13B 引數)在 1T tokens 上進行訓練。小型的 13B LLaMA 模型在大多數基準測試中超越了 GPT-3,而最大的 LLaMA 模型在釋出時達到了最先進水平。然而,其權重以非商業許可證釋出,限制了社群的採用。
Pythia 模型由開源非營利實驗室 Eleuther AI 釋出,是一系列不同大小的LLM,在完全公開的資料上進行訓練,旨在幫助研究人員理解LLM訓練的不同步驟。
幾個月後,MosaicML 釋出了 MPT 模型,其效能相近,但擁有允許商業使用的許可證,並詳細說明了其訓練混合。第一個 MPT 模型是一個 7B 模型,隨後在 6 月釋出了 30B 版本,兩者都在 1T 個英語和程式碼標記(使用來自 C4、CommonCrawl、The Stack、S2ORC 的資料)上進行了訓練。
MPT 模型釋出後不久,TIIUAE 又釋出了 7B 和 30B 的 Falcon 系列模型(Falcon 系列),這些模型在 1 到 1.5T 的英語和程式碼標記(RefinedWeb、Project Gutemberg、Reddit、StackOverflow、Github、arXiv、Wikipedia 等來源)上進行了訓練——在今年晚些時候,還發布了一個巨大的 180B 模型。Falcon 模型、資料和訓練過程在技術報告和隨後的研究論文中進行了詳細介紹。
繼承了 GPT-Neo-X 模型,StabilityAI 釋出了 StableLM-Base-Alpha 模型,這是一個小型(3B 和 7B)預訓練系列,使用了基於 ThePile 構建的 1.5T 實驗資料集,隨後是 v2 系列,其資料混合包括 RefinedWeb、RedPajama、ThePile 和未公開的內部資料集,最後是一個非常小的 3B 模型,即 StableLM-3B-4e1T,並附有詳細的技術報告。
之前的模型大部分資料是公開的,從那時起,隨後的釋出幾乎沒有提供任何關於訓練模型所用資料的資訊,其努力也無法復現——然而,它們透過釋出的權重為社群提供了起點。
夏初,Salesforce釋出了X-Gen 模型,這是一個7B引數的模型,在1.5T“自然語言和程式碼”標記上分多步訓練,遵循資料排程系統(並非所有資料同時引入模型)。
X-Gen 多少被 Meta 公司釋出的高度可見的全新 LLaMA-2 系列模型所掩蓋,該系列模型包含 7B 到 70B 的模型,在 2T 從“公開可用來源”獲取的 tokens 上進行訓練,擁有寬鬆的社群許可證,並透過人工偏好 (RLHF) 進行了廣泛的微調,即所謂的對齊過程。
幾個月後,新成立的 Mistral 創業公司釋出了其首個模型,即 Mistral-7B,該模型在數量未公開的“從開放網路提取”的資料上進行了訓練。2023 年底,模型釋出活動頻繁,Mistral 又釋出了第二個更大的模型(Mixtral 8x7B),Deci.AI 也釋出了第一個令人印象深刻的模型,名為 DeciLM,以及 Upstage 合併的更大模型 SOLAR,同樣在未公開的數量和來源的資料上進行訓練。所有這些模型都在排行榜和開放基準測試中穩步提升。
與此同時,2023 年底一個值得關注的事件是,中國訓練並公開發布的模型效能和數量都有所提升。兩個中英雙語模型系列釋出:阿里巴巴的 Qwen,模型引數從 7B 到 70B,在 2.4T 標記上訓練;以及 01-AI 的 Yi,模型引數從 6B 到 34B,在 3T 標記上訓練。這些模型的效能在 Open LLM 排行榜 等開放排行榜以及 Skill-Mix 等一些最難的基準測試中都領先於之前的模型。2023 年末另一個強勁的競爭者是來自 DeepSeek AI 的 DeepSeek 編碼模型,該模型從頭開始在 2T 標記上訓練,其中 87% 為程式碼,13% 為自然語言,涵蓋英語和中文(主要是一個程式碼模型)。
對話模型無處不在
與2022年相比,2023年釋出的所有預訓練模型幾乎都附帶了預訓練版本和對話微調版本,使用了幾種現有方法之一。雖然適應聊天設定的模型方法在2022年及之前就已經開發,但這些技術的廣泛採用在2023年真正興起,這強調了公眾對這些聊天模型的日益增長的使用,以及透過與它們聊天(“氛圍檢查”評估)對模型進行日益增長的人工評估。我們在這裡詳細介紹了最著名的一些將預訓練模型適應聊天的方法,但還存在許多變體!
**基於聊天的微調**是監督式微調的一種變體,其中帶註釋的資料是聊天資料(多輪對話式資料,很像您在社交媒體上會找到的那種),您可以使用它來微調您的模型。您使用與訓練模型時相同的技術:對於解碼器Transformer,您教模型逐個預測下一個單詞(稱為自迴歸方法)。
**指令微調**(IFT)採用相同的方法,但使用指令資料集,其中包含一系列查詢式提示和答案(如果需要,可選擇額外的輸入)。這些資料集教模型如何遵循指令,可以是人工生成或LLM生成的。使用大規模模型輸出合成數據集(由模型生成組成的資料集,例如,GPT-4的生成,無論是來自指令還是使用者與所述模型之間的互動)是實現指令和聊天微調的方法之一。這通常被稱為**蒸餾**,因為它涉及從高效能模型中獲取知識來訓練或微調較小的模型。
這兩種方法都相對容易實現:您只需要找到或生成相關資料集,然後使用與訓練時相同的技術微調您的模型。去年釋出了大量的指令資料集,提高了模型在對話式設定中的效能。有關此主題的更多資訊,您可以閱讀此處的入門部落格。然而,儘管模型有所改進,但它們仍然無法滿足人類的期望。
**從人類反饋中進行強化學習**(RLHF)是一種特定的方法,旨在使模型預測與人類最喜歡的(根據特定標準)內容對齊。它(在年初)是一種新的微調技術。給定一個提示,模型會生成幾個可能的答案;人類對這些答案進行排名;這些排名用於訓練一個偏好模型(它學習給出反映人類對答案偏好的分數);然後偏好模型用於使用強化學習微調語言模型。有關更詳細的資訊,請參閱這篇部落格文章、原始RLHF論文,或Anthropic關於RLHF的論文。這是一種成本高昂的方法(註釋/排名+訓練新模型+微調非常昂貴),主要用於將模型與安全目標對齊。這種方法的一種成本較低的變體已經開發出來,它使用高質量的LLM來對模型輸出進行排名,而不是人類:**從AI反饋中進行強化學習**(RLAIF)。
**直接偏好最佳化**(DPO)是RLHF的另一種變體,但不需要訓練和使用單獨的偏好模型——該方法需要相同的人工或AI排名資料集,但使用此資料透過檢視其原始策略(預測方式)與最優策略(將預測最佳排名答案)之間的差異來直接更新模型。換句話說,對齊的模型也是偏好模型,這使得最佳化過程更加簡單,同時提供看似等效的最終效能。
所以,回到我們(主要是)私營公司釋出的小型開放權重模型浪潮,其中許多都發布了經過微調的對應版本:MPT-7B 也提供了指令和聊天版本,Falcon 和 XGen 模型的指令微調版本在年底釋出,Llama-2、Qwen 和 Yi 釋出了聊天版本,DeciLM 釋出了指令版本。Llama-2 的釋出尤其值得關注,因為它在預訓練和微調模型中都強烈關注安全性。
社群怎麼樣了?
雖然聊天模型和指令微調模型通常是隨著新模型釋出而直接提供的,但社群和研究人員並未止步於此:在這些基礎模型提供的肥沃土壤上,一個廣泛而健康的模型微調社群蓬勃發展,討論自發地在Reddit、Discord、Hugging Face Hub和Twitter上進行。社群模型釋出頻繁,同時伴隨著新的有趣資料集的建立(也用於微調模型以確保其良好的效能和質量)。
2023 年初,一些用於指令/聊天微調的資料集已經發布。例如,對於人類偏好,OpenAI 的 WebGPT 資料集、Anthropic 的 HH-RLHF 資料集和 OpenAI 的 Summarize 在這方面是先驅。指令資料集的例子有 BigScience 的 Public Pool of Prompts、Google 的 FLAN 1 和 2、AllenAI 的 Natural Instructions、Self Instruct(一個由不同機構研究人員開發的自動生成指令的框架)、SuperNatural instructions(一個專家建立的指令基準,有時用作微調資料)、Unnatural instructions(特拉維夫大學和 Meta 自動生成的指令資料集)等等。
❄️ 2022/2023冬季:今年1月,由中國多所機構研究人員釋出的人類ChatGPT指令語料庫(HC3),其中包含人類與模型對各種問題的回答。3月充滿了釋出:斯坦福大學開放了Alpaca模型,這是第一個遵循指令的LLaMA模型(7B),以及相關的52K指令資料集,這些指令由LLM生成。LAION(一個非營利開源實驗室)釋出了開放指令通用模型(OIG)資料集,包含了43M條透過資料增強建立並從其他現有資料來源編譯的指令。同月,LMSYS org(加州大學伯克利分校)釋出了Vicuna,也是一個LLaMA微調模型(13B),這次是在聊天資料上:使用者與ChatGPT之間的對話,由使用者自己在ShareGPT上公開分享。Guanaco資料集,作為Alpaca資料集的擴充套件(增加了500K條多語言條目),也隨之釋出,以及相關的LLaMA-7B微調模型。
🌱 春季:4月,BAIR(伯克利人工智慧研究實驗室)釋出了Koala,一個聊天調優的LLaMA模型,使用了幾個先前的Guanaco資料集(Alpaca、HH-RLHF、WebGPT、ShareGPT),DataBricks釋出了Dolly資料集,這是一個由15K手動生成指令的偉大人類努力,以及相關的模型,一個Pythia微調模型。5月,清華大學釋出了UltraChat,一個包含指令的1.5M對話資料集,以及UltraLLaMA,一個在該資料集上微調的模型。然後微軟釋出了GPT4-LLM資料集/框架,用GPT4生成指令,6月,微軟研究部門分享了一種新方法,Orca,透過使用大型模型的推理軌跡(解釋其逐步推理)來構建指令資料集——它很快被社群(特別是Alignmentlab.ai)復現,他們建立了Open Orca資料集,數百萬條條目,然後用於微調許多模型(Llama、Mistral等)。在5月和6月,Camel-AI釋出了許多關於不同主題的指令或聊天資料集(每個領域超過20K個示例,物理、生物、化學等),這些資料集是用GPT4獲得的。同樣在6月,Airoboros框架被髮布,用於使用模型生成資料(遵循自指令方法)微調模型,同時還發布了許多指令資料集。
🌻夏季:8月,中國非營利組織OpenBMB釋出了UltraLM(LLaMA的高效能聊天微調版本),9月,他們釋出了相關的偏好資料集UltraFeedback,一個由GPT4進行比較(帶有註釋)的輸入反饋資料集。整個夏天,NousResearch這個集體釋出了幾個基於多個私有和公共指令資料集的微調版本(特別是Hermes和Capybara系列)。9月,清華大學的學生團隊釋出了OpenChat,一個使用新RL微調策略的LLaMA微調版本,英特爾釋出了Orca風格的DPO資料集。
🍂 秋季:10 月,Hugging Face 釋出了 Zephyr,這是一個使用 UltraChat 和 UltraFeedback 上的 DPO 和 AIF 的 Mistral 微調版本,社群成員釋出了 OpenHermes 2,一個在 90 萬條來自網路或透過 Axolotl 生成的條目上微調的 Mistral-7B 模型。Lmsys 釋出了 LMSYS-Chat-1M,包含與 25 個 LLM 的真實使用者對話。11 月,OpenBuddy 釋出了 OpenBuddy-Zephyr,一個在多輪對話資料上微調的 Zephyr 模型,Argilla 釋出了 Notus,一個 Zephyr 的 DPO 微調版本。NVIDIA 釋出了 HelpSteer,一個對齊微調資料集,提供提示、相關的模型響應以及對這些答案在多個標準上的評分,而微軟研究院釋出了 Orca-2 模型,一個在新的合成推理資料集上微調的 Llama 2 模型,以及 Intel 的 Neural Chat,一個在 Orca 和 DPO 上微調的 Mistral 模型。12 月,伯克利釋出了 Starling,一個 Open-Chat 的 RLAIF 微調版本,以及相關的 Nectar 資料集,包含 20 萬條比較資料。
正如我們所見,今年的整個發展都依賴於透過使用高質量的預訓練LLM建立新的資料集,以及社群釋出的所有開放模型,使得該領域突飛猛進!如果您現在在模型名稱中看到這些名稱之一,您就能大致瞭解它的來源了 🤗
注意:一些更專業的資料集(例如 MetaMath 或 MathInstruct 數學問題微調資料集,Evol-Instruct,數學和程式碼指令,CodeAlpaca 和 CodeCapybara 程式碼指令)也已釋出,但我們在此不詳細介紹它們,儘管它們也已用於提高模型在特定任務上的效能。您還可以檢視 awesome instructions dataset 以獲取其他相關資料集的彙編。
民主化訪問
注意:還湧現了許多工具來支援更初級使用者的推理和部署,例如 llama.cpp、ollama、text-generation-inference、vllm 等。它們超出了本文件的範圍。
模型合併:極致定製
以典型的開源方式,社群的一個里程碑是模型/資料合併。隨著每一次合併/提交,跟蹤所用資料(因為許多已釋出的資料集是其他資料集的彙編)和模型的歷史可能會變得更加困難,因為高效能模型是相似模型經過多次微調的版本(參閱 Mistral 的“子模型樹”此處)。在本摘要中,我們還沒有時間討論這種令人驚歎的技術,所以讓我們最後花幾句話來談談它。
那麼,合併模型意味著什麼呢?
**模型合併**是一種將不同模型的權重融合到單個模型中的方法,目的是(理想情況下)將每個模型各自的優勢組合到一個統一的單個模型中。存在一些技術可以實現這一點,這些技術已得到擴充套件,並且主要在社群論壇中釋出,這是一個引人注目的案例,充分體現了實踐者、研究人員和業餘愛好者社群在全球範圍內進行的完全去中心化的研究。其中最簡單的已釋出方法是平均一組共享共同架構的模型的引數(示例 1,示例 2),但存在更復雜的引數組合,例如確定在給定任務中每個模型中最具影響力的引數(加權平均),或者在合併時考慮模型之間的引數干擾以選擇保留哪些引數(Ties merging)。有關文獻的良好概述,您可以檢視這個精彩論文集!
這些技術使得任何人都可以輕鬆生成模型的組合,並且由於現在大多數模型都是相同架構的變體,因此這變得特別容易。這就是為什麼提交給開放LLM排行榜的一些模型具有諸如llama2-zephyr-orca-ultra
之類的名稱。這個特殊的例子很可能是llama2
和zephyr
模型的合併,並在orca和ultra資料集上進行了微調。通常,更多細節可以在Hugging Face hub上的相應模型卡中找到。
PEFT:指尖上的個性化
有時,您可能希望進行更受控的個性化設定,但卻沒有足夠的記憶體來將整個模型載入到記憶體中進行微調。您知道在微調時不需要使用整個模型嗎?
您可能希望使用所謂的**引數高效微調**(PEFT)。這項技術首先凍結您感興趣的預訓練模型的引數,然後在其之上新增一些新的引數,這些引數稱為介面卡。您隨後在任務上微調的只有(輕量級的)介面卡權重,它們比原始模型小得多。然後您只需要共享您的小介面卡權重(和基礎模型)!您可以在這裡找到一些有趣的PEFT方法列表。
量化:模型隨處執行
我們已經看到,高效能模型現在有各種形狀和大小……但即便如此,它們也並非對所有人開放!一個30B引數的模型僅載入到記憶體中就可能需要超過66G的RAM(甚至還沒開始使用),而社群中並非每個人都擁有必要的硬體來實現這一點。
這就是量化發揮作用的地方!量化是一種特殊技術,透過改變模型引數的精度來減小模型大小。
這意味著什麼?
在計算機中,數字以給定的精度(例如 `float32`、`float16`、`int8` 等)儲存。精度指示了數字型別(是浮點數還是整數)以及數字儲存所需的記憶體量:`float32` 以 32 位儲存浮點數。有關更深入的解釋,請參見此連結。因此,精度越高,數字佔用的物理記憶體就越多,因為它將儲存在更多的位上。
所以,如果你降低精度,你就減少了每個模型引數在儲存中所佔用的記憶體,從而減小了模型大小!這也意味著你降低了……實際計算的精度,這可能會降低模型的效能。然而,我們發現對於較大的模型,這種效能下降實際上非常有限。
回到我們上面的例子,我們的30B引數模型如果採用`float16`精度,需要大約66G的RAM;如果採用`8bit`,只需要一半,即33G的RAM;如果採用`4bit`,甚至可以再減半,大約16G的RAM,這使得它更容易被訪問。
從一種精度轉換到另一種精度有許多方法,存在許多不同的“翻譯”方案,每種方案都有其優點和缺點。流行的方法包括 bitsandbytes、GPTQ 和 AWQ。一些使用者,例如 TheBloke,甚至將流行模型轉換為方便社群訪問。所有這些方法都非常新穎且仍在發展中,我們希望隨著時間的推移能看到更多進展。
接下來是什麼?
今年還沒結束呢!而最後的幾個月幾天幾小時已經帶來了意想不到的驚喜:一種新的架構能否最終超越簡單高效的Transformer?
新版本包括
- 專家混合模型
- Mixtral,該模型由 8 個子模型(Transformer 解碼器)組成,對於每個輸入,路由器會選擇 2 個最佳子模型並將其輸出求和。
- 幾種狀態空間模型(透過潛在空間將輸入對映到輸出的模型,根據任務可以表示為RNN或CNN,如果您想了解更多資訊,此資源在解釋狀態模型方面非常出色)
- Mamba,一個帶有選擇機制的狀態空間模型
- Striped Hyena,一個具有快速卷積核的狀態空間模型
現在說這些新方法是否會取代Transformer還為時過早,但狀態空間模型非常有前景!
總結
- 今年,各類參與者(大公司、初創企業、研究實驗室)釋出的開放模型數量激增,這使得社群以前所未有的速度開始實驗和探索。
- 模型釋出開放性有所波動,從今年早些時候的非常開放(資料集混合、權重、架構)到後期釋出對訓練資料隻字不提,因此無法重現。
- 開放模型從許多新的地方湧現,包括中國,有幾家新參與者在LLM領域嶄露頭角,成為強勁的競爭者。
- 個性化可能性達到了歷史新高,出現了新的微調策略(RLHF、介面卡、合併),這些策略才剛剛起步。
- 更小的模型尺寸和量化升級使得LLM真正地對更多人可用!
- 新的架構也出現了——它們最終會取代Transformer嗎?
各位,這就是全部內容了!我希望您喜歡今年的回顧,學到了一些東西,並且和我一樣對AI進步如此依賴開源和社群努力感到興奮!🤗
[^1]: 嵌入後歸一化是一種使學習更穩定的技巧。[^2]: ALiBi位置嵌入在序列中相距過遠的令牌透過模型連線時引入懲罰(而正常的位嵌入只會儲存關於序列中令牌順序和相對位置的資訊)。