當(dāng)前位置:區(qū)塊鏈 >區(qū)塊鏈 > Hugging Face:2023開源LLM大爆發(fā),數(shù)據(jù)競賽已開啟

Hugging Face:2023開源LLM大爆發(fā),數(shù)據(jù)競賽已開啟

更新時間:2023-12-31 16:01:15 | 作者:佚名
原文來源:新智元 圖片來源:由無界AI生成 2023年的LLM開源社區(qū)都發(fā)生了什么?來自HuggingFace的研究員帶你回顧并重新認(rèn)識開源LLM 2023年的大語言模型(LLM),讓幾乎所有人都燃起了熱情。 現(xiàn)在大多數(shù)人都知道LLM是什么,以及可以做什么。 人們討論著它的優(yōu)缺點(diǎn),暢想著它的未來, 向往著真正的AGI,又有點(diǎn)擔(dān)憂自己的命運(yùn)。 圍繞開源與閉源...

原文來源:新智元

圖片來源:由無界 AI生成

2023年的LLM開源社區(qū)都發(fā)生了什么?來自Hugging Face的研究員帶你回顧并重新認(rèn)識開源LLM

2023年的大語言模型(LLM),讓幾乎所有人都燃起了熱情。

現(xiàn)在大多數(shù)人都知道LLM是什么,以及可以做什么。

人們討論著它的優(yōu)缺點(diǎn),暢想著它的未來,

向往著真正的AGI,又有點(diǎn)擔(dān)憂自己的命運(yùn)。

圍繞開源與閉源的公開辯論也吸引了廣泛的受眾。

2023年的LLM開源社區(qū)都發(fā)生了什么?

下面,讓我們跟隨Hugging Face的研究員Clémentine Fourrier一起,

回顧一下開源LLM這跌宕起伏的一年。

如何訓(xùn)練大語言模型?

LLM的模型架構(gòu)描述了具體實(shí)現(xiàn)和數(shù)學(xué)形狀。模型是所有參數(shù)的列表,以及參數(shù)如何與輸入交互。

目前,大多數(shù)高性能的LLM都是Transformer架構(gòu)的變體。

LLM的訓(xùn)練數(shù)據(jù)集,包含訓(xùn)練模型所需的所有示例和文檔。

大多數(shù)情況下是文本數(shù)據(jù)(自然語言、編程語言、或者其他可表達(dá)為文本的結(jié)構(gòu)化數(shù)據(jù))。

分詞器(tokenizer)定義如何將訓(xùn)練數(shù)據(jù)集中的文本轉(zhuǎn)換為數(shù)字(因?yàn)槟P捅举|(zhì)上是一個數(shù)學(xué)函數(shù))。

文本被切分成稱為tokens的子單元(可以是單詞、子單詞或字符)。

分詞器的詞匯量通常在32k到200k之間,而數(shù)據(jù)集的大小通常以它包含的tokens數(shù)量來衡量,當(dāng)今的數(shù)據(jù)集可以達(dá)到幾千億到幾萬億個tokens。

然后,使用超參數(shù)定義如何訓(xùn)練模型——每次迭代,參數(shù)應(yīng)該改變多少?模型的更新速度應(yīng)該有多快?

搞定這些后,剩下的就只需要:大量的算力,以及訓(xùn)練過程中進(jìn)行監(jiān)控。

訓(xùn)練的過程包括實(shí)例化架構(gòu)(在硬件上創(chuàng)建矩陣),并使用超參數(shù)在訓(xùn)練數(shù)據(jù)集上運(yùn)行訓(xùn)練算法。

最終得到的結(jié)果是一組模型權(quán)重,——大家討論的大模型就是這個東西。

這組權(quán)重可以用來推理,對新的輸入預(yù)測輸出、生成文本等。

上面訓(xùn)練好的LLM也可以在之后通過微調(diào)(fine-tuning)來適應(yīng)特定任務(wù)(尤其是對于開源模型)。

