【#區(qū)塊鏈# #Hugging Face:2023開源LLM大爆發(fā),數(shù)據(jù)競賽已開啟#】
原文來源:新智元
圖片來源:由無界 AI生成
2023年的LLM開源社區(qū)都發(fā)生了什么?來自Hugging Face的研究員帶你回顧并重新認識開源LLM
2023年的大語言模型(LLM),讓幾乎所有人都燃起了熱情。
現(xiàn)在大多數(shù)人都知道LLM是什么,以及可以做什么。
人們討論著它的優(yōu)缺點,暢想著它的未來,
向往著真正的AGI,又有點擔憂自己的命運。
圍繞開源與閉源的公開辯論也吸引了廣泛的受眾。
2023年的LLM開源社區(qū)都發(fā)生了什么?
下面,讓我們跟隨Hugging Face的研究員Clémentine Fourrier一起,
回顧一下開源LLM這跌宕起伏的一年。
LLM的模型架構描述了具體實現(xiàn)和數(shù)學形狀。模型是所有參數(shù)的列表,以及參數(shù)如何與輸入交互。
目前,大多數(shù)高性能的LLM都是Transformer架構的變體。
LLM的訓練數(shù)據(jù)集,包含訓練模型所需的所有示例和文檔。
大多數(shù)情況下是文本數(shù)據(jù)(自然語言、編程語言、或者其他可表達為文本的結構化數(shù)據(jù))。
分詞器(tokenizer)定義如何將訓練數(shù)據(jù)集中的文本轉換為數(shù)字(因為模型本質上是一個數(shù)學函數(shù))。
文本被切分成稱為tokens的子單元(可以是單詞、子單詞或字符)。
分詞器的詞匯量通常在32k到200k之間,而數(shù)據(jù)集的大小通常以它包含的tokens數(shù)量來衡量,當今的數(shù)據(jù)集可以達到幾千億到幾萬億個tokens。
然后,使用超參數(shù)定義如何訓練模型——每次迭代,參數(shù)應該改變多少?模型的更新速度應該有多快?
搞定這些后,剩下的就只需要:大量的算力,以及訓練過程中進行監(jiān)控。
訓練的過程包括實例化架構(在硬件上創(chuàng)建矩陣),并使用超參數(shù)在訓練數(shù)據(jù)集上運行訓練算法。
最終得到的結果是一組模型權重,——大家討論的大模型就是這個東西。
這組權重可以用來推理,對新的輸入預測輸出、生成文本等。
上面訓練好的LLM也可以在之后通過微調(diào)(fine-tuning)來適應特定任務(尤其是對于開源模型)。
微調(diào)的過程是在不同的數(shù)據(jù)集(通常更專業(yè)、更小)上對模型進行額外的訓練步驟,以針對特定應用程序進行優(yōu)化。
比起從頭開始訓練一個大模型,微調(diào)的成本顯然低得多——這也是開源LLM受到大家歡迎的原因之一。
直到2022年初,機器學習的趨勢是模型越大,性能就越好。
而且似乎模型的大小在超過某個閾值之后,能力會得到飛躍——有兩個詞語用來描述這個現(xiàn)象:emergent abilities和scaling laws 。
2022年發(fā)布的預訓練開源模型大多遵循這種范式,下面舉幾個例子。
BLOOM(BigScience Large Open-science Open-access Multilingual Language Model)是BigScience發(fā)布的一系列模型,由Hugging Face與法國組織GENCI和IDRIS合作,涉及來自60個國家和250個機構的1000名研究人員。這些模型使用decoder-only transformers,并進行了微小的修改。
系列中最大的模型有176B參數(shù),使用350B的訓練數(shù)據(jù)集,包括46種人類語言和13種編程語言,是迄今為止最大的開源多語言模型。
OPT(Open Pre-trained Transformer)系列模型由Meta發(fā)布,遵循GPT-3論文的技巧(特定權重初始化、預歸一化),對注意力機制(交替密集和局部帶狀注意力層)進行了一些更改。
這個系列中最大的模型為175B,在180B的數(shù)據(jù)上進行訓練,數(shù)據(jù)主要來自書籍、社交、新聞、維基百科和互聯(lián)網(wǎng)上的其他信息。
OPT的性能與GPT-3相當,使用編碼優(yōu)化來降低計算密集度。
GLM-130B(通用語言模型)由清華大學和Zhipu.AI發(fā)布。它使用完整的transformer架構,并進行了一些更改(使用DeepNorm進行層后歸一化、旋轉嵌入)。
GLM-130B是在400B個中英文互聯(lián)網(wǎng)數(shù)據(jù)(The Pile、Wudao Corpora和其他中文語料庫)的標記上訓練的,它的性能也與GPT-3相當。
此外,還有一些更小或更專業(yè)的開源LLM,主要用于研究目的。
比如Meta發(fā)布的Galactica系列;EleutherAI發(fā)布的GPT-NeoX-20B等。
盡管看起來越大的模型效果越好,但運行起來也越昂貴。
在執(zhí)行推理時,模型需要加載到內(nèi)存中,而100B參數(shù)的模型通常需要220GB的內(nèi)存。
在2022年3月,DeepMind發(fā)表了一篇論文,研究了在給定計算預算下,用于訓練的數(shù)據(jù)量與模型參數(shù)的最佳比率是多少。
換句話說,如果你只有固定的一筆錢可以花在模型訓練上,那么模型大小和訓練數(shù)據(jù)量應該是多少?
作者發(fā)現(xiàn),總體而言,應該把更多的資源分配給訓練數(shù)據(jù)。
他們自己的例子是一個叫做Chinchilla的70B模型,使用1.4T的訓練數(shù)據(jù)。
2023年開始,一大波模型涌現(xiàn)出來,每個月、每周、甚至每天都會有新的模型發(fā)布:
2月的LLaMA(Meta)、4月的Pythia(Eleuther AI)、MPT(MosaicML)、 5月的X-GEN(Salesforce)和Falcon(TIIUAE)、7月的Llama 2(Meta)、9月的Qwen(阿里巴巴)和Mistral(Mistral.AI),11月的Yi(01-ai),12月的DeciLM(Deci)、Phi-2(微軟) 和SOLAR(Upstage)。
在Meta AI的LLaMA系列中,研究人員的目標是訓練一組不同大小的模型,能夠在給定的預算下具有最佳性能。
他們首次明確提出不僅要考慮訓練預算,還要考慮推理成本,從而在更小的模型大小上達到更高的性能(權衡是訓練計算效率)。
Llama 1系列中最大的模型是在1.4T數(shù)據(jù)上訓練的65B參數(shù)模型,而較小的模型(6 B和13B)是在1T數(shù)據(jù)上訓練的。
小型13B LLaMA模型在大多數(shù)基準測試中都優(yōu)于GPT-3,而最大的LLaMA模型到達了當時的SOTA。不過,LLaMA是以非商業(yè)許可發(fā)布的,限制了社區(qū)的應用。
之后,MosaicML發(fā)布了MPT模型,具有允許商業(yè)用途的許可證,以及訓練組合的細節(jié)。第一個MPT模型為7B ,隨后是6月份的30B版本,均使用1T英語和代碼數(shù)據(jù)進行訓練。
在此之前,模型的訓練數(shù)據(jù)是公開的,不過之后的模型就不再提供任何關于訓練的信息,——不過最起碼權重是開源的。
與2022年相比,2023年發(fā)布的幾乎所有預訓練模型都帶有預訓練版本和對話微調(diào)版本。
公眾越來越多地使用這些聊天模型,并進行各種評估,還可以通過聊天的方式對模型進行微調(diào)。
指令微調(diào)(IFT)使用指令數(shù)據(jù)集,其中包含一組查詢的提示和答案。這些數(shù)據(jù)集教會模型如何遵循指令,可以是人類的,也可以是LLM生成的。
使用LLM輸出合成數(shù)據(jù)集,是完成指令和聊天微調(diào)的方法之一,通常被稱為distillation ,表示從高性能模型中獲取知識,來訓練或微調(diào)較小的模型。
這兩種方法都相對容易實現(xiàn):只需要查找或生成相關數(shù)據(jù)集,然后使用與訓練時相同的技術微調(diào)模型。
來自人類反饋的強化學習 (RLHF) 是一種特定方法,旨在調(diào)整模型預測的內(nèi)容,與人類的喜好保持一致。
根據(jù)給定的提示,模型會生成幾個可能的答案,人類對這些答案進行排名,排名用于訓練所謂的偏好模型,然后使用偏好模型通過強化學習對語言模型進行微調(diào)。
這是一種成本高昂的方法,主要用于調(diào)整模型以實現(xiàn)安全目標。
人們之后開發(fā)了一種成本較低的變體,使用高質量的LLM對模型輸出進行排名,稱為來自AI反饋的強化學習 (RLAIF)。
直接偏好優(yōu)化 (DPO) 是RLHF的另一種變體,但不需要訓練和使用單獨的偏好模型。
DPO利用人類或AI給出的排名數(shù)據(jù)集,通過查看其原始策略和最佳策略之間的差異,來直接更新模型。
這使得優(yōu)化過程變得簡單很多,同時實現(xiàn)了差不多的最終性能。
在2023年初,已經(jīng)發(fā)布了一些用于教學或聊天微調(diào)的數(shù)據(jù)集。
比如在人類偏好方面,OpenAI的WebGPT數(shù)據(jù)集、Anthropic的HH-RLHF數(shù)據(jù)集和OpenAI的Summarize。
指令數(shù)據(jù)集的例子包括BigScience的Public Pool of Prompts、Google的FLAN 1和2、AllenAI的Natural Instructions、Self Instruct(由不同隸屬關系的研究人員生成自動指令的框架)、SuperNatural指令(微調(diào)數(shù)據(jù)的專家創(chuàng)建的指令基準)、Unnatural指令等。
今年1月,中國研究人員發(fā)布了人類ChatGPT指令語料庫 (HC3),包含各種問題的人類與模型答案。
3月,斯坦福大學開放了Alpaca模型,是第一個遵循指令的LLaMA模型 (7B),還包括相關的數(shù)據(jù)集(使用LLM生成的52K指令)。
LAION(一個非營利性開源實驗室)發(fā)布了開放指令通才(OIG)數(shù)據(jù)集,該數(shù)據(jù)集有43M條指令,既有數(shù)據(jù)增強創(chuàng)建,也有從其他預先存在的數(shù)據(jù)源編譯而來的指令。
同月,LMSYS組織(加州大學伯克利分校)發(fā)布了Vicuna,也是一個LLaMA微調(diào)(13B),這次使用的是聊天數(shù)據(jù)——用戶與ChatGPT之間的對話,由用戶自己在ShareGPT上公開分享。
4月,BAIR(伯克利人工智能研究實驗室)發(fā)布了Koala,一個聊天微調(diào)的LLaMA模型,使用了之前的幾個數(shù)據(jù)集(Alpaca、HH-RLHF、WebGPT、ShareGPT),
DataBricks發(fā)布了Dolly數(shù)據(jù)集,包含15K手動生成指令。
5月,清華大學發(fā)布了UltraChat,一個包含指令的1.5M對話數(shù)據(jù)集,以及UltraLLaMA,一個對該數(shù)據(jù)集的微調(diào)。
Microsoft隨后發(fā)布了GPT4-LLM數(shù)據(jù)集,用于使用GPT4生成指令,
6月,Microsoft研究分享了一種新方法Orca,通過使用大型模型的推理痕跡來構建指令數(shù)據(jù)集(解釋它們的分步推理),
——社區(qū)用這種方法創(chuàng)建了Open Orca數(shù)據(jù)集,有數(shù)百萬個條目, 并被用于微調(diào)許多模型(Llama、Mistral等)。
8月,中國非營利組織OpenBMB發(fā)布了UltraLM(LLaMA的高性能聊天微調(diào)),
9月,他們發(fā)布了相關的偏好數(shù)據(jù)集UltraFeedback,這是一個由GPT4比較的輸入反饋數(shù)據(jù)集(帶有注釋)。
另外,清華大學的一個學生團隊發(fā)布了OpenChat,一個使用新的RL微調(diào)策略的LLaMA微調(diào)模型。
10月,Hugging Face發(fā)布了Zephyr,這是一款在UltraChat和UltraFeedback上使用DPO和AIF的Mistral微調(diào),Lmsys發(fā)布了LMSYS-Chat-1M,是與25個LLM的真實用戶對話。
11月,NVIDIA發(fā)布了HelpSteer,一個對齊微調(diào)數(shù)據(jù)集,根據(jù)幾個標準提供提示、相關模型響應和所述答案的等級,而Microsoft Research發(fā)布了Orca-2模型,是一個在新的合成推理數(shù)據(jù)集上微調(diào)的Llama 2。
在典型的開源方式中,社區(qū)的里程碑之一是模型或數(shù)據(jù)合并。
模型合并是一種將不同模型的權重融合到單個模型中的方法,以將每個模型的各自優(yōu)勢組合在一個統(tǒng)一的單個模型中。
最簡單的方法之一,是對一組共享通用架構的模型的參數(shù)進行平均,——不過需要考慮更復雜的參數(shù)組合,例如確定哪些參數(shù)對給定任務的影響最大(加權平均),或者在合并時考慮模型之間的參數(shù)干擾(并列合并)。
這些技術允許任何人輕松生成模型組合,并且由于現(xiàn)在大多數(shù)模型都是同一架構的變體,因此變得特別容易。
這就是為什么一些 LLM 排行榜上的模型會有奇怪的名字(比如llama2-zephyr-orca-ultra——表示llama2和zephyr 模型的合并,在orca和ultra數(shù)據(jù)集上進行了微調(diào)) 。
有時,你可能沒有足夠的內(nèi)存加載整個模型,以對其進行微調(diào)。但事實上,微調(diào)時可以不需要使用整個模型。
采用參數(shù)高效微調(diào)(PEFT),首先固定住一部分的預訓練模型的參數(shù),然后在其上添加許多新參數(shù),稱為適配器。
然后,對任務進行微調(diào)的只是(輕量級)適配器權重,比原始模型要小得多。
性能良好的大模型在運行時需要大量的內(nèi)存,比如一個30B參數(shù)的模型可能需要超過66G的RAM才能加載,大多數(shù)個人開發(fā)者都未必擁有足夠的硬件資源。
一個解決方案就是量化,通過改變模型參數(shù)的精度來減小模型的大小。
在計算機中,數(shù)字以給定的精度(如float32、float16、int8等)存儲。
精度既指示數(shù)字類型(是浮點數(shù)還是整數(shù))又指示數(shù)字的存儲量:float32將浮點數(shù)存儲在32位的內(nèi)存空間中。精度越高,數(shù)字占用的物理內(nèi)存就越多。
因此,如果降低精度,則會減少每個模型參數(shù)占用的內(nèi)存,從而減小模型大小,這也意味著可以減少計算的實際精度。
而這種精度的損失帶來的性能下降,實際上非常有限。
從一種精度到另一種精度的方法有很多種,每種方案都有自己的優(yōu)點和缺點。常用的方法包括bitsandbytes、GPTQ和AWQ。
參考資料:
https://huggingface.co/blog/2023-in-llms
小編推薦下載
相關推薦
相關文章
更多>>資訊排行
同類軟件下載
Face 2 Face 拍照攝影
攀爬大競賽 體育競技
開啟者 旅游出行
已度 生活實用
51大數(shù)據(jù) 辦公效率
開源漫畫 購物優(yōu)惠
開源小說 購物優(yōu)惠
僵尸病毒爆發(fā) FPS射擊
face臉萌 拍照攝影
三二一大數(shù)據(jù) 購物優(yōu)惠
熱門標簽