來(lái)源 | OSCHINA 社區(qū)
作者 | OneFlow深度學(xué)習(xí)框架
Transformer 架構(gòu)的問(wèn)世標(biāo)志著現(xiàn)代語(yǔ)言大模型時(shí)代的開(kāi)啟。自 2018 年以來(lái),各類語(yǔ)言大模型層出不窮。
通過(guò) LLM 進(jìn)化樹(github.com/Mooler0410/LLMsPracticalGuide)來(lái)看,這些語(yǔ)言模型主要分為三類:一是 “僅編碼器”,該類語(yǔ)言模型擅長(zhǎng)文本理解,因?yàn)樗鼈冊(cè)试S信息在文本的兩個(gè)方向上流動(dòng);二是 “僅解碼器”,該類語(yǔ)言模型擅長(zhǎng)文本生成,因?yàn)樾畔⒅荒軓奈谋镜淖髠?cè)向右側(cè)流動(dòng),并以自回歸方式有效生成新詞匯;三 “編碼器 - 解碼器” 組,該類語(yǔ)言模型對(duì)上述兩種模型進(jìn)行了結(jié)合,用于完成需要理解輸入并生成輸出的任務(wù),例如翻譯。
本文作者 Sebastian Raschka 對(duì)這三類語(yǔ)言模型的工作原理進(jìn)行了詳細(xì)解讀。他是人工智能平臺(tái) Lightning AI 的 LLM 研究員,也是《Machine Learning Q and AI》的作者。
有人希望我能深入介紹一下語(yǔ)言大模型(LLM)的相關(guān)術(shù)語(yǔ),并解釋我們現(xiàn)在認(rèn)為理所當(dāng)然的一些技術(shù)性更強(qiáng)的術(shù)語(yǔ),包括 “編碼器式” 和 “解碼器式” LLM 等。這些術(shù)語(yǔ)是什么意思?
編碼器和解碼器架構(gòu)基本上都使用了相同的自注意力層對(duì)單詞詞元(token)進(jìn)行編碼,然而,不同的是:編碼器被設(shè)計(jì)為學(xué)習(xí)可以用于各種預(yù)測(cè)建模任務(wù)(如分類)的嵌入;解碼器被設(shè)計(jì)用于生成新的文本,例如回答用戶的查詢等。
1原始 Transformer
原始 Transformer 架構(gòu)("Attention Is All You Need",2017 年)是為英法和英德語(yǔ)言翻譯而開(kāi)發(fā)的,它同時(shí)使用了編碼器和解碼器,如下圖所示。
上圖中,輸入文本(即要翻譯的句子)首先被分詞為單獨(dú)的單詞詞元,然后通過(guò)嵌入層對(duì)這些詞元進(jìn)行編碼,完成后進(jìn)入編碼器部分。接下來(lái),在每個(gè)嵌入的單詞上添加位置編碼向量,之后,這些嵌入會(huì)通過(guò)多頭自注意力層。多頭注意力層之后會(huì)進(jìn)行殘差與層歸一化(Add & normalize),它進(jìn)行了一層標(biāo)準(zhǔn)化操作,并通過(guò)跳躍連接(skip connection,也稱為殘差連接或快捷連接)添加原始嵌入。最后,進(jìn)入 “全連接層”(它是由兩個(gè)全連接層(全連接層之間有一個(gè)非線性激活函數(shù))組成的小型多層感知器)之后,輸出會(huì)被再次 " 殘差與層歸一化 ",然后再將輸出傳遞到解碼器模塊的多頭自注意力層。
上圖的解碼器部分與編碼器部分的整體結(jié)構(gòu)十分相似,關(guān)鍵區(qū)別是它們的輸入和輸出內(nèi)容。編碼器要接收進(jìn)行翻譯的輸入文本,而解碼器則負(fù)責(zé)生成翻譯后的文本。
2編碼器
上圖展示的原始 Transformer 架構(gòu)中的編碼器部分負(fù)責(zé)理解和提取輸入文本中的相關(guān)信息,它輸出的是輸入文本的一個(gè)連續(xù)表示(嵌入),然后將其傳遞給解碼器。最終,解碼器根據(jù)從編碼器接收到的連續(xù)表示生成翻譯后的文本(目標(biāo)語(yǔ)言)。
多年來(lái),基于原始 Transformer 模型中的編碼器模塊開(kāi)發(fā)了多種僅編碼器架構(gòu)。其中兩個(gè)最具代表性的例子是 BERT( 用于語(yǔ)言理解的深度雙向 Transformer 預(yù)訓(xùn)練 2018)和 RoBERTa(魯棒優(yōu)化的 BERT 預(yù)訓(xùn)練方法,2018)。
BERT(Bidirectional Encoder Representations from Transformers)是一種基于 Transformer 編碼器模塊的僅編碼器架構(gòu),它使用掩碼語(yǔ)言建模(如下圖所示)和下一個(gè)句子預(yù)測(cè)任務(wù),在大型文本語(yǔ)料庫(kù)上進(jìn)行預(yù)訓(xùn)練。
BERT 式 Transformer 中使用的掩碼語(yǔ)言建模預(yù)訓(xùn)練目標(biāo)圖示。
掩碼語(yǔ)言建模的主要思路是在輸入序列中隨機(jī)掩碼(或替換)一些單詞詞元,并訓(xùn)練模型根據(jù)上下文來(lái)預(yù)測(cè)原始的掩碼詞元。
除上圖所示的掩碼語(yǔ)言建模預(yù)訓(xùn)練任務(wù)之外,下一個(gè)句子預(yù)測(cè)任務(wù)要求模型去預(yù)測(cè)兩個(gè)隨機(jī)排列的句子在原始文檔中的語(yǔ)句順序是否正確。例如,兩個(gè)用 [SEP] 標(biāo)記分隔開(kāi)的隨機(jī)句子:
[CLS] Toast is a simple yet delicious food [SEP] It’s often served with butter, jam, or honey.
[CLS] It’s often served with butter, jam, or honey. [SEP] Toast is a simple yet delicious food.
其中,[CLS] 詞元是模型的占位符,提示模型返回一個(gè) True 或 False 標(biāo)簽,用來(lái)表示句子順序是否正確。
掩碼語(yǔ)言和下一個(gè)句子預(yù)訓(xùn)練目標(biāo)使得 BERT 可以大量學(xué)習(xí)輸入文本的上下文表示,然后可以針對(duì)各種下游任務(wù)(如情感分析、問(wèn)答和命名實(shí)體識(shí)別)對(duì)這些表示進(jìn)行微調(diào)。
RoBERTa(Robustly optimized BERT approach)是 BERT 的優(yōu)化版本。它與 BERT 保持了相同的整體架構(gòu),但進(jìn)行了一些訓(xùn)練和優(yōu)化改進(jìn),例如更大的 batch 尺寸,更多的訓(xùn)練數(shù)據(jù),并去除了下一個(gè)句子預(yù)測(cè)任務(wù)。這些改進(jìn)使得 RoBERTa 擁有更好的性能,相比 BERT,RoBERTa 能更好地處理各種自然語(yǔ)言理解任務(wù)。
3解碼器
回到本節(jié)開(kāi)頭的原始 Transformer 架構(gòu),解碼器中的多頭自注意機(jī)制與編碼器中的類似,但經(jīng)過(guò)掩碼處理,以防模型關(guān)注到未來(lái)位置,確保對(duì)位置 i 的預(yù)測(cè)僅基于已知的小于 i 的輸出位置。下圖為解碼器逐詞生成輸出的過(guò)程。
原始 Transformer 中的下一個(gè)句子預(yù)測(cè)任務(wù)示意圖。
這種掩碼操作(在上圖中可明確看到,但實(shí)際上在解碼器的多頭自注意機(jī)制內(nèi)部發(fā)生)對(duì)于在訓(xùn)練和推理過(guò)程中保持 Transformer 模型的自回歸特性至關(guān)重要。自回歸特性能確保模型逐個(gè)生成輸出詞元,并使用先前生成的詞元作為上下文,以生成下一個(gè)詞元。
多年來(lái),研究人員在原始編碼器 - 解碼器 Transformer 架構(gòu)的基礎(chǔ)上進(jìn)行擴(kuò)展,開(kāi)發(fā)出了幾種僅解碼器模型,這些模型能高效處理各種自然語(yǔ)言任務(wù),其中最著名的是 GPT(Generative Pre-trained Transformer)系列模型。
GPT 系列模型為僅解碼器模型,它們?cè)诖笠?guī)模無(wú)監(jiān)督文本數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練,然后針對(duì)特定任務(wù)進(jìn)行微調(diào),如文本分類、情感分析、問(wèn)答和摘要生成等。GPT 模型包括 GPT-2、GPT-3(GPT-3 于 2020 年發(fā)布,具備少樣本學(xué)習(xí)能力)以及最新的 GPT-4,這些模型在各種基準(zhǔn)測(cè)試中展現(xiàn)出了卓越性能,是目前最受歡迎的自然語(yǔ)言處理架構(gòu)。
GPT 模型最引人注目的特性之一是涌現(xiàn)特性。涌現(xiàn)特性指的是模型在下一個(gè)詞預(yù)測(cè)的預(yù)訓(xùn)練中發(fā)展出來(lái)的能力和技能。盡管這些模型只是被訓(xùn)練預(yù)測(cè)下一個(gè)詞,但預(yù)訓(xùn)練后的模型卻能夠執(zhí)行各種任務(wù),如文本摘要生成、翻譯、問(wèn)答和分類等。此外,這些模型可通過(guò)上下文學(xué)習(xí)來(lái)完成新任務(wù),而無(wú)需更新模型參數(shù)。
4編碼器 - 解碼器混合模型
BART (Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension, 2019)
and T5 (Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer, 2019).
除傳統(tǒng)的編碼器和解碼器架構(gòu)之外,新型編碼器 - 解碼器模型的發(fā)展取得了重大突破,充分發(fā)揮了編碼器和解碼器模型的優(yōu)勢(shì)。這些模型融合了新穎技術(shù)、預(yù)訓(xùn)練目標(biāo)或架構(gòu)修改,以提高在各種自然語(yǔ)言處理任務(wù)中的性能表現(xiàn)。下面是一些值得關(guān)注的新型編碼器 - 解碼器模型:
BART(用于自然語(yǔ)言生成、翻譯和理解的去噪序列到序列預(yù)訓(xùn)練模型,2019 年發(fā)布)
T5(通過(guò)統(tǒng)一的文本到文本 Transformer 來(lái)探索遷移學(xué)習(xí)的極限,2019 年發(fā)布)。
編碼器 - 解碼器模型通常用于自然語(yǔ)言處理,這些任務(wù)涉及理解輸入序列并生成相應(yīng)的輸出序列。這些序列往往具有不同的長(zhǎng)度和結(jié)構(gòu)。這種模型在需要復(fù)雜映射以及捕捉輸入序列和輸出序列之間的元素關(guān)系的任務(wù)中表現(xiàn)出色。編碼器 - 解碼器模型常用于文本翻譯和摘要生成等任務(wù)。
5術(shù)語(yǔ)和行話
這些模型(包括僅編碼器、僅解碼器和編碼器 - 解碼器模型)都屬于序列到序列模型(通常簡(jiǎn)稱為 “seq2seq”)。值得注意的是,雖然我們將 BERT 模型稱為僅編碼器模型,但 “僅編碼器” 這個(gè)描述可能會(huì)引起誤解,因?yàn)檫@些模型在預(yù)訓(xùn)練期間也會(huì)將嵌入解碼為輸出的詞元或文本。
換句話說(shuō),僅編碼器和僅解碼器架構(gòu)都在進(jìn)行 “解碼”。然而,與僅解碼器和編碼器 - 解碼器架構(gòu)不同,僅編碼器架構(gòu)不是以自回歸的方式進(jìn)行解碼。自回歸解碼是指逐個(gè)詞元地生成輸出序列,其中每個(gè)詞元都基于先前生成的詞元。相比之下,僅編碼器模型不會(huì)以這種方式生成連貫的輸出序列。相反,它們專注于理解輸入文本并生成特定任務(wù)的輸出,如標(biāo)簽預(yù)測(cè)或詞元預(yù)測(cè)。
6結(jié)論
簡(jiǎn)而言之,編碼器模型在學(xué)習(xí)用于分類任務(wù)的嵌入表示方面非常受歡迎,編碼器 - 解碼器模型用于生成任務(wù),這些任務(wù)依賴輸入,以生成輸出(例如翻譯和摘要生成),而僅解碼器模型則用于其他類型的生成任務(wù),包括問(wèn)答。
自首個(gè) Transformer 架構(gòu)問(wèn)世以來(lái),已經(jīng)開(kāi)發(fā)出數(shù)百種編碼器、解碼器和編碼器 - 解碼器混合模型,模型概覽如下圖所示:
按架構(gòu)類型和開(kāi)發(fā)者分類的部分最受歡迎的大型語(yǔ)言 Transformer。
盡管僅編碼器模型逐漸失去了關(guān)注度,但 GPT-3、ChatGPT 和 GPT-4 等僅解碼器模型在文本生成方面取得了重大突破,并開(kāi)始廣泛流行。然而,僅編碼器模型在基于文本嵌入進(jìn)行預(yù)測(cè)模型訓(xùn)練方面仍然非常有用,相較于生成文本,它具備獨(dú)特優(yōu)勢(shì)。
審核編輯:湯梓紅
-
解碼器
+關(guān)注
關(guān)注
9文章
1143瀏覽量
40718 -
編碼器
+關(guān)注
關(guān)注
45文章
3638瀏覽量
134426 -
語(yǔ)言模型
+關(guān)注
關(guān)注
0文章
520瀏覽量
10268 -
LLM
+關(guān)注
關(guān)注
0文章
286瀏覽量
327
原文標(biāo)題:揭秘編碼器與解碼器語(yǔ)言模型
文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論