RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

揭秘編碼器與解碼器語言模型

OSC開源社區(qū) ? 來源: OSCHINA 社區(qū) ? 2023-10-24 11:42 ? 次閱讀

來源 | 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ā)的,它同時使用了編碼器和解碼器,如下圖所示。

wKgaomU3PT2AVbmzAAJ4mZyt6fQ909.png

上圖中,輸入文本(即要翻譯的句子)首先被分詞為單獨的單詞詞元,然后通過嵌入層對這些詞元進(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)練。

wKgZomU3PT2AQ0voAANSv5gVjZ0495.png

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 的輸出位置。下圖為解碼器逐詞生成輸出的過程。

wKgaomU3PT2ATK8JAAFiRglJ-_0970.png

原始 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ù)百種編碼器、解碼器和編碼器 - 解碼器混合模型,模型概覽如下圖所示:

wKgaomU3PT2AYR3RAAD2XCOsTvM010.png

按架構(gòu)類型和開發(fā)者分類的部分最受歡迎的大型語言 Transformer。

盡管僅編碼器模型逐漸失去了關(guān)注度,但 GPT-3、ChatGPT 和 GPT-4 等僅解碼器模型在文本生成方面取得了重大突破,并開始廣泛流行。然而,僅編碼器模型在基于文本嵌入進(jìn)行預(yù)測模型訓(xùn)練方面仍然非常有用,相較于生成文本,它具備獨特優(yōu)勢。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1143

    瀏覽量

    40717
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3638

    瀏覽量

    134426
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    520

    瀏覽量

    10268
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    286

    瀏覽量

    327

