1 AI的轉(zhuǎn)換器是啥?
轉(zhuǎn)換器,一種將輸入序列轉(zhuǎn)換或更改為輸出序列的神經(jīng)網(wǎng)絡(luò)架構(gòu)。它們通過學(xué)習(xí)上下文和跟蹤序列組件之間的關(guān)系來做到這一點。例如,請考慮以下輸入序列:“天空是什么顏色的?” 轉(zhuǎn)換器模型會使用內(nèi)部數(shù)學(xué)表示法來識別顏色、天空和藍色這三個詞之間的相關(guān)性和關(guān)系。利用這些知識,它會生成輸出:“天空是藍色的?!?/p>
組織可以使用轉(zhuǎn)換器模型進行所有類型的序列轉(zhuǎn)換,包括語音識別、機器翻譯以及蛋白質(zhì)序列分析。
2 為啥轉(zhuǎn)換器重要?
早期深度學(xué)習(xí)模型主要側(cè)重自然語言處理(NLP)任務(wù),旨在讓計算機理解和響應(yīng)自然人類語言。它們根據(jù)前一個單詞按順序猜出下一個單詞。
為更好理解,考慮手機中的自動完成功能。根據(jù)鍵入單詞對的頻率提出建議。如經(jīng)常鍵入“我很好”,在鍵入很之后,手機會自動提示好。
早期機器學(xué)習(xí)(ML)模型在更廣泛的范圍內(nèi)應(yīng)用類似技術(shù)。它們繪制訓(xùn)練數(shù)據(jù)集中不同單詞對或單詞組之間的關(guān)系頻率,并試圖猜出下一個單詞。然而,早期技術(shù)無法保留超過一定輸入長度上下文。如早期的 ML 模型無法生成有意義段落,因為它無法保留段落中第一句話和最后一句話之間的上下文。要生成諸如“我來自意大利。我喜歡騎馬。我會說意大利語。”等輸出,模型需記住意大利和意大利語之間聯(lián)系,而早期神經(jīng)網(wǎng)絡(luò)根本做不到。
轉(zhuǎn)換器模型從根本改變 NLP 技術(shù),使模型能處理文本中的這種長期依賴關(guān)系。
轉(zhuǎn)換器的更多好處。
2.1 啟用大規(guī)模模型
轉(zhuǎn)換器通過并行計算處理整個長序列,這大大減少了訓(xùn)練和處理時間。這使得訓(xùn)練可以學(xué)習(xí)復(fù)雜語言表示的超大型語言模型(LLM)(例如 GPT 和 BERT)成為可能。它們擁有數(shù)十億個參數(shù),可以捕獲各種人類語言和知識,并且它們正在推動研究朝著更具通用性的 AI 系統(tǒng)發(fā)展。
2.2 實現(xiàn)更快的自定義
使用轉(zhuǎn)換器模型,可用RAG技術(shù)。這些技術(shù)支持為行業(yè)組織特定的應(yīng)用程序自定義現(xiàn)有模型。模型可在大型數(shù)據(jù)集上進行預(yù)訓(xùn)練,然后在較小的特定于任務(wù)的數(shù)據(jù)集上進行微調(diào)。這種方法使復(fù)雜模型的使用大眾化,并消除了從頭開始訓(xùn)練大型模型時的資源限制。模型可以在多個領(lǐng)域和不同使用案例的任務(wù)中表現(xiàn)良好。
2.3 促進多模態(tài) AI 系統(tǒng)
借助轉(zhuǎn)換器,可將 AI 用于組合復(fù)雜數(shù)據(jù)集的任務(wù)。如DALL-E這樣的模型表明,轉(zhuǎn)換器可結(jié)合 NLP 和計算機視覺,根據(jù)文本描述生成圖像。借助轉(zhuǎn)換器,可創(chuàng)建集成不同信息類型并更緊密地模仿人類的理解和創(chuàng)造力的 AI 應(yīng)用程序。
2.4 人工智能研究和行業(yè)創(chuàng)新
轉(zhuǎn)換器創(chuàng)造新一代 AI 技術(shù)和 AI 研究,突破 ML 可能性的界限。它們的成功激發(fā)了解決創(chuàng)新問題的新架構(gòu)和應(yīng)用程序。它們使機器能夠理解和生成人類語言,從而開發(fā)出增強客戶體驗和創(chuàng)造新商機的應(yīng)用程序。
3 轉(zhuǎn)換器使用案例?
可用任何順序數(shù)據(jù)(例如人類語言、音樂創(chuàng)作、編程語言等)訓(xùn)練大型轉(zhuǎn)換器模型。
3.1 自然語言處理
轉(zhuǎn)換器使機器能夠以比以往任何時候都更準確的方式理解、解釋和生成人類語言。它們可以總結(jié)大型文檔,并為各種使用案例生成連貫且與上下文相關(guān)的文本。像 Alexa 這樣的虛擬助手使用轉(zhuǎn)換器技術(shù)來理解和響應(yīng)語音命令。
3.2 機器翻譯
翻譯應(yīng)用程序使用轉(zhuǎn)換器在不同語言之間提供實時、準確的翻譯。與以前的技術(shù)相比,轉(zhuǎn)換器極大地提高了翻譯的流暢性和準確性。
3.3 DNA 序列分析
通過將 DNA 片段視為類似于語言的序列,轉(zhuǎn)換器可以預(yù)測基因突變的影響,了解遺傳模式,并幫助識別導(dǎo)致某些疾病的 DNA 區(qū)域。這種能力對于個性化醫(yī)學(xué)至關(guān)重要,在個性化醫(yī)學(xué)中,了解個體的基因組成可以帶來更有效的治療。
3.4 蛋白質(zhì)結(jié)構(gòu)分析
轉(zhuǎn)換器模型可處理順序數(shù)據(jù),這使其非常適合對折疊成復(fù)雜蛋白質(zhì)結(jié)構(gòu)的長鏈氨基酸進行建模。了解蛋白質(zhì)結(jié)構(gòu)對于藥物發(fā)現(xiàn)和理解生物過程至關(guān)重要。您還可以在基于氨基酸序列預(yù)測蛋白質(zhì)三維結(jié)構(gòu)的應(yīng)用程序中使用轉(zhuǎn)換器。
4 轉(zhuǎn)換器的工作原理
自 21 世紀初,神經(jīng)網(wǎng)絡(luò)一直是各種人工智能任務(wù)(如圖像識別和 NLP)的主導(dǎo)方法。它們由層互連的計算節(jié)點或神經(jīng)元組成,這些節(jié)點或神經(jīng)元模仿人腦并協(xié)同工作以解決復(fù)雜的問題。
處理數(shù)據(jù)序列的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)通常使用編碼器/解碼器架構(gòu)模式:
- 編碼器讀取和處理整個輸入數(shù)據(jù)序列,如英語句子,并將其轉(zhuǎn)換為緊湊的數(shù)學(xué)表示形式。這種表示形式是捕獲輸入本質(zhì)的摘要
- 然后,解碼器獲取此摘要并逐步生成輸出序列,該序列可以是翻譯成法語的相同句子
這過程是按序進行,即它必須一個接一個地處理每個單詞或數(shù)據(jù)的一部分。這個過程很慢,在很長的距離上可能會丟失一些更精細的細節(jié)。
4.1 自注意力機制
轉(zhuǎn)換器模型通過整合所謂的自注意力機制來修改這一過程。該機制不是按順序處理數(shù)據(jù),而是使模型能同時查看序列的不同部分,并確定哪些部分最重要。
想象在一個繁忙嘈雜房間,試圖聽清別人說話。大腦會自動專注于他們聲音,同時抑制不太重要噪音。自注意力使模型能夠做類似的事情:它更關(guān)注相關(guān)信息位,并將它們結(jié)合起來,做出更好的輸出預(yù)測。這種機制提高了轉(zhuǎn)換器的效率,使它們能夠在更大的數(shù)據(jù)集上接受訓(xùn)練。它也更有效,尤其是在處理長文本片段時,很久以前的上下文可能會影響接下來的內(nèi)容的含義。
5 轉(zhuǎn)換器架構(gòu)由哪些組件組成?
轉(zhuǎn)換器神經(jīng)網(wǎng)絡(luò)架構(gòu)具有多個軟件層,協(xié)同工作以生成最終輸出。轉(zhuǎn)換體系結(jié)構(gòu)的組件:

