自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)

發(fā)布于 2024-7-3 09:55
瀏覽
0收藏

這篇博客全面介紹了大型語(yǔ)言模型(LLMs)的構(gòu)建流程,從流行架構(gòu)的選擇到實(shí)際建模的每個(gè)關(guān)鍵步驟。文章首先探討了LLMs的模型架構(gòu),然后詳細(xì)闡述了數(shù)據(jù)準(zhǔn)備過(guò)程,包括數(shù)據(jù)的收集、清洗和去重,接著是關(guān)于如何進(jìn)行有效標(biāo)記化的討論。在模型構(gòu)建方面,博客詳細(xì)解釋了采用自監(jiān)督學(xué)習(xí)方法的預(yù)訓(xùn)練過(guò)程,以及對(duì)模型進(jìn)行指令微調(diào)和對(duì)齊的重要性。每個(gè)環(huán)節(jié)都被細(xì)致地講解,使讀者能夠深入理解LLMs的構(gòu)建和優(yōu)化過(guò)程。這篇博客為那些對(duì)LLMs工作方式感興趣的讀者提供了一個(gè)指導(dǎo)。

訓(xùn)練流程示意

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

1. 主流的LLM架構(gòu)

  • 常見(jiàn)架構(gòu)類型:最廣泛使用的LLM架構(gòu)包括僅編碼器、僅解碼器和編碼器-解碼器。
  • 基礎(chǔ)架構(gòu):大多數(shù)LLM架構(gòu)都基于Transformer(Transformer)作為構(gòu)建模塊。
  • Transformer架構(gòu)回顧:因此,我們也將在這里回顧Transformer架構(gòu)。

Transformer

  • 開(kāi)創(chuàng)性工作:Vaswani等人提出Transformer框架,具有里程碑的意義,最初設(shè)計(jì)用于使用GPU進(jìn)行有效的并行計(jì)算。
  • 核心機(jī)制:Transformer的核心是(自)注意力機(jī)制,相比遞歸和卷積機(jī)制,它能夠更有效地利用GPU捕捉長(zhǎng)期上下文信息。
  • Transformer語(yǔ)言模型架構(gòu):最初為機(jī)器翻譯提出的Transformer語(yǔ)言模型架構(gòu),包括一個(gè)編碼器和一個(gè)解碼器。編碼器由N=6個(gè)相同的Transformer層堆疊組成。每層有兩個(gè)子層:第一個(gè)是多頭自注意力層,另一個(gè)是簡(jiǎn)單的逐位置全連接前饋網(wǎng)絡(luò)。解碼器由6個(gè)相同的層堆疊組成。除了編碼器層中的兩個(gè)子層外,解碼器還有第三個(gè)子層,它對(duì)編碼器堆棧的輸出執(zhí)行多頭注意力。注意力函數(shù)可以描述為將查詢和一組鍵值對(duì)映射到一個(gè)輸出,其中查詢、鍵、值和輸出都是向量。輸出計(jì)算為值的加權(quán)和,其中每個(gè)值的權(quán)重由查詢與相應(yīng)鍵的兼容性函數(shù)計(jì)算得出。與執(zhí)行一個(gè)具有dmodel維鍵、值和查詢的單一注意力函數(shù)不同,發(fā)現(xiàn)將查詢、鍵和值h通過(guò)不同的學(xué)習(xí)線性投影分別映射到dk、dk和dv維是有益的。位置編碼被加入以融合有關(guān)序列中標(biāo)記的相對(duì)或絕對(duì)位置的信息。

