




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Transformer模型主講:XXX案例導入2024年諾貝爾化學獎再次花落人工智能案例導入:2024年諾貝爾化學獎再次花落人工智能
2024年10月9日下午,瑞典皇家科學院宣布將2024年諾貝爾化學獎的一半授予DavidBaker,以表彰他在計算蛋白質設計領域的杰出貢獻;另一半則由DemisHassabis和JohnM.Jumper共同分享,以肯定他們在蛋白質結構預測方面的卓越成就。繼昨日的諾貝爾物理學獎授予人工神經網絡之后,今日的化學獎頒給了AlphaFold和計算蛋白質設計,這一系列獎項的頒發(fā)彰顯了人工智能在推動科學創(chuàng)新中的關鍵作用,預示著人工智能正引領科學界步入一個全新的發(fā)展紀元。2024年諾貝爾化學獎獲得者案例導入:2024年諾貝爾化學獎再次花落人工智能DavidBaker成功構建了全新的蛋白質,完成了幾乎不可能的壯舉。DemisHassabis和JohnJumper開發(fā)了一種人工智能模型,解決了一個長達50年的難題:預測蛋白質的復雜結構。DemisHassabis和JohnJumper開發(fā)的人工智能模型名為AlphaFold,該模型于2018年首次推出,并在一項兩年一度的蛋白質結構預測競賽?“蛋白質結構預測技術的關鍵測試(CASP)”中一舉奪魁。然而,真正令生命科學界震撼的是2020年底發(fā)布的第二代深度學習神經網絡AlphaFold2。在CASP競賽中,AlphaFold2的許多預測結果極為準確,與實驗確定的蛋白質結構幾乎無法區(qū)分。借助AlphaFold2,研究人員能夠預測幾乎所有的2
億種已知蛋白質的結構。AlphaFold2的核心技術是其深度學習模型,該模型基于一種名為Transformer神經網絡的架構。4.1自然語言處理基礎4.1.1自然語言處理的概念
自然語言通常指人類使用的語言,它是人類思維的載體和交流的基本工具,同時也是區(qū)分人類與動物的根本標志之一,更是人類智能發(fā)展的外在體現形式。
自然語言處理,簡而言之,就是利用機器對人類語言進行處理。它致力于研究實現人與計算機之間通過自然語言進行有效通信的各種理論和方法,如右圖所示。自然語言處理是當前計算機科學和人工智能領域的重要研究方向,是一門融合語言學、計算機科學、數學等多學科知識的綜合性科學。
從自然語言的角度來看,自然語言處理大致可分為自然語言理解和自然語言生成兩個部分。自然語言處理4.1.1自然語言處理的概念
1.自然語言理解根據自然語言的不同表現形式,自然語言理解可分為口語理解和文字理解兩大方面??谡Z理解旨在使計算機能夠“聽懂”人們所說的話語;而文字理解則是指計算機能夠“看懂”輸入其中的文字資料,并能以文字形式做出相應回應。例如,在手機上對Siri說“嘿,Siri,打電話回家”,Siri便會自動為你撥打電話回家。4.1.1自然語言處理的概念
2.自然語言生成自然語言生成是指遵循特定的語法和語義規(guī)則,將計算機數據轉化為自然語言的過程,即將語義信息以人類可讀的自然語言形式進行表達。例如,當我們對手機Siri說“Siri,現在幾點了?”時,Siri會回復:“現在是下午2:08”。自然語言處理的目標并非讓人類適應機器的溝通方式,而是使機器能夠適應人類的交流方式。例如,編寫第一個程序時,你可能讓機器打印“helloworld”的代碼。這是你順應機器,要求它以自身理解的語言執(zhí)行任務。而當你通過語音命令要求語音助手說出“helloworld”,并得到相應反饋時,這便是自然語言處理應用的實例。因為你使用自然語言與機器通信,機器適應了你的溝通方式,理解你的指令,處理并執(zhí)行你所要求的操作。4.1.2自然語言處理任務1.詞法分析1)分詞:將連續(xù)文本切分成獨立單詞或詞素,這是文本處理的基礎環(huán)節(jié)。例如,將“我愛自然語言處理”分詞后得到“我/愛/自然/語言/處理”。在中文語境中,分詞尤為關鍵,因為中文缺乏像英文那樣的天然空格分隔。2)詞性標注:為每個單詞標注其詞性,如名詞、動詞、形容詞等。這有助于明確單詞在句子中的語法角色和語義信息,為后續(xù)的句法分析和語義理解奠定基礎。3)命名實體識別:識別文本中的專有名詞和特定短語,如人名、地名、組織機構名等,并將其與普通單詞區(qū)分。這對于信息提取、知識圖譜構建等任務具有重要作用。2.句法分析分析句子中詞語間的結構關系,將句子切分成不同成分,如主語、謂語、賓語、定語、狀語等,并構建句法樹以描述這些成分間的關聯。通過句法分析,計算機能更準確地理解句子的語法結構和語義信息。3.語義分析1)情感分析:評估文本中所表達的情感傾向,如積極、消極或中立。該技術在產品評論、社交媒體監(jiān)測等領域具有廣泛的應用價值。2)機器翻譯:機器翻譯通常采用基于規(guī)則的方法和統計機器翻譯技術,近年來取得了顯著進步,其翻譯質量已達到人類專業(yè)譯者的水平。3)問答系統:該系統需對問題進行解析和理解,在大規(guī)模文本中搜索相關信息,最終生成準確的回答。4)信息檢索:在大規(guī)模文檔集合中查找與用戶查詢相關的文檔。自然語言處理(NLP)技術在信息檢索中扮演重要角色,有效提升檢索的準確性和效率。5)文本摘要:自動生成給定文本的簡短摘要或提取關鍵內容。此功能有助于快速把握長篇文章的核心信息,提高閱讀效率。4.1.2自然語言處理任務4.篇章級分析1)文本分類:將文本數據按照不同的主題或類別進行劃分。常用于新聞分類、垃圾郵件過濾、情感分析等任務。2)文本聚類:根據文本內容的相似性將文本數據劃分為不同的組或簇。這種方法有助于發(fā)現文本數據中的模式和趨勢。3)機器閱讀理解:讓機器能夠理解文章的內容,并回答相關問題。機器閱讀理解是一項復雜的任務,需要綜合運用多種自然語言處理技術和深度學習模型。5.語音相關處理1)語音識別:將人類的語音轉化為文本。語音識別技術廣泛應用于智能客服、語音筆記、語音搜索等應用中。語音識別的難點在于如何處理噪音和口音問題,以及如何準確地識別語調和語音。2)語音合成:將文本轉化為人類可聽的語音。這種技術廣泛應用于智能客服、語音助手、播客制作等應用中。4.1.2自然語言處理任務4.1.2自然語言處理任務1)文本糾錯:自動檢測和糾正文本中的拼寫和語法錯誤。12)文本生成:根據給定的輸入生成符合語法和語義規(guī)則的自然語言文本,包括新聞寫作、對話系統、自動摘要等。23)文本相似度:衡量兩個文本之間的相似程度,用于文本匹配、推薦等應用。3其他任務4.1.3語言輸入的預處理1.文本清洗文本清洗是自然語言處理中至關重要的預處理步驟,旨在去除文本數據中的噪聲、無用字符和不必要的信息。以下是文本清洗的一些常見技術和步驟。(1)去除特殊字符和標點符號去除文本中的特殊字符、非字母數字字符和無效符號。這可以通過使用正則表達式或字符串操作來實現。例如,可以使用正則表達式模式`[^a-zA-Z0-9]`來匹配并刪除非字母數字字符。去除標點符號:根據任務需求,可以選擇保留或刪除標點符號。在某些情況下,標點符號可能包含重要的語義信息,而在其他情況下,它們可能被視為噪聲。4.1.3語言輸入的預處理(2)處理HTML標簽和特殊符號在處理從網頁或HTML文檔中提取的文本時,可能需要去除HTML標簽和特殊符號??梢允褂脦旎蚬ぞ邅斫馕鯤TML并去除標簽。處理特殊符號可以使用Unicode編碼范圍或特定的字符映射表來過濾或替換這些符號。(3)清除無意義的文本在某些情況下,文本數據中可能包含無意義的文本片段,可以通過文本匹配、規(guī)則過濾或機器學習方法進行識別和去除。文本清洗的具體步驟和技術取決于任務和數據的特定需求。通過進行文本清洗,可以獲得干凈、準確且一致的文本數據,以便后續(xù)的自然語言處理任務(能夠更加準確和有效地進行。4.1.3語言輸入的預處理人類之間的有效溝通完全依賴于自然語言,這種語言包含無數復雜的詞匯,而這些詞匯對計算機而言卻是完全陌生的。計算機無法直接處理一個單詞或一個漢字,因此在進行模型訓練前,需要將人類能夠理解的元素轉化為計算機可以計算的向量。分詞器正是為模型準備輸入內容的工具,它可以將語料數據集預處理為模型可以接收的輸入格式。對于文本格式的數據來說,分詞器的作用是將文本轉換為詞元序列。一個詞元可以是一個字母、一個單詞、一個標點符號或一個其他符號,而這個過程也被稱為分詞(tokenization)。2、分詞0102(1)詞元
分詞的目的是將輸入文本轉換為一系列詞元,并確保每個詞元擁有相對完整的獨立語義。詞元(token)可以理解為最小的語義單元。舉個簡單的例子,比如“HelloWorld!”這句話,可以將其分為4個詞元,即[“Hello”,“”,“World”,“!”],然后將每個詞元轉換成一個數字。后續(xù)我們就用這個數字來表示該詞元,這個數字被稱為詞元ID,也叫tokenID。例如,可以用下表來表示上面那句話的詞元及其對應的ID,而最終“HelloWorld!”這句話就可以轉換為“1234”的數字序列。4.1.3語言輸入的預處理詞元ID詞元備注1Hello
2
空格3World
4!“HelloWorld!”的分詞示例
分詞應當細化到何種程度呢?在英文中,分詞的粒度由細至粗依次為character、subword、word。其中,character代表單個字符,如a、b、c、d。word則指代整個單詞,例如water表示“水”的意思。subword相當于英文中的詞根、前綴、后綴等,例如unfortunately中的un、fortun(e)、ly等即為subword,它們各自承載著特定的含義。
對于中文而言,分詞算法同樣經歷了按詞語分、按字分和按子詞分三個發(fā)展階段。按詞語分和按字分相對容易理解,并且已有一些工具包可供使用。若采用按子詞分的方式,詞元則可以是偏旁部首,而對于結構簡單的字,一個詞元亦可為一個完整的字。例如,“江”“河”“湖”“?!边@四個字均與水相關,且均含三點水旁,因此在分詞過程中,“氵”極有可能作為一個詞元,“工”“可”“胡”“每”則分別作為其他詞元。假設“氵”的詞元ID為1,“工”“可”“胡”“每”的詞元ID依次為2、3、4、5,那么“江”“河”“湖”“海”的詞元序列可分別表示為12、13、14、15。4.1.3語言輸入的預處理4.1.3語言輸入的預處理BPE(BytePairEncoding)分詞算法是一種基于子詞的分詞方法,常用于Transformer模型中。該算法能夠將復雜詞匯拆分為更小的子詞單元,從而提升模型的效果和泛化能力。使用單個字母或單詞作為詞元會引發(fā)一些問題。首先,不同語言的詞匯量各異,若每個單詞都需分配唯一的詞元ID,將占用大量內存空間。其次,某些單詞可能鮮少出現或為新造詞,如專有名詞、縮寫、網絡用語等,若要使模型持續(xù)處理這些單詞,就必須不斷更新詞元ID表格并重新訓練模型。(2)BPE分詞算法01024.1.3語言輸入的預處理為解決上述問題,BPE分詞算法將文本分割為更小的子單元(subword),這些子單元可以是單個字母、字母組合、部分單詞或完整單詞。BPE基于統計頻率合并最常見的字母對或子單元對,從而更高效地處理不同語言的詞匯量和新出現的單詞。BPE是一種基于統計的分詞算法。在訓練階段,BPE通過迭代合并出現頻率最高的子詞對來構建詞表。在分詞階段,它將文本中的詞匯逐步拆分為詞表中的子詞單元。BPE算法能有效處理未登錄詞和稀有詞,且無需預先定義詞表大小。根據分詞基本單位的不同,BPE可進一步分為字符級別和字節(jié)級別。使用字符級別BPE的模型包括LLaMA系列等;而OpenAIGPT系列則采用字節(jié)級別的分詞器tiktoken。4.2傳統語言模型4.2.1語言模型的發(fā)展歷程01根據所采用技術方法的不同,語言模型的發(fā)展經歷了從統計語言模型到神經網絡語言模型,再到基于Transformer的大語言模型的演進過程。02統計語言模型是早期自然語言處理(NLP)中的重要工具,主要通過分析詞序列的出現頻率來預測下一個詞。N-gram模型:基于馬爾可夫假設,認為一個詞出現的概率僅與其前面的n-1個詞有關。N-gram模型簡單易用,但存在數據稀疏和無法捕捉長距離依賴關系的問題。1.統計語言模型階段4.2.1語言模型的發(fā)展歷程2.神經網絡語言模型階段隨著深度學習技術的發(fā)展,神經網絡開始被應用于語言建模任務中。神經網絡語言模型通過引入神經網絡結構來捕捉詞與詞之間的復雜關系,從而提升了語言模型的性能。這一階段的代表模型包括循環(huán)神經網絡語言(RNN)模型及其變體,如長短期記憶網絡語言(LSTM)模型和門控循環(huán)單元網絡語言(GRU)模型等。RNN通過引入循環(huán)連接來處理序列數據中的長期依賴關系。LSTM和GRU作為RNN的改進版本,通過引入門控機制,有效解決了梯度消失或梯度爆炸問題。3.基于Transformer的大語言模型階段
2017年,Transformer模型的提出標志著語言模型邁入大語言模型的新紀元。Transformer模型通過自注意力機制和位置編碼,有效處理序列數據中的長期依賴關系和位置信息,徹底摒棄了傳統的循環(huán)神經網絡結構。基于Transformer的大語言模型在預訓練階段利用大規(guī)模語料庫進行訓練,隨后在特定任務上進行微調,取得了顯著成效。這一階段的代表性模型包括BERT和GPT系列。BERT:由Google提出的一種基于Transformer的雙向編碼器表示模型。BERT在預訓練階段采用遮蔽語言模型和下一句預測兩項任務來訓練模型,顯著提升了模型的語言表示能力。GPT系列:由OpenAI開發(fā)的基于Transformer的生成式預訓練模型。GPT系列模型在預訓練階段采用自回歸語言建模任務進行訓練,能夠生成連貫、自然的文本。隨著模型規(guī)模的不斷擴大(如GPT-3、GPT-4等),GPT系列模型在多個自然語言處理(NLP)任務中展現出卓越表現。4.2.1語言模型的發(fā)展歷程4.2.2統計語言模型在20世紀90年代興起的統計語言模型,是一種描述自然語言概率分布的模型。它基于統計方法,計算某個單詞或單詞序列出現的概率。假設我們擁有一個由一組詞元構成的詞表,那么語言模型P會為每個詞元序列分配一個概率,表示為w1,w2,…,wL,其中L代表序列的長度,詞元則從詞表中提取。概率P(W)是一個介于0和1之間的數值,用以衡量詞元序列的質量。高概率意味著該序列更可能在語言中出現,而低概率則表示其不太可能出現在語言中。一個優(yōu)秀的語言模型應兼具語言能力和世界知識,能夠識別語法正確且富有意義的句子,并為其賦予更高的概率。4.2.2統計語言模型1.n-gram語言模型n-gram指的是由個連續(xù)單詞構成的序列。例如,“l(fā)arge”是一個一元語法(Unigram)的實例,“l(fā)argelanguage”是一個二元語法(Bigram)的實例,而“l(fā)argelanguagemodel”則是一個三元語法(Trigram)的實例。基于n-gram構建的語言模型稱為n-gram語言模型,這種語言模型將單詞序列的生成過程視作馬爾可夫過程,其數學基礎是馬爾可夫假設。馬爾可夫假設是元語法模型的核心概念。它指出,一個單詞的概率僅取決于前一個單詞。這意味著當前單詞僅依賴于序列中最近的單詞,而不依賴于該序列中的任何其他單詞。馬爾可夫模型利用這一假設,只需稍微回顧過去,便能預測未來單元的概率。4.2.2統計語言模型
二元語法模型是馬爾可夫模型的一個典型例子,它僅通過前一個單詞來預測序列中的下一個單詞。這種方法簡化了條件概率的計算,使模型更加高效。例如,在序列“mydogjustateachicken”中,二元語法模型將只考慮給定“a”時“chicken”的概率,而忽略句子的其余部分。相比之下,三元語法模型和元語法模型分別回顧2個和n-1個詞。n元語法模型能夠比考慮整個句子更高效、更準確地估算下一個單詞的概率。
要使用n元語法模型估計序列中下一個單詞的概率,可以應用條件概率公式。4.2.2統計語言模型
4.2.2統計語言模型值得注意的是,以特定單詞W_n?1開頭的所有二元語法計數的總和,必須等于該單詞W_n?1的單元語法計數。這是因為在語料庫中,W_n?1每出現一次都算作一次單元語法,并且也包含在以W_n?1開頭的所有二元語法的計數中。因此,二元語法計數的總和不應超過單元語法計數。雖然MLE在NLP中得到廣泛應用,但是它也有一些局限性。例如,如果語料庫中沒有出現特定的元語法,則其MLE概率將為零,這對于某些應用程序來說是有問題的。為了解決這個問題,研究人員已經提出了各種平滑技術,例如拉普拉斯(Laplace)平滑、古德-圖靈(Good-Turing)平滑和Kneser-Ney平滑,這些技術通過借助具有類似上下文的其他n元語法信息來估計n元語法的概率。4.2.3神經網絡語言模型神經網絡語言模型是指一類利用神經網絡分類器來計算特定上下文中的單詞或單詞序列概率的語言模型。這類模型依賴于詞嵌入技術和多層神經網絡結構來實現上述概率計算。詞嵌入是機器學習領域廣泛應用的技術,其目標是將語義相似的單詞映射到相近的向量空間位置。根據神經網絡結構的不同,神經網絡語言模型可分為兩類:前饋神經網絡語言模型和循環(huán)神經網絡語言模型。前饋神經網絡是人工神經網絡的一種,其顯著特征在于信息僅沿單一方向流動,即從輸入層經過隱藏層,最終到達輸出層,不存在反向連接。類似于多層感知器模型和卷積神經網絡,這種網絡結構簡潔明了,易于理解和實現,是神經網絡模型的基礎之一。4.2.3神經網絡語言模型
在前饋神經網絡語言模型中,我們首先將上下文中的每個單詞映射為其對應的詞嵌入,然后將這些詞嵌入進行拼接作為輸入。經過多層次的神經網絡映射處理后,在最后一層通過Softmax函數輸出一個在詞匯表上的概率分布?;诖朔植?,并結合特定策略(例如選取概率最大的詞),我們確定該上下文中模型預測的下一個詞。然而,由于前饋神經網絡語言模型僅能處理固定長度的單詞序列,研究者進一步提出了循環(huán)神經網絡語言模型,以支持處理任意長度的單詞序列。循環(huán)神經網絡語言模型與前饋神經網絡語言模型的主要區(qū)別在于隱藏層的計算方式。4.2.3神經網絡語言模型1.循環(huán)神經網絡循環(huán)神經網絡(RecurrentNeuralNetwork,RNN)是一種在序列數據分析中廣泛應用的深度學習模型。與前饋神經網絡相比,RNN具備獨特的記憶功能,能夠有效處理輸入數據的序列依賴關系。該網絡由保羅?韋伯斯(PaulWerbos)于1988年首次提出,通過引入循環(huán)結構,使模型能夠持久化信息,從而更好地應對序列數據。RNN的循環(huán)機制使其能夠記憶先前的輸入信息,并將這些有用信息應用于后續(xù)輸出的計算過程,因此在自然語言處理、語音識別、時間序列預測等領域表現出卓越的性能。
RNN結構4.2.3神經網絡語言模型循環(huán)神經網絡是一種以序列數據為輸入,沿著序列演進方向進行遞歸,且所有節(jié)點(循環(huán)單元)以鏈式連接的遞歸神經網絡。一個典型的RNN結構如下圖所示,圖中名為A的神經網絡接收輸入Xt,生成輸出ht,并在循環(huán)結構的輔助下,接收來自先前步驟的信息。4.2.3神經網絡語言模型2.長短時記憶網絡該模型由霍克賴特和施米德胡貝于1997年提出,部分借鑒了有關腦的記憶與信息處理機制的知識,將Google的語音識別性能提升了將近50%。LSTM網絡能夠有效緩解長期依賴問題,捕捉序列中的長距離歷史信息,在序列建模的諸多問題上基本可以替代普通的RNN,并取得了顯著效果。與普通RNN相比,LSTM網絡不僅使用隱藏狀態(tài)保存信息,還引入了記憶細胞,并設置了輸入門、輸出門和遺忘門來控制記憶細胞。LSTM網絡通過門控單元精細調控信息流動:記憶細胞通過輸入門控制遺忘門,進而決定哪些歷史信息加入記憶細胞狀態(tài);通過控制輸入門,決定哪些新輸入信息加入記憶細胞狀態(tài);通過控制輸出門,決定記憶細胞狀態(tài)中的哪些信息用于輸出。4.2.3神經網絡語言模型3.門控循環(huán)單元神經網絡門控循環(huán)單元(GatedRecurrentUnit,GRU)神經網絡是基于LSTM網絡改進的模型。LSTM網絡作為RNN的一種變體,其顯著成就是有效克服了循環(huán)神經網絡在處理長依賴問題上的不足。然而,LSTM網絡模型結構復雜,且存在訓練和預測時間較長等問題。GRU神經網絡的改進正是為了解決這些難題。GRU神經網絡在LSTM網絡的基礎上進行了兩項關鍵改進。首先,GRU神經網絡僅包含兩個門:將LSTM網絡中的輸入門和遺忘門合并為更新門,用以控制記憶信息在當前時刻的保留量;另一個門為重置門,負責控制遺忘的記憶信息量。其次,GRU取消了進行線性自更新的記憶單元,直接在隱藏單元中通過門控機制實現線性自更新。4.3序列到序列模型4.3.1序列到序列結構
Seq2Seq架構的全名是“Sequence-to-Sequence”,意為將一個序列映射到另一個序列。1.什么是序列到序列序列,指的是文本數據、語音數據、視頻數據等一系列具有連續(xù)關系的數據。與圖片數據不同,圖片之間往往缺乏關聯,而文本、語音和視頻等數據則具有顯著的連續(xù)性。這些數據在某一時刻的內容,通常與前幾個時刻的內容相關,同時也會影響后續(xù)時刻的內容。在機器學習中,存在一類特殊的任務,專門用于處理將一個序列轉換成另一個序列的問題。例如,我們熟知的翻譯任務,就是將一種語言的文字序列轉換成另一種語言的文字序列。序列到序列任務一般具有以下兩個特點:1)輸入輸出序列都是不定長的。例如,在機器翻譯場景下,待翻譯的句子和翻譯結果的長度都是不確定的。2)輸入輸出序列中元素之間具有順序關系。不同的順序會導致不同的結果,例如“我不喜歡”和“喜歡我不”這兩個短語表達了截然不同的意思。
4.3.1序列到序列結構
深度神經網絡在處理輸入和輸出為固定長度向量的問題時,表現頗為出色,然而,對于機器翻譯、語音識別、智能對話等問題,由于將文本表示成序列后,輸入輸出的長度事先未知,深度神經網絡的處理效果便不盡如人意。因此,如何使深度神經網絡能夠有效處理這些不定長度的序列問題,自2013年以來一直是研究界的熱點,序列到序列模型也在此基礎上應運而生。4.3.1序列到序列結構序列到序列模型是一種特殊的神經網絡結構,適用于處理輸入和輸出均為序列的任務,例如機器翻譯、語音識別等。一個典型的Seq2Seq模型由編碼器和解碼器兩部分構成。該模型的輸入是一系列類型相同的元素(如字母、單詞、圖像特征或視頻幀),輸出則是另一系列類型相同的元素。Seq2Seq結構的輸出元素類型可以與輸入元素類型相同,也可以不同,從而具備多模態(tài)的潛力。2.序列到序列模型組成0102下圖展示了編碼解碼機制的結構圖,其工作流程可簡要描述為:在編碼器端對輸入序列進行編碼,生成一個中間的語義編碼向量;隨后,在解碼器端對該中間向量進行解碼,最終得到目標輸出序列。以中譯英場景為例,編碼器端的輸入是一段中文序列,而解碼器端的輸出則是翻譯出的英文序列。編碼解碼機制結構圖4.3.1序列到序列結構4.3.1序列到序列結構編碼器(Encoder):編碼器負責將輸入序列(例如源語言的文本)轉換為固定大小的向量表示。通常,編碼器采用RNN、LSTM或GRU等模型。編碼器逐個處理輸入序列中的元素(如單詞或字符),在每個時間步更新其隱藏狀態(tài)。最終,編碼器生成一個包含整個輸入序列信息的上下文向量。解碼器(Decoder):解碼器的任務是將編碼器生成的上下文向量轉換為輸出序列(例如目標語言的文本)。解碼器同樣常使用RNN、LSTM或GRU等模型。解碼器以編碼器的上下文向量作為初始隱藏狀態(tài),逐個生成輸出序列中的元素。在每個時間步,解碼器根據當前隱藏狀態(tài)、生成的上一個輸出元素(如單詞)以及其他可能的信息(例如注意力機制),來生成下一個輸出元素。4.3.1序列到序列結構在實際應用中,序列到序列模型的輸入輸出數據可以呈現不同形式,對應的編碼器和解碼器所采用的模型結構也可以不同。例如,輸入一張圖片,輸出針對圖片的描述,實現“看圖說話”功能時,編碼器可以采用CNN模型,而解碼器則采用RNN模型;反之,輸入一段文字描述,生成一張圖片時,編碼器和解碼器所采用的模型結構則相應顛倒。利用這種機制,編碼器—解碼器結構幾乎能夠適配所有序列到序列的問題。盡管序列到序列模型看似完美,但在實際使用中仍會面臨一些挑戰(zhàn)。例如,在翻譯場景中,若句子過長,可能會出現梯度消失問題。由于解碼時依賴的是最后一個隱藏層輸出的定長向量,靠近句末的單詞會被“記憶”得更深刻,而遠離句末的單詞則逐漸被稀釋,導致模型輸出結果不盡如人意。針對這些問題,研究人員已提出相應解決方案,如引入注意力機制。4.3.2注意力機制注意力機制借鑒了人類的注意力思維方式:人類能夠利用有限的注意力,從大量信息中快速獲取最有價值的信息。通過引入注意力機制,模型可以根據需要關注輸入序列中的相關部分,從而放大重點位置的信號。因此,帶有注意力機制的模型相較于沒有注意力機制的模型,能夠產生更好的結果。注意力機制在直觀上非常易于理解。例如,當我們看到一張新圖片時,注意力會自動聚焦到一些關鍵信息上,而不需要掃描全圖。人類的注意力機制能夠減少資源損耗,提高信息處理效率。使用注意力機制的深度學習模型亦是如此,能夠更有效地找到圖中的關鍵信息,并賦予其較高的權重。通過引入注意力機制,模型可以在每個時間步中為輸入序列中不同位置的詞分配不同的注意力權重。這使得模型能夠更加靈活地、有選擇地關注輸入序列中的重要部分,從而更好地捕捉上下文相關性,提升模型性能。4.3.2注意力機制帶有注意力機制的Seq2Seq結構模型與經典的Seq2Seq結構模型相比,有以下兩點不同:1)在多編碼器的情況下,帶有注意力機制的Seq2Seq結構模型會將更多的中間數據傳遞給解碼器。經典Seq2Seq結構模型僅將編碼階段的最后一個隱藏狀態(tài)向量傳遞給解碼器,而帶有注意力機制的Seq2Seq結構模型則會將編碼階段的所有隱藏狀態(tài)向量傳遞給解碼器。12)解碼器在生成輸出時會執(zhí)行額外的計算:首先,接收編碼器傳遞的隱藏狀態(tài)向量;然后,為每個隱藏狀態(tài)向量進行打分;接著進行歸一化處理,將其轉化為相關性權重,用來表征輸入序列與輸出序列各元素之間的相關性,從而放大高分的隱藏狀態(tài)向量。24.4Transformer模型4.4.1Transformer模型結構Transformer模型在傳統的編碼器—解碼器架構基礎上進行了創(chuàng)新性升級。其編碼端由多個編碼器串聯組成,而解碼端同樣由多個解碼器構成(左圖)。編碼器負責處理輸入數據,而解碼器則負責生成輸出數據。此外,Transformer在輸入編碼和自注意力機制方面進行了顯著優(yōu)化,例如引入多頭注意力機制和位置編碼機制等,使其能夠識別更復雜的語言情境,進而處理更為艱巨的任務。
從左圖可以看出,Transformer模型由編碼器和解碼器兩部分組成。編碼器由6個結構相同的編碼單元串聯而成,而解碼器則由6個結構相同的解碼單元串聯而成。最后一層編碼器的輸出將傳遞至解碼器的每一層。Transformer網絡結構圖Transformer的編碼器及解碼器4.4.1Transformer模型結構進一步剖析編碼器和解碼器的內部結構,每個編碼器包含自注意力層和前饋網絡層。而解碼器在自注意力層和前饋網絡層的基礎上,還增設了一個編碼器-解碼器注意力層,用于接收最后一個編碼器的輸出值,如下圖所示。4.4.1Transformer模型結構Transformer的編碼器由N個完全相同的層堆疊而成(在原始的Transformer模型中,N=6)。每個層包含兩個子層:一個是多頭自注意力機制,另一個是前饋神經網絡。這兩個子層均配備了一個殘差連接和一個層歸一化。
解碼器同樣由個完全相同的層堆疊而成。每個層包含三個子層:兩個是多頭自注意力機制,另一個是前饋神經網絡。這三個子層也都具備一個殘差連接和一個層歸一化。第一個自注意力子層與編碼器中的自注意力子層功能相同,均用于處理輸入序列。然而,第二個自注意力子層的任務是連接解碼器的輸入與編碼器的輸出。在這個子層中,查詢來自前一個自注意力子層的輸出,而鍵和值則來自編碼器的輸出。
在解碼器的頂部,設有一個全連接層,其作用是將解碼器的輸出轉化為最終的預測結果。Transformer模型結構圖4.4.2嵌入和向量化
1.分詞將輸入文本劃分為獨立的詞或子詞單元,如單詞、字符或字節(jié)。根據具體任務和模型需求,可選擇不同的分詞方法。常用的分詞方法主要有三種:基于空格的分詞器:按空格拆分單詞,將每個單詞作為一個詞元(token)納入詞表?;谧址姆衷~器:每個字符作為一個詞元。例如,英語中有26個字符,詞表大小即為26?;谧釉~的分詞器:通過詞根、詞源學習一系列單詞,如BPE分詞法。OpenAI從GP-2到GPT-4一直采用BPE分詞法。4.4.2嵌入和向量化2.轉換為整數將分詞后的文本轉換為對應的整數序列,每個詞元映射為一個唯一的整數標識符。通常使用字典或詞匯表建立詞元與整數標識符的映射關系。3.嵌入將整數序列轉換為密集的向量表示,即詞嵌入或字嵌入。此步驟利用可訓練的嵌入矩陣,通過查找整數標識符對應的行獲取相應的詞嵌入向量。4.添加位置編碼由于Transformer模型未使用序列中的位置信息,為捕捉序列中的順序關系,需添加位置編碼。位置編碼是一種特殊向量,與詞嵌入相加,提供每個詞或字的位置信息。4.4.3位置編碼
Transformer在處理輸入序列時,引入了位置嵌入,以提供單詞間的順序信息。這是一種將單詞的位置信息嵌入到輸入詞向量中的方法,通過一系列額外的向量來表示單詞之間的距離,從而傳遞順序信息。
在Transformer模型中,單詞先通過輸入嵌入層轉化為詞向量,隨后與位置編碼的向量相加,送入Transformer編碼器中的多頭自注意力層。如圖所示,位置編碼的向量與輸入的詞向量相加,使得模型能夠綜合考慮單詞的語義信息和位置信息。
4.4.3位置編碼位置編碼的值是根據特定模型生成的。在處理每個源單詞時,其詞嵌入與對應的位置編碼相加,且位置編碼向量與詞嵌入的維度相同。對于解碼器的輸入,也需要進行相同的處理,即在目標數據的基礎上加上位置編碼,從而形成帶有時間信息的嵌入。當對語料庫進行批量處理時,可能會遇到長度不一致的語句:對于較短的語句,可以通過填充的方式補齊;而對于過長的語句,則可以采用截尾的方法。在位置編碼中,每個位置都被分配一個唯一的編碼向量,該向量包含正弦和余弦函數的組合。通過不同頻率的正弦和余弦函數,位置編碼能夠傳遞出不同位置之間的相對距離信息。當兩個位置之間的距離較近時,頻率較高的正弦和余弦函數可以產生更多變化的編碼,使相對位置關系更加明顯。而當兩個位置之間的距離較遠時,頻率較低的正弦和余弦函數則會產生較為平滑的編碼,相對位置關系相對較弱。4.4.4掩碼多頭自注意力1.自注意力計算
首先,我們來看一下通過Transformer作用的效果圖。假設輸入語句為“Theanimaldidn’tcrossthestreetbecauseitwastootired”,如何判斷“it”是指“animal”還是指“street”?對于人類而言,這個問題很簡單,但對于算法來說則較為復雜。然而,Transformer中的自注意力機制能夠使機器將“it”與“animal”聯系起來,其聯系效果如左圖所示。
編碼器中的頂層(即#5層,#0表示第1層)對“it”單詞的關注度明顯大于對“animal”等其他單詞的關注度。這些關注度是如何獲取的呢?4.4.4掩碼多頭自注意力注意力機制是一種技術,它允許神經網絡在生成輸出的每一步時,對輸入的不同部分賦予不同的“注意力”或“重要性”。在自然語言處理任務中,注意力機制被廣泛用于處理序列數據,因為它能夠有效解決長距離依賴問題。在一個簡單的注意力機制中,首先計算輸入序列中每個元素的權重,這些權重反映了每個元素對當前輸出的重要性。權重的計算通?;谳斎朐嘏c當前查詢(Query)的相似性。一旦獲得這些權重,就可以通過加權平均輸入元素來計算輸出。為了計算每個元素的權重,需要額外引入三個變量:q、k和v,分別代表查詢(Query)、鍵(Key)和值(Value)。這些變量在注意力機制中扮演關鍵角色,用于計算查詢與一組鍵值對之間的相關性權重。注意力機制的主要目標是將查詢與一組鍵值對進行比較,并計算出查詢與每個鍵之間的相關性得分,然后利用這些得分對值進行加權平均。這樣的操作適用于多種任務,包括機器翻譯、問答系統和圖像分類等。4.4.4掩碼多頭自注意力為每個單詞創(chuàng)建Q、K、V三個向量
實現編碼器中的自注意力層需遵循四個步驟。1)首先,為每個單詞生成查詢(query)、鍵(key)和值(value)三個向量,如右圖所示。接著,針對輸入序列中的各個單詞,將其表征向量分別與相應的權重矩陣相乘,從而映射為查詢向量Q、鍵向量K和值向量V。
4.4.4掩碼多頭自注意力自注意力層的計算流程示意圖
4.4.4掩碼多頭自注意力
4.4.4掩碼多頭自注意力
自注意力機制的計算流程4.4.4掩碼多頭自注意力
整個計算過程也可以用上圖表示,這個過程又稱為縮放的點積注意力(ScaledDot-productAttention)過程。上圖中的掩碼用于對某些值進行掩蓋,使其在參數更新時不產生效果。
縮放的點積注意力4.4.4掩碼多頭自注意力2.掩碼
Transformer模型中涉及兩種掩碼(Mask),分別是PaddingMask(填充掩碼)和SequenceMask(序列掩碼)。1)PaddingMask(填充掩碼)在自然語言處理中,由于句子長度往往不一致,為了統一輸入格式,較短的句子會通過特定的填充符(如0)補齊至與最長句子相同的長度。PaddingMask的主要作用是標記這些填充位置,使模型在計算時能夠忽略這些無效信息。其實現方式是在自注意力機制的Softmax函數之前,將填充位置的值設定為一個極小的負數(如負無窮)。這樣,經過Softmax函數處理后,這些位置的概率值將變?yōu)?,從而被有效忽略。4.4.4掩碼多頭自注意力4.4.4掩碼多頭自注意力SequenceMask主要應用于解碼器部分,其目的是確保模型在預測下一個詞時,僅能依賴當前詞及之前的詞的信息,避免接觸到未來的詞,從而防止未來信息泄露。這兩種掩碼機制在Transformer模型中扮演著至關重要的角色。它們不僅幫助模型處理不同長度的輸入數據,還確保了模型在解碼過程中的正確性,有效防止信息泄露。通過這些機制,Transformer模型能夠更加靈活和高效地處理復雜的序列數據。其實現方法是構建一個下三角形的掩碼矩陣,其中對角線及以下部分為1(表示不遮擋),對角線以上部分為0(表示遮擋)。這樣,在計算自注意力時,模型只能利用當前詞及之前的詞的信息。2)SequenceMask(序列掩碼)4.4.4掩碼多頭自注意力3.多頭注意力機制多頭注意力機制進一步優(yōu)化了注意力層。該機制使模型能夠同時關注不同表示子空間的信息。例如,在閱讀一篇文章時,我們會更關注標題和粗體文字,而非正文中小而密集的文字;同時,也會更留意顏色鮮艷的文字,如紅色標題。這里的字體和顏色即為兩個表示子空間。若能同時關注這兩方面,便能更有效地定位文章中的重點內容。同理,多頭注意力機制通過綜合利用多方面的信息,從多個表示子空間中提取關鍵特征。要實現多頭注意力機制,需配備多組query、key、value權重矩陣。在標準的Transformer模型中,采用了8個注意力頭,因此每個編碼器和解碼器的注意力層均包含8個權重集合。這些集合中的每個參數矩陣在訓練初期均為隨機初始化。
4.4.4掩碼多頭自注意力多頭注意力機制流程4.4.4掩碼多頭自注意力由多頭注意力機制流程圖可見,解碼器中的自注意力層操作方式與編碼器中的自注意力層計算方式存在細微差異,解碼器相較于編碼器額外引入了編碼器-解碼器注意力機制。在編碼器-解碼器注意力機制中,查詢(Q)源自解碼器的上一個輸出,而鍵(K)和值(V)則取自編碼器最后一層的輸出,其計算過程與自注意力的計算過程保持一致。鑒于機器翻譯中解碼過程需按序進行,即解碼第個特征向量時,僅能參考第k-1個特征向量及其之前的解碼結果,因此將此情境下的多頭注意力機制稱為掩碼多頭注意力機制,其特點在于同時應用了PaddingMask和SequenceMask兩種掩碼策略。1.殘差連接
基本Transformer的編碼器和解碼器各包含6層,但在某些應用中層數可能更多。隨著層數的增加,網絡的容量和表達能力也隨之增強,然而,網絡的收斂速度卻會變慢,且更容易出現梯度消失等問題。
為克服這些不足,Transformer常采用兩種方法:一是殘差連接,二是歸一化方法。具體實現方式是在每個編碼器或解碼器的兩個子層之間增加一個由殘差連接和歸一化組成的層。對每個編碼器和解碼器均進行相同的處理。4.4.5殘差連接及歸一化(Add&Norm)添加殘差連接及歸一化層
在Transformer模型中,使用殘差連接的主要目的是解決深層網絡訓練中的梯度消失和梯度爆炸問題,同時保留原始輸入序列的信息。(1)梯度平滑
在深層網絡中,梯度在反向傳播過程中可能會變得極小或極大,導致訓練過程中出現梯度消失或梯度爆炸的問題。殘差連接通過將原始輸入與每個子層的輸出相加,構建了一條捷徑,使梯度能夠更順暢地傳遞。這種將原始輸入加入子層輸出的方式,確保了梯度不會因過小而消失,也不會因過大而爆炸,從而有助于保持梯度的平滑性。(2)信息保留
在Transformer模型中,每個子層包含自注意力機制和前饋神經網絡。注意力機制可能會完全忽略最近的單詞,而專注于所有可能相關的早期單詞。殘差連接能夠捕捉原始單詞,并將其手動添加回信號中,從而避免信息的丟失或遺忘。為了確保原始輸入序列的信息得以保留,殘差連接允許子層的輸出直接疊加到原始輸入上,使原始輸入的信息能夠有效傳遞到下一層。4.4.5殘差連接及歸一化(Add&Norm)4.4.5殘差連接及歸一化(Add&Norm)殘差連接和層歸一化并非必須結合使用,但若將它們置于某一組計算(如注意力機制或前饋神經網絡)之后,其效果將最為顯著。層歸一化的核心在于將矩陣的值調整至均值為0,并縮放至標準差為1。神經網絡本質上具有非線性特征,這賦予了它們卓越的表現力,同時也使其對信號幅度和分布高度敏感。標準化作為一種有效技術,已被證實有助于在多層神經網絡的各階段維持信號值的一致分布。它促進了參數值的收斂,通常能夠顯著提升模型性能。2.層歸一化4.4.6線性層和softmax層解碼器最后的輸出值通過一個全連接層及softmax函數處理后,即可獲得預測值的對數概率。具體過程如下。解碼器最終的輸出是一個浮點向量,我們需要將其轉換為一個單詞。為實現這一目標,Transformer模型中引入了一個線性層,這是一個全連接神經網絡,用于將解碼器的輸出向量投影到一個更大的向量,即logits向量。該向量的維度與詞表大小一致,其中每個元素對應一個詞元的分數。接下來,logits向量通過softmax層進行處理,將這些分數轉化為概率,確保所有概率均為正數且總和為1.0。最終,選擇概率最大的元素對應的索引,并將與其關聯的詞元作為該時間步的輸出。Transformer的最后全連接層及softmax函數4.4.6線性層和softmax層
整個過程從線性層開始,通過線性層將解碼器的輸出轉換為一個向量。隨后,該向量經過softmax層,將分數轉化為概率,選擇概率最大的元素,并將與其關聯的單詞作為輸出內容。Transformer中的編碼器與解碼器協調完成一個機器翻譯任務的完整過程。4.4.6線性層和softmax層4.4.7多層疊加
Transformer的編碼器和解碼器采用多層疊加方法
在Transformer模型中,多個“多頭注意力層+前饋網絡層”模塊的疊加具有以下作用:1.提升特征提取能力
1)從不同角度捕捉信息。多頭注意力機制允許模型在不同的頭中從不同的表示子空間里學習輸入序列的特征。每個頭可以專注于輸入序列的不同方面,例如,某些頭可能更關注詞與詞之間的語法關系,而另一些頭可能更側重于語義信息。通過多個這樣的模塊疊加,模型能夠從多個角度綜合分析輸入序列,從而更全面地提取特征。2)增強對復雜結構的理解。對于具有復雜結構的數據,如長句子或包含嵌套結構的數據,單個“多頭注意力層+前饋網絡層”模塊可能無法完全理解其中的所有信息。通過模塊疊加,模型可以逐步分解和理解這些復雜結構。4.4.7多層疊加4.4.7多層疊加加深語義理解1)逐步細化語義表示。每經過一個“多頭注意力層+前饋網絡層”模塊,模型都會對輸入數據進行一次特征轉換和語義細化。前饋網絡層中的全連接層和激
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人貨物賒欠購買合同6篇
- 零售企業(yè)庫存盤點管理規(guī)范
- 任務一 電子產品消耗調查教學設計小學勞動六年級浙教版《勞動》
- 企業(yè)財務狀況說明與風險提示文檔
- 能源企業(yè)綠色低碳發(fā)展規(guī)劃
- 江蘇省常州市園區(qū)消防安全測試題九(含答案)
- 廣東省佛山市小學消防安全測試題八(含答案)
- 廣東省揭陽市劇院消防安全測試題三(含答案)
- 2025-2030中國進口飲料品牌本土化策略與市場份額報告
- 2025-2030中國被動式建筑技術標準體系與房地產商轉型策略關聯研究
- 頸肩腰腿痛門診診療課件
- 做有夢想的少年+課件-2025-2026學年統編版道德與法治七年級上冊
- 財務內賬表格大全-出納實 用模板
- 糖尿病護理操作規(guī)范手冊(2023修訂)
- 產后腹直肌分離的診斷與治療
- 人民陪審員刑事培訓課件
- 2025年陜西音樂聯考試題及答案
- 2025年高一的數學知識點大綱
- 2025年平面圖形的畫法說課教學課件
- 養(yǎng)老院保潔培訓課件
- 中醫(yī)圍手術期護理
評論
0/150
提交評論