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