僅編碼器架構(gòu)

  • 注意力層特點(diǎn):在這個(gè)家族的模型中,每個(gè)階段的注意力層都能訪問(wèn)初始句子中的所有詞語(yǔ)。
  • 預(yù)訓(xùn)練方法:這些模型的預(yù)訓(xùn)練通常包括以某種方式破壞給定句子(例如,通過(guò)掩蓋句子中隨機(jī)的單詞),然后讓模型找出或重構(gòu)初始句子。
  • 適用任務(wù):編碼器模型非常適合需要理解整個(gè)序列的任務(wù),如句子分類、命名實(shí)體識(shí)別和抽取式問(wèn)答。
  • 代表模型:一個(gè)突出的僅編碼器模型是BERT(Bidirectional Encoder Representations from Transformers。

僅解碼器架構(gòu)

  • 注意力層特點(diǎn):對(duì)于這些模型,每個(gè)階段的注意力層只能訪問(wèn)句子中該詞之前的詞語(yǔ)。這些模型有時(shí)也被稱為自回歸模型。
  • 預(yù)訓(xùn)練方法:這些模型的預(yù)訓(xùn)練通常被構(gòu)建為預(yù)測(cè)序列中的下一個(gè)詞(或標(biāo)記)。
  • 適用任務(wù):僅解碼器模型最適合涉及文本生成的任務(wù)。GPT模型是這一類別的突出例子。

編碼器-解碼器架構(gòu)

  • 架構(gòu)特點(diǎn):這些模型使用編碼器和解碼器,有時(shí)被稱為序列到序列模型。在每個(gè)階段,編碼器的注意力層可以訪問(wèn)初始句子中的所有詞語(yǔ),而解碼器的注意力層只訪問(wèn)輸入中給定詞之前的詞語(yǔ)。
  • 預(yù)訓(xùn)練目標(biāo):這些模型通常使用編碼器或解碼器模型的目標(biāo)進(jìn)行預(yù)訓(xùn)練,但通常涉及更復(fù)雜的內(nèi)容。例如,一些模型通過(guò)用單個(gè)掩碼特殊詞替換文本中的隨機(jī)文本跨度(可能包含幾個(gè)詞)進(jìn)行預(yù)訓(xùn)練,目標(biāo)是預(yù)測(cè)這個(gè)掩碼詞替換的文本。
  • 適用任務(wù):編碼器-解碼器模型最適合涉及基于給定輸入生成新句子的任務(wù),如摘要、翻譯或生成式問(wèn)答。

2. 數(shù)據(jù)清理

  • 數(shù)據(jù)清理的重要性:數(shù)據(jù)質(zhì)量對(duì)于基于其訓(xùn)練的語(yǔ)言模型的性能至關(guān)重要。數(shù)據(jù)清理技術(shù),如過(guò)濾和去重,已被證明對(duì)模型性能有很大影響。
  • 實(shí)例研究:作為一個(gè)例子,在Falcon40B中,Penedo等人展示了經(jīng)過(guò)適當(dāng)過(guò)濾和去重的網(wǎng)絡(luò)數(shù)據(jù)單獨(dú)可以構(gòu)建強(qiáng)大的模型,甚至在性能上顯著超過(guò)在The Pile上訓(xùn)練的最先進(jìn)模型。盡管進(jìn)行了廣泛過(guò)濾,他們?nèi)匀粡腃ommonCrawl獲取了五萬(wàn)億個(gè)標(biāo)記。他們還發(fā)布了來(lái)自REFINEDWEB數(shù)據(jù)集的6000億標(biāo)記的提取物,以及在此基礎(chǔ)上訓(xùn)練的1.3/7.5B參數(shù)語(yǔ)言模型。
  • 數(shù)據(jù)精煉過(guò)程示意

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:宏觀數(shù)據(jù)精煉的后續(xù)階段剔除了最初在CommonCrawl中的近90%文檔。

2.1 數(shù)據(jù)過(guò)濾

數(shù)據(jù)過(guò)濾的目的是提高訓(xùn)練數(shù)據(jù)的質(zhì)量和訓(xùn)練數(shù)據(jù)的有效性。常見(jiàn)的數(shù)據(jù)過(guò)濾技術(shù)包括:

  • 去除噪聲:指消除可能影響模型良好泛化能力的無(wú)關(guān)或噪聲數(shù)據(jù)。例如,可以考慮從訓(xùn)練數(shù)據(jù)中刪除錯(cuò)誤信息,以降低模型生成錯(cuò)誤回應(yīng)的可能性。質(zhì)量過(guò)濾的兩種主流方法包括:基于分類器的和基于啟發(fā)式的框架。
  • 處理離群值:識(shí)別并處理數(shù)據(jù)中的離群值或異常,以防止它們對(duì)模型產(chǎn)生不成比例的影響。
  • 處理數(shù)據(jù)不平衡:平衡數(shù)據(jù)集中類別或類別的分布,避免偏見(jiàn),確保公平代表性。這對(duì)于負(fù)責(zé)任的模型訓(xùn)練和評(píng)估特別有用。
  • 文本預(yù)處理:通過(guò)去除停用詞、標(biāo)點(diǎn)符號(hào)或可能不會(huì)顯著貢獻(xiàn)于模型學(xué)習(xí)的其他元素,來(lái)清潔和標(biāo)準(zhǔn)化文本數(shù)據(jù)。
  • 處理模糊性:解決或排除可能在訓(xùn)練過(guò)程中混淆模型的模糊或矛盾數(shù)據(jù)。這可以幫助模型提供更確定和可靠的答案。