微調(diào)的過程是在不同的數(shù)據(jù)集(通常更專業(yè)、更?。┥蠈δP瓦M(jìn)行額外的訓(xùn)練步驟,以針對特定應(yīng)用程序進(jìn)行優(yōu)化。

比起從頭開始訓(xùn)練一個大模型,微調(diào)的成本顯然低得多——這也是開源LLM受到大家歡迎的原因之一。

從規(guī)模競賽到數(shù)據(jù)競賽

直到2022年初,機(jī)器學(xué)習(xí)的趨勢是模型越大,性能就越好。

而且似乎模型的大小在超過某個閾值之后,能力會得到飛躍——有兩個詞語用來描述這個現(xiàn)象:emergent abilities和scaling laws 。

2022年發(fā)布的預(yù)訓(xùn)練開源模型大多遵循這種范式,下面舉幾個例子。

BLOOM(BigScience Large Open-science Open-access Multilingual Language Model)是BigScience發(fā)布的一系列模型,由Hugging Face與法國組織GENCI和IDRIS合作,涉及來自60個國家和250個機(jī)構(gòu)的1000名研究人員。這些模型使用decoder-only transformers,并進(jìn)行了微小的修改。

系列中最大的模型有176B參數(shù),使用350B的訓(xùn)練數(shù)據(jù)集,包括46種人類語言和13種編程語言,是迄今為止最大的開源多語言模型。

OPT(Open Pre-trained Transformer)系列模型由Meta發(fā)布,遵循GPT-3論文的技巧(特定權(quán)重初始化、預(yù)歸一化),對注意力機(jī)制(交替密集和局部帶狀注意力層)進(jìn)行了一些更改。

這個系列中最大的模型為175B,在180B的數(shù)據(jù)上進(jìn)行訓(xùn)練,數(shù)據(jù)主要來自書籍、社交、新聞、維基百科和互聯(lián)網(wǎng)上的其他信息。

OPT的性能與GPT-3相當(dāng),使用編碼優(yōu)化來降低計算密集度。

GLM-130B(通用語言模型)由清華大學(xué)和Zhipu.AI發(fā)布。它使用完整的transformer架構(gòu),并進(jìn)行了一些更改(使用DeepNorm進(jìn)行層后歸一化、旋轉(zhuǎn)嵌入)。

GLM-130B是在400B個中英文互聯(lián)網(wǎng)數(shù)據(jù)(The Pile、Wudao Corpora和其他中文語料庫)的標(biāo)記上訓(xùn)練的,它的性能也與GPT-3相當(dāng)。

此外,還有一些更小或更專業(yè)的開源LLM,主要用于研究目的。

比如Meta發(fā)布的Galactica系列;EleutherAI發(fā)布的GPT-NeoX-20B等。

盡管看起來越大的模型效果越好,但運(yùn)行起來也越昂貴。

在執(zhí)行推理時,模型需要加載到內(nèi)存中,而100B參數(shù)的模型通常需要220GB的內(nèi)存。

在2022年3月,DeepMind發(fā)表了一篇論文,研究了在給定計算預(yù)算下,用于訓(xùn)練的數(shù)據(jù)量與模型參數(shù)的最佳比率是多少。

換句話說,如果你只有固定的一筆錢可以花在模型訓(xùn)練上,那么模型大小和訓(xùn)練數(shù)據(jù)量應(yīng)該是多少?

作者發(fā)現(xiàn),總體而言,應(yīng)該把更多的資源分配給訓(xùn)練數(shù)據(jù)。

他們自己的例子是一個叫做Chinchilla的70B模型,使用1.4T的訓(xùn)練數(shù)據(jù)。

2023的開源LLM

模型爆發(fā)

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系列中,研究人員的目標(biāo)是訓(xùn)練一組不同大小的模型,能夠在給定的預(yù)算下具有最佳性能。

他們首次明確提出不僅要考慮訓(xùn)練預(yù)算,還要考慮推理成本,從而在更小的模型大小上達(dá)到更高的性能(權(quán)衡是訓(xùn)練計算效率)。

Llama 1系列中最大的模型是在1.4T數(shù)據(jù)上訓(xùn)練的65B參數(shù)模型,而較小的模型(6 B和13B)是在1T數(shù)據(jù)上訓(xùn)練的。

小型13B LLaMA模型在大多數(shù)基準(zhǔn)測試中都優(yōu)于GPT-3,而最大的LLaMA模型到達(dá)了當(dāng)時的SOTA。不過,LLaMA是以非商業(yè)許可發(fā)布的,限制了社區(qū)的應(yīng)用。

之后,MosaicML發(fā)布了MPT模型,具有允許商業(yè)用途的許可證,以及訓(xùn)練組合的細(xì)節(jié)。第一個MPT模型為7B ,隨后是6月份的30B版本,均使用1T英語和代碼數(shù)據(jù)進(jìn)行訓(xùn)練。

在此之前,模型的訓(xùn)練數(shù)據(jù)是公開的,不過之后的模型就不再提供任何關(guān)于訓(xùn)練的信息,——不過最起碼權(quán)重是開源的。

無處不在的對話模型

與2022年相比,2023年發(fā)布的幾乎所有預(yù)訓(xùn)練模型都帶有預(yù)訓(xùn)練版本和對話微調(diào)版本。

公眾越來越多地使用這些聊天模型,并進(jìn)行各種評估,還可以通過聊天的方式對模型進(jìn)行微調(diào)。

指令微調(diào)(IFT)使用指令數(shù)據(jù)集,其中包含一組查詢的提示和答案。這些數(shù)據(jù)集教會模型如何遵循指令,可以是人類的,也可以是LLM生成的。

使用LLM輸出合成數(shù)據(jù)集,是完成指令和聊天微調(diào)的方法之一,通常被稱為distillation ,表示從高性能模型中獲取知識,來訓(xùn)練或微調(diào)較小的模型。

這兩種方法都相對容易實(shí)現(xiàn):只需要查找或生成相關(guān)數(shù)據(jù)集,然后使用與訓(xùn)練時相同的技術(shù)微調(diào)模型。

來自人類反饋的強(qiáng)化學(xué)習(xí) (RLHF) 是一種特定方法,旨在調(diào)整模型預(yù)測的內(nèi)容,與人類的喜好保持一致。

根據(jù)給定的提示,模型會生成幾個可能的答案,人類對這些答案進(jìn)行排名,排名用于訓(xùn)練所謂的偏好模型,然后使用偏好模型通過強(qiáng)化學(xué)習(xí)對語言模型進(jìn)行微調(diào)。

這是一種成本高昂的方法,主要用于調(diào)整模型以實(shí)現(xiàn)安全目標(biāo)。

人們之后開發(fā)了一種成本較低的變體,使用高質(zhì)量的LLM對模型輸出進(jìn)行排名,稱為來自AI反饋的強(qiáng)化學(xué)習(xí) (RLAIF)。

直接偏好優(yōu)化 (DPO) 是RLHF的另一種變體,但不需要訓(xùn)練和使用單獨(dú)的偏好模型。

DPO利用人類或AI給出的排名數(shù)據(jù)集,通過查看其原始策略和最佳策略之間的差異,來直接更新模型。

這使得優(yōu)化過程變得簡單很多,同時實(shí)現(xiàn)了差不多的最終性能。

社區(qū)在做什么?

在2023年初,已經(jīng)發(fā)布了一些用于教學(xué)或聊天微調(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(由不同隸屬關(guān)系的研究人員生成自動指令的框架)、SuperNatural指令(微調(diào)數(shù)據(jù)的專家創(chuàng)建的指令基準(zhǔn))、Unnatural指令等。

今年1月,中國研究人員發(fā)布了人類ChatGPT指令語料庫 (HC3),包含各種問題的人類與模型答案。

3月,斯坦福大學(xué)開放了Alpaca模型,是第一個遵循指令的LLaMA模型 (7B),還包括相關(guān)的數(shù)據(jù)集(使用LLM生成的52K指令)。

LAION(一個非營利性開源實(shí)驗(yàn)室)發(fā)布了開放指令通才(OIG)數(shù)據(jù)集,該數(shù)據(jù)集有43M條指令,既有數(shù)據(jù)增強(qiáng)創(chuàng)建,也有從其他預(yù)先存在的數(shù)據(jù)源編譯而來的指令。

同月,LMSYS組織(加州大學(xué)伯克利分校)發(fā)布了Vicuna,也是一個LLaMA微調(diào)(13B),這次使用的是聊天數(shù)據(jù)——用戶與ChatGPT之間的對話,由用戶自己在ShareGPT上公開分享。

4月,BAIR(伯克利人工智能研究實(shí)驗(yàn)室)發(fā)布了Koala,一個聊天微調(diào)的LLaMA模型,使用了之前的幾個數(shù)據(jù)集(Alpaca、HH-RLHF、WebGPT、ShareGPT),

DataBricks發(fā)布了Dolly數(shù)據(jù)集,包含15K手動生成指令。

5月,清華大學(xué)發(fā)布了UltraChat,一個包含指令的1.5M對話數(shù)據(jù)集,以及UltraLLaMA,一個對該數(shù)據(jù)集的微調(diào)。

Microsoft隨后發(fā)布了GPT4-LLM數(shù)據(jù)集,用于使用GPT4生成指令,

6月,Microsoft研究分享了一種新方法Orca,通過使用大型模型的推理痕跡來構(gòu)建指令數(shù)據(jù)集(解釋它們的分步推理),

——社區(qū)用這種方法創(chuàng)建了Open Orca數(shù)據(jù)集,有數(shù)百萬個條目, 并被用于微調(diào)許多模型(Llama、Mistral等)。

8月,中國非營利組織OpenBMB發(fā)布了UltraLM(LLaMA的高性能聊天微調(diào)),

9月,他們發(fā)布了相關(guān)的偏好數(shù)據(jù)集UltraFeedback,這是一個由GPT4比較的輸入反饋數(shù)據(jù)集(帶有注釋)。

另外,清華大學(xué)的一個學(xué)生團(tuán)隊(duì)發(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的真實(shí)用戶對話。

11月,NVIDIA發(fā)布了HelpSteer,一個對齊微調(diào)數(shù)據(jù)集,根據(jù)幾個標(biāo)準(zhǔn)提供提示、相關(guān)模型響應(yīng)和所述答案的等級,而Microsoft Research發(fā)布了Orca-2模型,是一個在新的合成推理數(shù)據(jù)集上微調(diào)的Llama 2。

開發(fā)方式

合并:極致定制

在典型的開源方式中,社區(qū)的里程碑之一是模型或數(shù)據(jù)合并。

模型合并是一種將不同模型的權(quán)重融合到單個模型中的方法,以將每個模型的各自優(yōu)勢組合在一個統(tǒng)一的單個模型中。

最簡單的方法之一,是對一組共享通用架構(gòu)的模型的參數(shù)進(jìn)行平均,——不過需要考慮更復(fù)雜的參數(shù)組合,例如確定哪些參數(shù)對給定任務(wù)的影響最大(加權(quán)平均),或者在合并時考慮模型之間的參數(shù)干擾(并列合并)。

這些技術(shù)允許任何人輕松生成模型組合,并且由于現(xiàn)在大多數(shù)模型都是同一架構(gòu)的變體,因此變得特別容易。

這就是為什么一些 LLM 排行榜上的模型會有奇怪的名字(比如llama2-zephyr-orca-ultra——表示llama2和zephyr 模型的合并,在orca和ultra數(shù)據(jù)集上進(jìn)行了微調(diào)) 。

PEFT:指尖的個性化

有時,你可能沒有足夠的內(nèi)存加載整個模型,以對其進(jìn)行微調(diào)。但事實(shí)上,微調(diào)時可以不需要使用整個模型。

采用參數(shù)高效微調(diào)(PEFT),首先固定住一部分的預(yù)訓(xùn)練模型的參數(shù),然后在其上添加許多新參數(shù),稱為適配器。

然后,對任務(wù)進(jìn)行微調(diào)的只是(輕量級)適配器權(quán)重,比原始模型要小得多。

量化:模型無處不在

性能良好的大模型在運(yùn)行時需要大量的內(nèi)存,比如一個30B參數(shù)的模型可能需要超過66G的RAM才能加載,大多數(shù)個人開發(fā)者都未必?fù)碛凶銐虻挠布Y源。

一個解決方案就是量化,通過改變模型參數(shù)的精度來減小模型的大小。

在計算機(jī)中,數(shù)字以給定的精度(如float32、float16、int8等)存儲。

精度既指示數(shù)字類型(是浮點(diǎn)數(shù)還是整數(shù))又指示數(shù)字的存儲量:float32將浮點(diǎn)數(shù)存儲在32位的內(nèi)存空間中。精度越高,數(shù)字占用的物理內(nèi)存就越多。

因此,如果降低精度,則會減少每個模型參數(shù)占用的內(nèi)存,從而減小模型大小,這也意味著可以減少計算的實(shí)際精度。

而這種精度的損失帶來的性能下降,實(shí)際上非常有限。

從一種精度到另一種精度的方法有很多種,每種方案都有自己的優(yōu)點(diǎn)和缺點(diǎn)。常用的方法包括bitsandbytes、GPTQ和AWQ。

參考資料:

https://huggingface.co/blog/2023-in-llms

本站提醒:投資有風(fēng)險,入市須謹(jǐn)慎,本內(nèi)容不作為投資理財建議。