原文標(biāo)題:揭秘編碼器與解碼器語言模型

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    怎么理解真正的編碼器解碼器?

      在進(jìn)入關(guān)于編碼器解碼器的現(xiàn)實之前,讓我們對復(fù)用進(jìn)行簡要的思考。通常我們會在需要將一些輸入信號一次一個地加載到一個單獨負(fù)載的應(yīng)用程序中。選擇輸入信號中的一個輸入信號的過程稱為多路復(fù)用。這種操作
    發(fā)表于 09-01 17:48

    編碼器解碼器的區(qū)別是什么,編碼器用軟件還是硬件好

    編碼器指的是對視頻信號進(jìn)行壓縮,解碼器主要是將壓縮的視頻信號進(jìn)行解壓縮。目前做直播的很多都是采用的編碼器,客戶端可以采用解碼器或軟件播放
    發(fā)表于 08-02 17:23 ?3.4w次閱讀

    基于結(jié)構(gòu)感知的雙編碼器解碼器模型

    ,在常見端到端翻譯模型的基礎(chǔ)上,利用代碼抽象語法樹將源代碼的結(jié)構(gòu)信息嵌入到編碼器解碼器翻譯模型中,提出一種基于結(jié)構(gòu)感知的雙編碼器
    發(fā)表于 05-26 15:38 ?5次下載

    詳解編碼器解碼器電路:定義/工作原理/應(yīng)用/真值表

    編碼器解碼器是組合邏輯電路,在其中,主要借助布爾代數(shù)實現(xiàn)組合邏輯。今天就大家了解一下編碼器解碼器電路,分別從定義,工作原理,應(yīng)用,真值表幾個方面講述一下。
    的頭像 發(fā)表于 11-03 09:22 ?7294次閱讀
    詳解<b class='flag-5'>編碼器</b>和<b class='flag-5'>解碼器</b>電路:定義/工作原理/應(yīng)用/真值表

    PyTorch教程10.6之編碼器-解碼器架構(gòu)

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程10.6之編碼器-解碼器架構(gòu).pdf》資料免費下載
    發(fā)表于 06-05 18:12 ?0次下載
    PyTorch教程10.6之<b class='flag-5'>編碼器</b>-<b class='flag-5'>解碼器</b>架構(gòu)

    PyTorch教程-10.6. 編碼器-解碼器架構(gòu)

    -解碼器架構(gòu)(圖 10.6.1),它由兩個主要組件組成:一個 編碼器,它以可變長度序列作為輸入,以及一個 解碼器,作為一個條件語言模型,
    的頭像 發(fā)表于 06-05 15:44 ?847次閱讀
    PyTorch教程-10.6. <b class='flag-5'>編碼器</b>-<b class='flag-5'>解碼器</b>架構(gòu)

    基于transformer的編碼器-解碼器模型的工作原理

    與基于 RNN 的編碼器-解碼器模型類似,基于 transformer 的編碼器-解碼器模型由一
    發(fā)表于 06-11 14:17 ?2230次閱讀
    基于transformer的<b class='flag-5'>編碼器</b>-<b class='flag-5'>解碼器</b><b class='flag-5'>模型</b>的工作原理

    基于 RNN 的解碼器架構(gòu)如何建模

    ? Vaswani 等人在其名作 Attention is all you need 中首創(chuàng)了?基于 transformer?的編碼器-解碼器模型,如今已成為自然語言處理 (natur
    的頭像 發(fā)表于 06-12 17:08 ?810次閱讀
    基于 RNN 的<b class='flag-5'>解碼器</b>架構(gòu)如何建模

    基于 Transformers 的編碼器-解碼器模型

    基于 transformer 的編碼器-解碼器模型是 表征學(xué)習(xí) 和 模型架構(gòu) 這兩個領(lǐng)域多年研究成果的結(jié)晶。本文簡要介紹了神經(jīng)編碼器-
    的頭像 發(fā)表于 06-16 16:53 ?887次閱讀
    基于 Transformers 的<b class='flag-5'>編碼器</b>-<b class='flag-5'>解碼器</b><b class='flag-5'>模型</b>

    神經(jīng)編碼器-解碼器模型的歷史

    基于 transformer 的編碼器-解碼器模型是 表征學(xué)習(xí) 和 模型架構(gòu) 這兩個領(lǐng)域多年研究成果的結(jié)晶。本文簡要介紹了神經(jīng)編碼器-
    的頭像 發(fā)表于 06-20 15:42 ?880次閱讀
    神經(jīng)<b class='flag-5'>編碼器</b>-<b class='flag-5'>解碼器</b><b class='flag-5'>模型</b>的歷史

    詳解編碼器解碼器電路

    編碼器解碼器是組合邏輯電路,在其中,主要借助布爾代數(shù)實現(xiàn)組合邏輯。今天就大家了解一下編碼器解碼器電路,分別從定義,工作原理,應(yīng)用,真值表幾個方面講述一下。
    的頭像 發(fā)表于 07-14 09:07 ?3228次閱讀
    詳解<b class='flag-5'>編碼器</b>和<b class='flag-5'>解碼器</b>電路

    視頻編碼器解碼器的應(yīng)用方案

    視頻解碼器和視頻編碼器在數(shù)字通訊、音視頻壓縮領(lǐng)域有著廣泛的應(yīng)用。視頻編碼器作為視頻源的發(fā)送端,若接收端如果是?PC?機或顯示設(shè)備就需要通過解碼器進(jìn)行
    的頭像 發(fā)表于 08-14 14:38 ?1338次閱讀
    視頻<b class='flag-5'>編碼器</b>與<b class='flag-5'>解碼器</b>的應(yīng)用方案

    YXC丨視頻編碼器解碼器的應(yīng)用方案

    視頻解碼器和視頻編碼器是數(shù)字信號處理中常用的設(shè)備,它們在數(shù)據(jù)的傳輸和轉(zhuǎn)換中發(fā)揮著重要作用。
    的頭像 發(fā)表于 08-23 09:40 ?671次閱讀
    YXC丨視頻<b class='flag-5'>編碼器</b>與<b class='flag-5'>解碼器</b>的應(yīng)用方案

    視頻編碼器解碼器的應(yīng)用方案

    視頻解碼器和視頻編碼器是數(shù)字信號處理中常用的設(shè)備,它們在數(shù)據(jù)的傳輸和轉(zhuǎn)換中發(fā)揮著重要作用。
    的頭像 發(fā)表于 08-28 11:31 ?585次閱讀
    視頻<b class='flag-5'>編碼器</b>與<b class='flag-5'>解碼器</b>的應(yīng)用方案

    信路達(dá) 解碼器/編碼器 XD74LS48數(shù)據(jù)手冊

    解碼器/編碼器?DIP164.75~5.25V封裝:DIP16_19.3X6.4MM
    發(fā)表于 08-19 15:57 ?2次下載
    RM新时代网站-首页