2.2 數(shù)據(jù)去重

  • 去重的意義:去重指的是移除數(shù)據(jù)集中的重復(fù)實(shí)例或重復(fù)出現(xiàn)的相同數(shù)據(jù)的過(guò)程。重復(fù)的數(shù)據(jù)點(diǎn)可能會(huì)在模型訓(xùn)練過(guò)程中引入偏見(jiàn),并減少多樣性,因?yàn)槟P涂赡芏啻螐南嗤氖纠袑W(xué)習(xí),可能導(dǎo)致對(duì)那些特定實(shí)例的過(guò)擬合。
  • 改善泛化能力:去重改善了模型對(duì)新的、未見(jiàn)過(guò)的數(shù)據(jù)的泛化能力。
  • 大數(shù)據(jù)集中的重要性:在處理大型數(shù)據(jù)集時(shí),去重尤其重要,因?yàn)橹貜?fù)數(shù)據(jù)可能無(wú)意中放大了某些模式或特征的重要性。這在NLP任務(wù)中尤其相關(guān),因?yàn)槎鄻踊途哂写硇缘挠?xùn)練數(shù)據(jù)對(duì)于構(gòu)建健壯的語(yǔ)言模型至關(guān)重要。
  • 具體方法:具體的去重方法可能根據(jù)數(shù)據(jù)的性質(zhì)和特定語(yǔ)言模型的訓(xùn)練需求而有所不同。它可能涉及比較整個(gè)數(shù)據(jù)點(diǎn)或特定特征來(lái)識(shí)別和消除重復(fù)數(shù)據(jù)。在文檔層面,現(xiàn)有工作主要依賴于文檔之間高級(jí)特征(例如n-gram重疊)的重疊比率來(lái)檢測(cè)重復(fù)樣本。

3 分詞

  • 基本概念:分詞是將文本序列轉(zhuǎn)換成稱為標(biāo)記的更小部分的過(guò)程。盡管最簡(jiǎn)單的分詞工具僅基于空格將文本切分成標(biāo)記,但大多數(shù)分詞工具依賴于詞典。
  • 詞典外問(wèn)題(OOV):在這種情況下,詞典外(out-of-vocabulary,OOV)問(wèn)題是一個(gè)挑戰(zhàn),因?yàn)榉衷~器只能識(shí)別其詞典中的詞匯。
  • 增加詞典覆蓋率:為了增加詞典的覆蓋率,用于LLMs的流行分詞器基于子詞,這些子詞可以組合形成大量詞匯,包括訓(xùn)練數(shù)據(jù)中未出現(xiàn)的詞匯或不同語(yǔ)言的詞匯。
  • 流行分詞器簡(jiǎn)介:以下將描述三種流行的分詞器。

3.1 BytePairEncoding(字節(jié)對(duì)編碼)

  • 算法起源:BytePairEncoding最初是一種數(shù)據(jù)壓縮算法,使用字節(jié)級(jí)別的頻繁模式來(lái)壓縮數(shù)據(jù)。
  • 算法特點(diǎn):該算法主要嘗試保持頻繁出現(xiàn)的單詞的原始形式,并分解不常見(jiàn)的單詞。這種簡(jiǎn)單的范式使得詞匯表不會(huì)很大,同時(shí)也足以代表常見(jiàn)單詞。如果訓(xùn)練數(shù)據(jù)中的后綴或前綴也常見(jiàn),則頻繁單詞的形態(tài)變化也可以很好地表示。

3.2 WordPieceEncoding(詞片編碼)

  • 應(yīng)用模型:這種算法主要用于眾所周知的模型,如BERT和Electra。
  • 訓(xùn)練過(guò)程:在訓(xùn)練開(kāi)始時(shí),算法取訓(xùn)練數(shù)據(jù)中的所有字母表,確保沒(méi)有任何內(nèi)容會(huì)被標(biāo)記為UNK(未知)。
  • 算法特點(diǎn):當(dāng)模型給出一個(gè)無(wú)法由標(biāo)記器標(biāo)記的輸入時(shí),會(huì)出現(xiàn)這種情況。這種情況多發(fā)生在某些字符無(wú)法被標(biāo)記時(shí)。與BytePairEncoding類似,它嘗試根據(jù)頻率最大化將所有標(biāo)記放入詞匯表的可能性。

3.3 SentencePieceEncoding(句子片編碼)

  • 與前兩者對(duì)比:盡管前兩種標(biāo)記器強(qiáng)大且與空白標(biāo)記相比有許多優(yōu)勢(shì),它們?nèi)匀患僭O(shè)單詞總是由空格分隔。這個(gè)假設(shè)并非總是成立,在某些語(yǔ)言中,單詞可能會(huì)被不需要的空格或甚至是捏造的單詞等噪聲元素破壞。
  • 解決問(wèn)題:SentencePieceEncoding試圖解決這個(gè)問(wèn)題。

4. 位置嵌入