編碼器(左邊)和解碼器(右邊):
編碼器(Encoder)
輸入嵌入(Input Embedding):將輸入的詞嵌到一個高維向量空間中,這樣每個詞都表示為一個向量
位置編碼(Positional Encoding):由于Transformer模型沒有像RNN那樣的時間序列信息,需要加入位置編碼來提供詞語在句子中的位置信息。位置編碼和輸入嵌入相加后作為編碼器的輸入。
-
多頭自注意力機制(Multi-Head Self-Attention):
- 自注意力機制(Self-Attention):計算輸入序列中每個詞與其他詞之間的注意力得分。通過注意力得分,模型可捕捉到詞與詞之間的依賴關(guān)系
- 多頭機制(Multi-Head):通過多個注意力頭(Head)來捕捉不同的注意力模式。每個頭獨立計算注意力,最后將它們的輸出拼接
加和規(guī)范化(Add & Norm):每個多頭自注意力和前饋神經(jīng)網(wǎng)絡(luò)的輸出都會和輸入進行相加,然后進行層規(guī)范化(Layer Normalization)
前饋神經(jīng)網(wǎng)絡(luò)(Feed Forward):一個包含兩個線性變換和一個激活函數(shù)的全連接層。這個層對每個位置的輸入獨立進行處理
解碼器(Decoder)
輸出嵌入(Output Embedding):將目標序列的詞嵌入到一個高維向量空間中
位置編碼(Positional Encoding):與編碼器的相同,將位置編碼和輸出嵌入相加后作為解碼器的輸入
遮掩多頭自注意力機制(Masked Multi-Head Self-Attention):在解碼器中,對自注意力機制進行遮掩處理,以確保預(yù)測下一個詞時不能看到未來的詞。這是通過遮掩矩陣實現(xiàn)的
多頭注意力機制(Multi-Head Attention):解碼器的每個層還有一個額外的多頭注意力層,它對編碼器的輸出進行注意力計算。這允許解碼器在生成詞語時參考輸入序列的信息
加和規(guī)范化(Add & Norm):與編碼器的相同
前饋神經(jīng)網(wǎng)絡(luò)(Feed Forward):與編碼器的相同
最終輸出
線性層(Linear):將解碼器的輸出映射到詞匯表大小的向量
Softmax:將線性層的輸出通過Softmax變換為概率分布,表示生成每個詞的概率
總結(jié)
Transformer模型通過多層堆疊的編碼器和解碼器結(jié)構(gòu)實現(xiàn)了高效的序列到序列的轉(zhuǎn)換。在編碼器中,通過多頭自注意力機制捕捉輸入序列中詞與詞之間的關(guān)系;在解碼器中,通過遮掩多頭自注意力機制和多頭注意力機制實現(xiàn)生成目標序列時的依賴關(guān)系。最終通過線性層和Softmax層生成詞的概率分布。
這個架構(gòu)的優(yōu)點在于它可以并行處理輸入數(shù)據(jù),避免了RNN中序列處理的時間復(fù)雜度,同時通過多頭注意力機制捕捉了豐富的上下文信息。
5.1 輸入嵌入
此階段將輸入序列轉(zhuǎn)換為軟件算法可以理解的數(shù)學(xué)域:
- 首先,輸入序列分解為一系列標記或單個序列組件。如輸入是個句子,則標記就是單詞
- 然后,嵌入將標記序列轉(zhuǎn)換為數(shù)學(xué)向量序列。向量攜帶語義和語法信息,以數(shù)字表示,其屬性是在訓(xùn)練過程中學(xué)習(xí)的
可將向量可視化為 n 維空間中的一系列坐標。如一個二維圖表,其中 x 代表單詞第一個字母的字母數(shù)字值,y 代表它們的類別。香蕉一詞的值為 (2,2),因為它以字母 b 開頭,屬于水果類別。芒果一詞的值為 (13,2),因為它以字母 m 開頭,也屬于水果類別。這樣,向量 (x, y) 告訴神經(jīng)網(wǎng)絡(luò),香蕉和芒果這兩個詞屬于同一類別。
想象一個 n 維空間,其中包含數(shù)千個屬性,這些屬性涉及映射到一系列數(shù)字的句子中的任何單詞的語法、含義和用法。軟件可以使用這些數(shù)字來計算數(shù)學(xué)術(shù)語中單詞之間的關(guān)系,并理解人類語言模型。嵌入提供了一種將離散標記表示為連續(xù)向量的方法,模型可以處理和學(xué)習(xí)這些向量。
5.2 位置編碼
模型本身并不按順序處理順序數(shù)據(jù)。轉(zhuǎn)換器要一種方法來考慮輸入序列中標記的順序。
位置編碼向每個標記的嵌入中添加信息,以指示其在序列中的位置。這通常是通過使用一組函數(shù)來完成的,這些函數(shù)生成一個唯一的位置信號,并將其添加到每個標記的嵌入中。通過位置編碼,模型可以保留標記的順序并理解序列上下文。
5.3 轉(zhuǎn)換器數(shù)據(jù)塊
典型的轉(zhuǎn)換器模型將多個轉(zhuǎn)換器數(shù)據(jù)塊堆疊在一起。每個轉(zhuǎn)換器模塊都有兩個主要組件:多頭自注意力機制和位置前饋神經(jīng)網(wǎng)絡(luò)。自注意力機制使模型能夠權(quán)衡序列中不同標記的重要性。在進行預(yù)測時,它側(cè)重于輸入的相關(guān)部分。
如以“不要說謊”和“他躺下”這兩句話為例。“在這兩句話中,如果不看旁邊的單詞,就無法理解躺這個詞的含義?!?em>說”和“下”這兩個詞對于理解正確的含義至關(guān)重要。自注意力可以根據(jù)上下文對相關(guān)標記進行分組。
前饋層具有其他組件,可幫助轉(zhuǎn)換器模型更有效地訓(xùn)練和運行。例如,每個轉(zhuǎn)換器模塊包括:
- 圍繞兩個主要組件的連接,就像快捷方式。它們使信息能夠從網(wǎng)絡(luò)的一部分流向另一部分,從而跳過兩者之間的某些操作
- 層歸一化將數(shù)字(特別是網(wǎng)絡(luò)中不同層的輸出)保持在一定范圍內(nèi),以便模型平穩(wěn)訓(xùn)練
- 線性變換函數(shù)使模型能夠調(diào)整值,以更好地執(zhí)行正在訓(xùn)練的任務(wù),例如文檔摘要,而不是翻譯
5.4 線性數(shù)據(jù)塊和 Softmax 數(shù)據(jù)塊
最終,模型需要做出具體預(yù)測,如選擇序列中的下一個單詞。這就是線性數(shù)據(jù)塊的用處。它是最后階段之前的另一個全連接層,也稱為密集層。它執(zhí)行從向量空間到原始輸入域的學(xué)習(xí)線性映射。在這個關(guān)鍵層,模型的決策部分采用復(fù)雜的內(nèi)部表示形式,然后將其轉(zhuǎn)化為可以解釋和使用的特定預(yù)測。該層的輸出是每個可能的標記的一組分數(shù)(通常稱為對數(shù))。
Softmax 函數(shù)是獲取對數(shù)分數(shù)并將其歸一化為概率分布的最后階段。Softmax 輸出的每個元素都表示模型對特定類或標記的置信度。
6 轉(zhuǎn)換器與其他神經(jīng)網(wǎng)絡(luò)架構(gòu)有何不同?
循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 和卷積神經(jīng)網(wǎng)絡(luò) (CNN) 是機器學(xué)習(xí)和深度學(xué)習(xí)任務(wù)中經(jīng)常使用的其他神經(jīng)網(wǎng)絡(luò)。以下內(nèi)容探討了它們與轉(zhuǎn)換器的關(guān)系。
6.1 轉(zhuǎn)換器與RNN
轉(zhuǎn)換器模型和 RNN 都是用于處理順序數(shù)據(jù)的架構(gòu)。
RNN 在循環(huán)迭代中一次處理一個元素的數(shù)據(jù)序列。該過程從輸入層接收序列的第一個元素開始。然后將信息傳遞到隱藏層,該隱藏層處理輸入并將輸出傳遞到下一個時間步驟。此輸出與序列的下一個元素相結(jié)合,將反饋到隱藏層。該循環(huán)對序列中的每個元素重復(fù)執(zhí)行,RNN 保持一個隱藏的狀態(tài)向量,該向量會在每個時間步驟進行更新。此過程有效地使 RNN 能夠記住過去輸入的信息。
相比之下,轉(zhuǎn)換器同時處理整個序列。與 RNN 相比,這種并行化可以縮短訓(xùn)練時間,并且能夠處理更長的序列。轉(zhuǎn)換器中的自注意力機制還使模型能夠同時考慮整個數(shù)據(jù)序列。這樣就無需復(fù)發(fā)或隱藏向量。相反,位置編碼會維護有關(guān)序列中每個元素位置的信息。
許多應(yīng)用中尤其NLP任務(wù),轉(zhuǎn)換器很大程度取代 RNN,因為它們可更有效處理長期依賴關(guān)系。還具有比 RNN 更高的可擴展性和效率。RNN 在某些情況下仍然有用,尤其是在模型大小和計算效率比捕獲長距離交互更重要的情況下。
6.2 轉(zhuǎn)換器與CNN
CNN 專為網(wǎng)格類數(shù)據(jù)(例如圖像)而設(shè)計,其中空間層次結(jié)構(gòu)和位置是關(guān)鍵。它們使用卷積層對輸入應(yīng)用篩選條件,通過這些篩選后的視圖捕獲局部圖案。例如,在圖像處理中,初始層可以檢測邊緣或紋理,而更深層可以識別更復(fù)雜的結(jié)構(gòu),例如形狀或?qū)ο蟆?/p>
轉(zhuǎn)換器主要設(shè)計用于處理順序數(shù)據(jù),無法處理圖像。視覺轉(zhuǎn)換器模型現(xiàn)在正在通過將圖像轉(zhuǎn)換為順序格式來處理圖像。但對許多實際的計算機視覺應(yīng)用,CNN 仍是有效和高效選擇。
7 轉(zhuǎn)換器模型有哪些不同類型?
轉(zhuǎn)換器已經(jīng)發(fā)展成為一個多樣化的架構(gòu)系列。
一些類型的轉(zhuǎn)換器模型。
7.1 雙向轉(zhuǎn)換器
基于轉(zhuǎn)換器的雙向編碼器表示形式(BERT)修改了基本架構(gòu),以處理與句子中所有其他單詞相關(guān)的單詞,而不是孤立地處理單詞。從技術(shù)上講,它采用了一種稱為雙向掩碼語言模型(MLM)的機制。在預(yù)訓(xùn)練期間,BERT 會隨機屏蔽一定比例的輸入標記,并根據(jù)其上下文預(yù)測這些被屏蔽的標記。雙向方面源于這樣一個事實,即 BERT 同時考慮了兩層中從左到右和從右到左的標記序列,以便更好地理解。
7.2 生成式預(yù)訓(xùn)練轉(zhuǎn)換器
GPT 模型使用堆疊轉(zhuǎn)換器解碼器,這些解碼器使用語言建模目標在大型文本語料庫上進行預(yù)訓(xùn)練。它們是自回歸的,即它們會根據(jù)所有先前的值回歸或預(yù)測序列中的下一個值。
通過超過 1750 億個參數(shù),GPT 模型可生成根據(jù)風(fēng)格和語氣進行調(diào)整的文本序列。GPT 模型引發(fā)了人工智能對實現(xiàn)通用人工智能的研究。這意味著組織可以在重塑其應(yīng)用程序和客戶體驗的同時達到新的生產(chǎn)力水平。
7.3 雙向和自回歸轉(zhuǎn)換器
雙向和自回歸轉(zhuǎn)換器 (BART) 是一種結(jié)合了雙向和自回歸屬性的變壓器模型。它就像是 BERT 的雙向編碼器和 GPT 的自回歸解碼器的混合體。它一次讀取整個輸入序列,并且像 BERT 一樣是雙向的。但是,它每次生成一個標記的輸出序列,以先前生成的標記和編碼器提供的輸入為條件。
7.4 用于多模態(tài)任務(wù)的轉(zhuǎn)換器
ViLBERT 和 VisualBERT 等多模態(tài)轉(zhuǎn)換器模型旨在處理多種類型的輸入數(shù)據(jù),通常是文本和圖像。它們通過使用雙流網(wǎng)絡(luò)來擴展轉(zhuǎn)換器架構(gòu),這些網(wǎng)絡(luò)在融合信息之前分別處理視覺和文本輸入。這種設(shè)計使模型能夠?qū)W習(xí)跨模態(tài)表示。例如,ViLBERT 使用協(xié)同注意力轉(zhuǎn)換器層來實現(xiàn)單獨的流交互。這對于理解文本和圖像之間的關(guān)系至關(guān)重要,例如視覺問答任務(wù)。
7.5 視覺轉(zhuǎn)換器
視覺變換器 (ViT) 將變換器結(jié)構(gòu)重新用于圖像分類任務(wù)。它們不是將圖像處理為像素網(wǎng)格,而是將圖像數(shù)據(jù)視為一系列固定大小的補丁,類似于句子中單詞的處理方式。每個補丁都經(jīng)過展平、線性嵌入,然后由標準轉(zhuǎn)換器編碼器按順序處理。添加位置嵌入是為了維護空間信息。這種全局自注意力的使用使模型能夠捕獲任何一對補丁之間的關(guān)系,無論它們的位置如何。
關(guān)注我,緊跟本系列專欄文章,咱們下篇再續(xù)!
作者簡介:魔都架構(gòu)師,多家大廠后端一線研發(fā)經(jīng)驗,在分布式系統(tǒng)設(shè)計、數(shù)據(jù)平臺架構(gòu)和AI應(yīng)用開發(fā)等領(lǐng)域都有豐富實踐經(jīng)驗。
各大技術(shù)社區(qū)頭部專家博主。具有豐富的引領(lǐng)團隊經(jīng)驗,深厚業(yè)務(wù)架構(gòu)和解決方案的積累。
負責(zé):
- 中央/分銷預(yù)訂系統(tǒng)性能優(yōu)化
- 活動&券等營銷中臺建設(shè)
- 交易平臺及數(shù)據(jù)中臺等架構(gòu)和開發(fā)設(shè)計
- 車聯(lián)網(wǎng)核心平臺-物聯(lián)網(wǎng)連接平臺、大數(shù)據(jù)平臺架構(gòu)設(shè)計及優(yōu)化
- LLM Agent應(yīng)用開發(fā)
- 區(qū)塊鏈應(yīng)用開發(fā)
目前主攻市級軟件項目設(shè)計、構(gòu)建服務(wù)全社會的應(yīng)用系統(tǒng)。
參考:
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!