4.1 絕對(duì)位置嵌入(Absolute Positional Embeddings, APE)

  • 原理與應(yīng)用:APE用于原始Transformer模型,以保留序列順序信息。因此,單詞的位置信息被添加到編碼器和解碼器堆棧底部的輸入嵌入中。
  • 位置編碼的選擇:位置編碼有多種選擇,可以是學(xué)習(xí)的或固定的。在標(biāo)準(zhǔn)Transformer中,使用正弦和余弦函數(shù)來(lái)實(shí)現(xiàn)這一目的。
  • 主要缺點(diǎn):使用APE的主要缺點(diǎn)是限制了特定數(shù)量的標(biāo)記。此外,APE無(wú)法考慮標(biāo)記之間的相對(duì)距離。

4.2 相對(duì)位置嵌入(Relative Positional Embeddings, RPE)

  • 方法和實(shí)現(xiàn):RPE通過(guò)擴(kuò)展自注意力來(lái)考慮輸入元素之間的成對(duì)鏈接。RPE在兩個(gè)層面上被添加到模型中:首先作為鍵的額外組成部分,然后作為值矩陣的子組成部分。
  • 輸入視角:這種方法將輸入視為一個(gè)帶標(biāo)簽和有向邊的完全連接圖。在線性序列的情況下,邊可以捕獲輸入元素之間相對(duì)位置差異的信息。
  • 剪輯距離:剪輯距離k()指定了相對(duì)位置的最大限制。這允許模型對(duì)訓(xùn)練數(shù)據(jù)中未包含的序列長(zhǎng)度進(jìn)行合理預(yù)測(cè)。

4.3 旋轉(zhuǎn)位置嵌入(Rotary Position Embeddings, RoPE)

  • 解決問(wèn)題:RoPE解決了現(xiàn)有方法的問(wèn)題。學(xué)習(xí)的絕對(duì)位置編碼在句子短時(shí)可能缺乏泛化性和意義。此外,當(dāng)前方法如T5的位置嵌入在構(gòu)建位置之間的完整注意力矩陣方面面臨挑戰(zhàn)。
  • 實(shí)現(xiàn)方法:RoPE使用旋轉(zhuǎn)矩陣來(lái)編碼單詞的絕對(duì)位置,并在自注意力中同時(shí)包含顯式的相對(duì)位置細(xì)節(jié)。
  • 特點(diǎn):RoPE帶來(lái)了一些有用的特性,如靈活應(yīng)對(duì)句子長(zhǎng)度、隨著相對(duì)距離的增加降低詞匯依賴性,以及通過(guò)相對(duì)位置編碼改善線性自注意力的能力。GPT-NeoX-20B、PaLM、CODEGEN和LLaMA等模型在其架構(gòu)中利用了RoPE。

4.4 相對(duì)位置偏置(Relative Positional Bias)

  • 背景與概念:這種類型的位置嵌入旨在在推理過(guò)程中為比訓(xùn)練中遇到的序列更長(zhǎng)的序列提供外推。
  • 實(shí)現(xiàn)方法:Press等人提出了帶線性偏置的注意力(ALiBi)。他們不是簡(jiǎn)單地將位置嵌入添加到詞嵌入中,而是為查詢鍵對(duì)的注意力分?jǐn)?shù)引入偏置,根據(jù)它們的距離施加比例懲罰。BLOOM模型中利用了ALiBi。

5. 模型預(yù)訓(xùn)練

預(yù)訓(xùn)練是大型語(yǔ)言模型訓(xùn)練流程的第一步,幫助LLMs獲得基本的語(yǔ)言理解能力,適用于廣泛的語(yǔ)言相關(guān)任務(wù)。在預(yù)訓(xùn)練期間,LLM通常在大量(通常是未標(biāo)記的)文本上以自監(jiān)督的方式進(jìn)行訓(xùn)練。預(yù)訓(xùn)練的方法有多種,包括下一句預(yù)測(cè),最常見(jiàn)的兩種包括下一個(gè)標(biāo)記預(yù)測(cè)(自回歸語(yǔ)言建模)和遮蔽語(yǔ)言建模。

5.1 自回歸語(yǔ)言建模

  • 定義與方法:在這種框架下,給定n個(gè)標(biāo)記的序列,模型試圖以自回歸方式預(yù)測(cè)下一個(gè)標(biāo)記(有時(shí)是下一序列的標(biāo)記)。
  • 損失函數(shù):這種情況下常用的損失函數(shù)是預(yù)測(cè)標(biāo)記的對(duì)數(shù)似然:

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

  • 適用性:由于框架的自回歸特性,僅解碼器模型更適合學(xué)習(xí)完成這些任務(wù)。

5.2 遮蔽語(yǔ)言建模

  • 定義與方法:在這種方法中,序列中的一些詞被遮蔽,模型訓(xùn)練預(yù)測(cè)基于周圍上下文的遮蔽詞。有時(shí)也被稱為去噪自編碼。
  • 訓(xùn)練目標(biāo):如果將序列x中被遮蔽/損壞的樣本表示為,該方法的訓(xùn)練目標(biāo)可以表示為:
  • 一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

5.3 專家混合(Mixture of Experts, MoE)

  • 最近趨勢(shì):MoE近來(lái)在LLM領(lǐng)域也變得非常流行,它允許模型以較少的計(jì)算進(jìn)行預(yù)訓(xùn)練,意味著可以在相同的計(jì)算預(yù)算下顯著擴(kuò)大模型或數(shù)據(jù)集的規(guī)模。
  • 主要元素:
  • 稀疏MoE層:代替密集前饋網(wǎng)絡(luò)(FFN)層使用,擁有一定數(shù)量的“專家”(例如8個(gè)),每個(gè)- 專家都是一個(gè)神經(jīng)網(wǎng)絡(luò)。實(shí)踐中,專家通常是FFN,但也可以是更復(fù)雜的網(wǎng)絡(luò)。
  • 門控網(wǎng)絡(luò)或路由器:決定哪些標(biāo)記發(fā)送給哪個(gè)專家。一個(gè)標(biāo)記可以發(fā)送給多個(gè)專家。路由標(biāo)記至專家的決策至關(guān)重要,路由器由學(xué)習(xí)的參數(shù)組成,并與網(wǎng)絡(luò)的其余部分同時(shí)進(jìn)行預(yù)訓(xùn)練。
  • 圖示說(shuō)明:下圖展示了MoE中使用的Switch Transformer編碼器塊。

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:Switch Transformer編碼器塊示意圖。它們用稀疏Switch FFN層(淺藍(lán)色)替換了Transformer中的密集前饋網(wǎng)絡(luò)(FFN)層。

6. 微調(diào)和指令微調(diào)

微調(diào)和指令微調(diào)是大型語(yǔ)言模型訓(xùn)練流程中的重要步驟,這些技術(shù)展示了微調(diào)和指令微調(diào)在提高LLMs性能、提升模型適應(yīng)特定任務(wù)和遵循指令的能力方面的關(guān)鍵作用。

6.1 微調(diào)

  • 概念與應(yīng)用:早期語(yǔ)言模型如BERT使用自監(jiān)督學(xué)習(xí),但無(wú)法執(zhí)行特定任務(wù)。為使基礎(chǔ)模型實(shí)用,需要使用帶標(biāo)簽的數(shù)據(jù)針對(duì)特定任務(wù)進(jìn)行微調(diào)(監(jiān)督式微調(diào),SFT)。例如,在BERT原論文中,模型被微調(diào)以適應(yīng)11種不同任務(wù)。
  • 微調(diào)的影響:盡管最新的LLMs不再需要微調(diào)即可使用,但它們?nèi)钥蓮奶囟ㄈ蝿?wù)或數(shù)據(jù)的微調(diào)中受益。如GPT-3.5 Turbo在特定任務(wù)數(shù)據(jù)微調(diào)后,性能可超過(guò)GPT-4。

6.2 指令微調(diào)

  • 目的與方法:為使LLMs的響應(yīng)符合通過(guò)提示給出的指令期望,進(jìn)行指令微調(diào)非常重要。這被稱為指令微調(diào)。例如,Natural Instructions數(shù)據(jù)集包含任務(wù)定義、正/負(fù)示例或需避免事項(xiàng)等組件。
  • 效果與比較:通常,經(jīng)過(guò)指令微調(diào)的模型性能優(yōu)于它們基于的原始基礎(chǔ)模型。例如,InstructGPT在大多數(shù)基準(zhǔn)測(cè)試上優(yōu)于GPT-3。

6.3 Self-Instruct方法

  • 框架與實(shí)現(xiàn):Wang等人提出的Self-Instruct方法,通過(guò)引導(dǎo)自身生成來(lái)提高預(yù)訓(xùn)練語(yǔ)言模型的指令遵循能力。其流程包括從語(yǔ)言模型生成指令、輸入和輸出樣本,然后過(guò)濾掉無(wú)效或相似的樣本,用于微調(diào)原始模型。

7. 對(duì)齊

7.1 對(duì)齊

AI對(duì)齊是指引導(dǎo)AI系統(tǒng)朝向人類的目標(biāo)、偏好和原則的過(guò)程。預(yù)訓(xùn)練的LLMs,雖然針對(duì)詞預(yù)測(cè),但經(jīng)常會(huì)展現(xiàn)出非預(yù)期行為,如生成有毒、有害、誤導(dǎo)性和帶有偏見(jiàn)的內(nèi)容。

7.2 指令微調(diào)

指令微調(diào)是使LLMs更接近對(duì)齊的一步。然而,在許多情況下,還需要進(jìn)一步的步驟來(lái)改善模型的對(duì)齊,避免非預(yù)期行為。最新研究表明,除SFT外的進(jìn)一步對(duì)齊主要改善至少7B參數(shù)的模型。對(duì)于較小的模型,SFT已足夠。以下是最流行的對(duì)齊方法:

7.3 RLHF和RLAIF

  • RLHF:基于人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)使用獎(jiǎng)勵(lì)模型從人類反饋中學(xué)習(xí)對(duì)齊。經(jīng)調(diào)整后的獎(jiǎng)勵(lì)模型能夠根據(jù)人類給出的對(duì)齊偏好評(píng)分不同輸出,并將反饋用于進(jìn)一步調(diào)整LLM。
  • RLAIF:基于AI反饋的強(qiáng)化學(xué)習(xí)(RLAIF)將預(yù)訓(xùn)練且良好對(duì)齊的模型直接連接到LLM,幫助它從更大和更對(duì)齊的模型中學(xué)習(xí)。

7.4 DPO

  • 方法與效果:Rafailov等人提出的DPO方法針對(duì)RLHF的復(fù)雜性和不穩(wěn)定性提出了新的解決方案。他們使用獎(jiǎng)勵(lì)函數(shù)和最優(yōu)策略之間的映射,表明可以通過(guò)單階段的策略訓(xùn)練精確優(yōu)化受限獎(jiǎng)勵(lì)最大化問(wèn)題,本質(zhì)上在人類偏好數(shù)據(jù)上解決分類問(wèn)題。DPO方法穩(wěn)定、高效、計(jì)算輕量,無(wú)需擬合獎(jiǎng)勵(lì)模型、在微調(diào)期間采樣或進(jìn)行大量超參數(shù)調(diào)整。DPO微調(diào)在控制生成情感和提高摘要響應(yīng)質(zhì)量方面超過(guò)了RLHF。

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:DPO優(yōu)化人類偏好,避免強(qiáng)化學(xué)習(xí)。現(xiàn)有方法首先對(duì)人類反饋數(shù)據(jù)集中的提示和對(duì)響應(yīng)對(duì)的人類偏好進(jìn)行獎(jiǎng)勵(lì)模型擬合,然后使用RL找到最大化學(xué)習(xí)獎(jiǎng)勵(lì)的策略。相比之下,DPO直接針對(duì)最佳滿足偏好的策略進(jìn)行優(yōu)化,具有簡(jiǎn)單的分類目標(biāo),無(wú)需顯式獎(jiǎng)勵(lì)函數(shù)或RL。

7.5 KTO

  • 方法與優(yōu)勢(shì):Ethayarajh等人提出的Kahneman-Tversky優(yōu)化(KTO)方法,不需要成對(duì)偏好數(shù)據(jù),只需(x,y)和知識(shí)判斷y是可取還是不可取。KTO對(duì)齊的模型在1B到30B的規(guī)模上表現(xiàn)良好,盡管沒(méi)有使用成對(duì)偏好。KTO更適用于現(xiàn)實(shí)世界,因?yàn)樗钄?shù)據(jù)類型更加豐富。例如,每家零售公司都有大量客戶互動(dòng)數(shù)據(jù)以及這些互動(dòng)是成功(例如,購(gòu)買)還是失?。ɡ?,未購(gòu)買)。但他們幾乎沒(méi)有反事實(shí)數(shù)據(jù)(即,如何將不成功的客戶互動(dòng)轉(zhuǎn)變?yōu)槌晒Φ模?/li>

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:LLM對(duì)齊涉及監(jiān)督微調(diào),然后優(yōu)化以人為中心的損失(HALO)。然而,現(xiàn)有方法需要的成對(duì)偏好數(shù)據(jù)難以獲取。相比之下,KTO使用一種更加豐富的數(shù)據(jù)類型,使其在現(xiàn)實(shí)世界中更易于使用。

8. 解碼策略

解碼是指使用預(yù)訓(xùn)練的LLMs進(jìn)行文本生成的過(guò)程。在處理輸入提示后,標(biāo)記器將文本中的每個(gè)標(biāo)記轉(zhuǎn)換為相應(yīng)的標(biāo)記ID。語(yǔ)言模型隨后使用這些ID預(yù)測(cè)下一個(gè)最可能的標(biāo)記或標(biāo)記序列。最后,模型產(chǎn)生邏輯值,通過(guò)softmax函數(shù)轉(zhuǎn)換為概率。已經(jīng)開(kāi)發(fā)了多種解碼策略,包括Greedy Search、Beam Search以及Top-K和Top-P (Nucleus sampling)等采樣技術(shù)。

8.1 Greedy Search

  • 方法:Greedy Search在每一步選擇最可能的標(biāo)記作為序列中的下一個(gè)標(biāo)記,舍棄所有其他選擇。
  • 特點(diǎn)與局限:這是一種簡(jiǎn)單的方法,但可能會(huì)丟失時(shí)間上的連貫性和一致性。Greedy Search只考慮每一步最可能的標(biāo)記,忽視了對(duì)整體序列的影響。雖然快速,但它可能錯(cuò)過(guò)更好的序列,這些序列可能會(huì)出現(xiàn)在稍不那么可能的后續(xù)標(biāo)記中。

8.2 Beam Search

  • 方法:與只考慮下一個(gè)最可能標(biāo)記的Greedy Search不同,Beam Search在每一步考慮了N個(gè)最可能的標(biāo)記,其中N是束的數(shù)量。
  • 特點(diǎn):例如,對(duì)于束大小為2且最大長(zhǎng)度為5的情況,Beam Search需要跟蹤 個(gè)可能的序列。因此,它比Greedy Search更耗費(fèi)計(jì)算資源。

8.3 Top-K采樣

  • 方法:Top-K采樣使用語(yǔ)言模型生成的概率分布,從k個(gè)最可能的選項(xiàng)中隨機(jī)選擇一個(gè)標(biāo)記。
  • 實(shí)現(xiàn)與隨機(jī)性:假設(shè)有6個(gè)標(biāo)記(A, B, C, D, E, F),k=2,且P(A)=30%,P(B)=20%,P(C)等于P(D)、P(E)和P(F)的12.5%。在Top-K采樣中,C、D、E、F被忽略,模型輸出A的概率為60%,B的概率為40%。這種方法在選擇過(guò)程中引入了隨機(jī)性,同時(shí)優(yōu)先考慮最可能的標(biāo)記。<scripttpe = "math/tex;mode=display">  溫度參數(shù)T影響softmax函數(shù)生成的概率,使得最可能的標(biāo)記更具影響力。低溫度設(shè)置顯著改變概率分布,高溫度優(yōu)先考慮概率較高的標(biāo)記。

8.4 Top-P采樣

  • 方法與特點(diǎn):Top-P采樣(也稱為Nucleus采樣)采用與Top-K不同的方法。它選擇一個(gè)截?cái)嘀祊,使得選定標(biāo)記的概率之和超過(guò)p,形成一個(gè)“核心”,從中隨機(jī)選擇下一個(gè)標(biāo)記。這種方法在Top-K標(biāo)記不具有大概率質(zhì)量的情況下可能更好。
  • 變化性與多樣性:與Top-K不同,Nucleus采樣中包含的標(biāo)記數(shù)量不固定,這種變化性通常導(dǎo)致更多樣化和創(chuàng)造性的輸出,使Nucleus采樣在文本生成任務(wù)中受歡迎。

9. 費(fèi)效比優(yōu)化訓(xùn)練/推理/適應(yīng)/壓縮

在這部分中,我們回顧了一些用于更經(jīng)濟(jì)、更高效計(jì)算地訓(xùn)練和使用LLMs的流行方法。

9.1 優(yōu)化訓(xùn)練

為了更經(jīng)濟(jì)、更高效地訓(xùn)練LLMs,已經(jīng)開(kāi)發(fā)了許多框架。這些優(yōu)化訓(xùn)練框架有助于更經(jīng)濟(jì)高效地訓(xùn)練和使用LLMs,降低成本的同時(shí)保持或提升性能。這里我們介紹一些主要的框架。

ZeRO

  • 概述:Rajbhandari等人開(kāi)發(fā)了Zero Redundancy Optimizer(ZeRO),旨在優(yōu)化內(nèi)存,顯著提高LLMs的訓(xùn)練速度,同時(shí)增加可以高效訓(xùn)練的模型大小。
  • 優(yōu)勢(shì):ZeRO消除了數(shù)據(jù)和模型并行訓(xùn)練中的內(nèi)存冗余,同時(shí)保持了低通信量和高計(jì)算粒度。它允許按比例擴(kuò)大模型大小以適應(yīng)設(shè)備數(shù)量,保持高效率。

RWKV

  • 概述:Peng等人提出了Receptance Weighted Key Value(RWKV),結(jié)合了Transformers的高效并行訓(xùn)練和RNNs的高效推理。
  • 技術(shù)細(xì)節(jié):RWKV利用線性注意力機(jī)制,可以作為Transformer或RNN進(jìn)行構(gòu)建,在訓(xùn)練期間實(shí)現(xiàn)并行計(jì)算,在推理期間保持恒定的計(jì)算和內(nèi)存復(fù)雜度。
  • 架構(gòu)及時(shí)間復(fù)雜度比較

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

RWKV架構(gòu)

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

RWKV與不同Transformers的時(shí)間復(fù)雜度比較

9.2 低秩適應(yīng)(LoRA)

  • 概述:低秩適應(yīng)是一種流行且輕量級(jí)的訓(xùn)練技術(shù),顯著減少了可訓(xùn)練參數(shù)的數(shù)量,基于關(guān)鍵洞察:針對(duì)特定任務(wù)微調(diào)的權(quán)重與初始預(yù)訓(xùn)練權(quán)重之間的差異通常表現(xiàn)為“低內(nèi)在秩”。
  • 實(shí)現(xiàn)與優(yōu)勢(shì):使用LoRA訓(xùn)練更快、更節(jié)省內(nèi)存,產(chǎn)生更小的模型權(quán)重,易于存儲(chǔ)和共享。LoRA基于低秩矩陣可以表示為兩個(gè)較小矩陣的乘積這一事實(shí),通過(guò)專注于更新這兩個(gè)較小矩陣而非整個(gè)原始權(quán)重矩陣,顯著提高了計(jì)算效率。
  • 技術(shù)細(xì)節(jié):對(duì)于預(yù)訓(xùn)練的權(quán)重矩陣,LoRA通過(guò)低秩分解約束其更新:,其中,,且秩。在訓(xùn)練期間,被凍結(jié),而和包含可訓(xùn)練參數(shù)。
  • 重參數(shù)化示意

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:LoRA的重參數(shù)化過(guò)程。

9.3 知識(shí)蒸餾

  • 概述:知識(shí)蒸餾是從更大模型中學(xué)習(xí)的過(guò)程,通過(guò)將多個(gè)模型的知識(shí)蒸餾到一個(gè)更小的模型中,創(chuàng)建可在邊緣設(shè)備上使用的更小模型。
  • 蒸餾方法:知識(shí)蒸餾通常包括響應(yīng)蒸餾、特征蒸餾和API蒸餾。響應(yīng)蒸餾專注于教師模型的輸出,教導(dǎo)學(xué)生模型執(zhí)行類似的操作;特征蒸餾使用中間層,以便為學(xué)生模型創(chuàng)建更好的內(nèi)部表示;API蒸餾是使用API訓(xùn)練更小的模型,類似于響應(yīng)蒸餾。
  • 蒸餾框架示意

一文詳解大語(yǔ)言模型的流行架構(gòu)與訓(xùn)練技術(shù)-AI.x社區(qū)

圖:具有學(xué)生和教師的通用知識(shí)蒸餾框架。

9.4 量化

量化是減少模型大小和提升運(yùn)算速度的關(guān)鍵技術(shù)。在深度學(xué)習(xí)的核心,是一系列應(yīng)用于具有特定精度的模型權(quán)重的數(shù)學(xué)函數(shù)。降低權(quán)重的精度可以用于減小模型大小,并使其運(yùn)算更快。例如,與Int-8操作相比,F(xiàn)loat-32操作更慢。量化可以在不同階段應(yīng)用。

主要量化方法:

  • 分類:模型量化的主要方法可分為訓(xùn)練后量化和量化感知訓(xùn)練。
  • 訓(xùn)練后量化:關(guān)注于量化訓(xùn)練好的模型,有兩種著名方法:動(dòng)態(tài)和靜態(tài)。動(dòng)態(tài)訓(xùn)練后量化在運(yùn)行時(shí)計(jì)算量化范圍,與靜態(tài)相比較慢。
  • 量化感知訓(xùn)練:在訓(xùn)練過(guò)程中加入量化標(biāo)準(zhǔn),訓(xùn)練和優(yōu)化一個(gè)量化模型。這種方法確保最終模型具有良好性能,且不需要在訓(xùn)練后進(jìn)行量化。

結(jié)束語(yǔ)

到這里關(guān)于LLMs的流行架構(gòu)與訓(xùn)練技術(shù)的介紹就要接近尾聲了, 這個(gè)博客是大語(yǔ)言模型教程系列的第六篇,之后會(huì)陸續(xù)把大語(yǔ)言模型相關(guān)的知識(shí)點(diǎn)做更多的整理,在本次大語(yǔ)言模型的探索之旅的尾聲,感謝每位朋友的陪伴,我是@APlayBoy,期待與您一起在AI的世界里不斷成長(zhǎng)!


本文轉(zhuǎn)自 AI生成未來(lái) ,作者:APlayBoy


原文鏈接:??https://mp.weixin.qq.com/s/I-P_RuErXfJAc9KrzMGlOA??


本文轉(zhuǎn)自 AI生成未來(lái) ,作者:APlayBoy


原文鏈接:??https://mp.weixin.qq.com/s/I-P_RuErXfJAc9KrzMGlOA??

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