第2章 大模型基礎_第1頁
第2章 大模型基礎_第2頁
第2章 大模型基礎_第3頁
第2章 大模型基礎_第4頁
第2章 大模型基礎_第5頁
已閱讀5頁,還剩81頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

浙江省普通本科高?!笆奈濉敝攸c教材大語言模型通識大語言模型通識周蘇教授QQ:81505050第2章大模型基礎語言模型是自然語言處理領域的基礎任務和核心問題,其目標是對自然語言的概率分布建模。大量的研究從n元語言模型、神經語言模型以及預訓練語言模型等不同角度開展了一系列工作。這些研究在不同階段對自然語言處理任務有重要作用。隨著基于谷歌Transformer的各類語言模型的發展及預訓練微調范式在自然語言處理各類任務中取得突破性進展,從OpenAI發布GPT-3開始,對大語言模型的研究逐漸深入。雖然大模型的參數量巨大,通過有監督微調和強化學習能夠完成非常多的任務,但是其基礎理論仍然離不開對語言的建模。第2章大模型基礎01什么是語言模型02大模型發展三階段03Transformer模型04生成式預訓練語言模型GPT目錄/CONTENTS05大模型的結構PART01什么是語言模型語言模型起源于語音識別。輸入一段音頻數據,語音識別系統通常會生成多個句子作為候選,判斷哪個句子更合理?這就需要用到語言模型對候選句子進行排序。語言模型的應用范圍早已擴展到機器翻譯、信息檢索、問答、文摘等眾多自然語言處理領域。2.1什么是語言模型語言模型是這樣一個模型:對于任意的詞序列,它能夠計算出這個序列是一句話的概率。例如,詞序列A:“這個網站|的|文章|真|水|啊”,這個明顯是一句話,一個好的語言模型也會給出很高的概率。再看詞序列B:“這個網站|的|睡覺|蘋果|好快”,這明顯不是一句話,如果語言模型訓練的好,那么序列B的概率就會很小。2.1.1語言模型的定義于是,給出語言模型的較為正式的定義。假設我們要為中文創建一個語言模型,V表示詞典,V={貓,狗,機器,學習,語言,模型,...},wi∈V。語言模型就是這樣一個模型:給定詞典V,能夠計算出任意單詞序列w1,w2,...,wn是一句話的概率p(w1,w2,...,wn),其中,p≥0。語言模型中計算p(w1,w2,...,wn)的最簡單方法是數數,假設訓練集中共有N個句子,數一下在訓練集中(w1,w2,...,wn)出現的次數,不妨假定為n,則p(w1,w2,...,wn)=n/N。可以想象出這個模型的預測能力幾乎為0,一旦單詞序列沒有在訓練集中出現過,模型的輸出概率就是0。2.1.1語言模型的定義語言模型的另一種等價定義是:能夠計算p(wi|w1,w2,...,wi-1)的模型就是語言模型。從文本生成角度來看,也可以給出如下的語言模型定義:給定一個短語(一個詞組或一句話),語言模型可以生成(預測)接下來的一個詞。2.1.1語言模型的定義在統計學模型為主體的自然語言處理時期,主要成果是N-gram語言模型。為了簡化p(wi|w1,w2,...,wi-1)的計算,引入一階馬爾可夫假設:每個詞只依賴前一個詞;也可以引入二階馬爾可夫假設:每個詞依賴前兩個詞。有了馬爾可夫假設,就可以方便的計算條件概率。此外,還有前饋神經網絡語言模型、循環神經網絡語言模型及其他預訓練語言模型。2.1.1語言模型的定義語言模型可用于提升語音識別和機器翻譯的性能。例如,在語音識別中,給定一段“廚房里食油用完了”的語音,有可能會輸出“廚房里食油用完了”和“廚房里石油用完了”這兩個讀音完全一樣的文本序列。如果語言模型判斷出前者的概率大于后者的概率,就可以根據相同讀音的語音輸出“廚房里食油用完了”的文本序列。在機器翻譯中,如果對英文“yougofirst”逐詞翻譯成中文的話,可能得到“你走先”“你先走”等排列方式的文本序列。如果語言模型判斷出“你先走”的概率大于其他排列方式的文本序列的概率,我們就可以把“yougofirst”翻譯成“你先走”。2.1.1語言模型的定義早期在解決機器翻譯這一類序列到序列的問題時,通常采用的做法是利用一個編碼器和一個解碼器構建端到端的神經網絡模型,但是基于編碼解碼的神經網絡存在兩個問題。拿機器翻譯作為例子:問題1:如果翻譯的句子很長很復雜,比如直接一篇文章輸進去,模型的計算量很大,并且模型的準確率下降嚴重。問題2:在翻譯時,可能在不同的語境下,同一個詞具有不同的含義,但是網絡對這些詞向量并沒有區分度,沒有考慮詞與詞之間的相關性,導致翻譯效果比較差。2.1.2注意力機制同樣,在計算機視覺領域,如果輸入的圖像尺寸很大,做圖像分類或者識別時,模型的性能就會下降。針對這樣的問題,提出了注意力機制。早在20世紀九十年代對注意力機制就有研究,到2014年弗拉基米爾的《視覺注意力的反復模型》一文中將其應用在視覺領域,后來伴隨著2017年Transformer結構的提出,注意力機制在自然語言處理、計算機視覺等相關問題上被廣泛應用。2.1.2注意力機制“注意力機制”實際上就是想將人的感知方式、注意力的行為應用在機器上,讓機器學會去感知數據中的重要和不重要的部分。比如要識別一張圖片中是一個什么動物時,我們讓機器存在這樣一個注意力側重點,最重要應該關注的地方是圖片中動物的面部特征,包括耳朵、眼睛、鼻子、嘴巴,而不用太關注背景的一些信息。核心目的是希望機器能注意到對當前任務更關鍵的信息,而對于其他非關鍵信息不需要注意太多。同樣,在機器翻譯中,要讓機器注意到每個詞向量之間的相關性,有側重地進行翻譯,模擬人類理解的過程。2.1.2注意力機制對模型的每一個輸入項,它可能是圖片中的不同部分,或者是語句中的某個單詞,分配一個權重,這個權重的大小代表了我們希望模型對該部分的關注程度。這樣,通過權重大小來模擬人在處理信息時的注意力側重,有效的提高了模型的性能,并且在一定程度上降低了計算量。2.1.2注意力機制深度學習中的注意力機制通常可分為三類:軟注意(全局注意)、硬注意(局部注意)和自注意力(內注意)(1)軟注意機制:對每個輸入項分配的權重在0~1之間,也就是某些部分關注多一點,某些部分關注少一點。由于對大部分信息都有考慮,但考慮程度不一,所以相對計算量也比較大。2.1.2注意力機制(2)硬注意機制:對每個輸入項分配的權重非0即1,只考慮那部分需要關注,哪部分不關注,也就是直接舍棄掉一些不相關項。優勢在于可以減少一定的時間和計算成本,但有可能丟失掉一些本應該注意的信息。(3)自注意力機制:對每個輸入項分配的權重取決于輸入項之間的相互作用,即通過輸入項內部的“表決”來決定應該關注哪些輸入項。和前兩種相比,在處理很長的輸入時,具有并行計算的優勢。2.1.2注意力機制當前的大模型技術,可以分為“開源”和“閉源”兩大類型。所謂“開源”,是指事物規劃為可以公開訪問的,因此人們都可以對其修改并分享?!伴_源”這個詞最初起源于軟件開發,指的是一種開發軟件的特殊形式。但時至今天,“開源”已經泛指一組概念——就是所謂“開源的方式”。這些概念包括開源項目、產品,或是自發倡導并歡迎開放變化、協作參與、快速原型、公開透明、精英體制以及面向社區開發的原則。2.1.3開源還是閉源開源軟件的源代碼任何人都可以審查、修改和增強?!霸创a”是軟件中大部分計算機用戶都沒見過的部分,程序員可以修改代碼來改變一個軟件(“程序”或“應用”)工作的方式。程序員如果可以接觸到計算機程序源代碼,就可以通過添加功能或修復問題來改進這個軟件。2.1.3開源還是閉源1.開源軟件和其他類型軟件的不同有些軟件只有創建它的人、團隊、組織才能修改,并且控制維護工作,稱之為“專有”或“閉源”軟件。專有軟件只有原作者可以合法地復制、審查以及修改這個軟件。為了使用專有軟件,計算機用戶必須同意(通常是在軟件第一次運行的時候簽署一份顯示的許可)他們不會對軟件做軟件作者沒有表態允許的事情。微軟Office和AdobePhotoshop就是專有軟件的例子。2.1.3開源還是閉源開源軟件不一樣。它的作者讓源代碼對其他人提供,需要的人都可以查看、復制、學習、修改或分享代碼。LibreOffice(辦公軟件)和GIMP(圖像編輯器)是開源軟件的例子。2.1.3開源還是閉源就像專有軟件那樣,用戶在使用開源軟件時必須接受一份許可證的條款——但開源許可的法律條款和專有軟件的許可截然不同。開源許可證影響人們使用、學習、修改以及分發的方式??偟膩碚f,開源許可證賦予計算機用戶按他們想要的目的來使用開源軟件的許可。一些開源許可證規定任何發布了修改過的開源軟件的人,同時還要一同發布它的源代碼。此外,另一些開源許可規定任何修改和分享一個程序給其他人的人,還要分享這個程序的源代碼,而且不能收取許可費用。2.1.3開源還是閉源開源軟件許可證有意地提升了協作和分享,因為它們允許其他人對代碼作出修改并將改動包含到他們自己的項目中。開源許可證鼓勵開發者隨時訪問、查看、修改開源軟件,前提是開發者在分享成果的時候允許其他人也能夠做相同的事情。2.1.3開源還是閉源2.開源思想對開發者和非開發者都有益早期的創造者基于開源技術構建了互聯網本身的大部分——比如Linux操作系統和ApacheWeb服務器應用——任何今天使用互聯網的人都受益于開源軟件。2.1.3開源還是閉源每當計算機用戶瀏覽網頁、檢查郵件、和朋友聊天、在線收聽流媒體音樂、玩多人游戲的時候,他們的電腦、手機或游戲主機都會連接到一個全球性的計算機網絡,使用開源軟件來路由(指路由器從一個接口上收到數據包,根據數據包的目的地址進行定向并轉發到另一個接口的過程)并將他們的數據傳輸到面前的“本地”設備上。完成這些重要工作的計算機通常位于很遠的地方,用戶不會實際看到或物理接觸到它們——所以有些人稱之為“遠程計算機”。2.1.3開源還是閉源越來越多的人開始依賴于遠程計算機,在可以在本地完成的任務在線完成。舉個例子,人們可能會使用在線文字處理、電子郵件管理、圖片編輯工具,而在本地的個人電腦并沒有安裝運行相應的軟件。人們輕松地使用瀏覽器或手機應用訪問這些程序。當他們這么做的時候,他們參與到了“遠程計算”中。2.1.3開源還是閉源一些人將遠程計算稱為“云計算”,因為它涉及的活動(像是存儲文件、分享照片、觀看視頻)不僅包含本地設備,還有一個遠程計算機全球網絡,像是圍繞在周圍的大氣。云計算是日常生活一個越來越重要的概念,離不開連接互聯網的設備。一些云計算應用,比如谷歌應用是專有的。其他的,像OwnCloud和NextCould是開源的。2.1.3開源還是閉源云計算應用運行在一些額外的軟件“之上”,這些軟件幫助它們流暢高效地操作,所以人們經常說那個軟件運行在云計算應用“之下”,為那些應用扮演一個“平臺”。云計算平臺可以是開源或閉源的。OpenStack是一個開源云計算平臺的例子。2.1.3開源還是閉源3.人們更傾向于使用開源軟件人們相對于專有軟件更傾向于開源軟件有很多原因,包括:(1)可控。很多人青睞開源軟件因為相對其他類型軟件他們可以擁有更多的可控制性。他們可以檢查代碼來保證它沒有做任何不希望它做的事情,并且可以改變不喜歡的部分。不是開發者的用戶也可以從開源軟件獲益,因為他們可以以任何目的使用這個軟件——而不僅僅是某些人認為他們應該有的目的。2.1.3開源還是閉源(2)訓練。其他人喜歡開源軟件是因為它可以幫助他們成為更好的開發者。因為開源代碼可以公開訪問,學生可以在學習創建更好的軟件時輕松地從中學習。學生還可以在提升技能的時候分享他們的成果給別人,獲得評價和批評。當人們發現程序源代碼中的錯誤的時候,可以將這個錯誤分享給其他人,幫助他們避免犯同樣的錯誤。2.1.3開源還是閉源(3)安全。一些人傾向開源軟件是因為他們認為它比專有軟件更安全和穩定。因為任何人都可以查看和修改開源軟件,就會有人可能會注意到并修正原作者遺漏的錯誤或疏忽。并且因為這么多的開發者可以在同一開源軟件上工作,而不用事先聯系獲取原作者的授權,相比專有軟件,他們可以更快速地修復、更新和升級開源軟件。2.1.3開源還是閉源(4)穩定。許多用戶在重要、長期的項目中相較專有軟件更加青睞開源軟件。因為開發者公開分發開源軟件的源代碼,如果最初的開發者停止開發了,關鍵任務依賴該軟件的用戶可以確保他們的工具不會消失,或是陷入無法修復的狀態。另外,開源軟件趨向于同時包含和按照開放標準進行操作。2.1.3開源還是閉源4.“開源”的含義不只是指經濟方面的開源軟件開發者可以為他們創建或貢獻的開源軟件收取費用。但在一些情況下,由于開源許可證可能會要求他們在將軟件賣給他人的時候發布源代碼,一些開發者發現向用戶收取軟件服務和支持(而不是軟件本身)的費用會更加合算。通過這種方式,他們的軟件仍然保持免費,而他們從幫助他人安裝、使用、解決問題中賺取費用。盡管一些開源軟件可能是免費的,但開源軟件的編程和解決問題的技能可能十分有價值。許多雇主特別尋求雇傭在開源軟件方面有工作經驗的開發者。2.1.3開源還是閉源5.“在軟件之外”的開源人們更愿意不僅將開源視為一種計算機軟件開發和許可的方式,也把它視作一種態度。實現“開源方式”的生活的各個方面,意味著表達一種分享的意愿,通過透明的方式和他人協作(這樣其他人也可以關注和加入),擁抱失敗,將它作為一種改進的手段,以及期待(甚至鼓勵)所有人都可以這么做。這也意味著在讓世界變得更好的過程中扮演一個積極的角色,這只有在每個人都可以接觸到對世界進行規劃的途徑時才有可能。2.1.3開源還是閉源這個世界充滿了“源代碼”——藍圖、食譜、規則——它們引導和塑造我們思考和行動的方式。我們相信這些深層代碼(無論是什么形式)應該是開放、可接觸、分享的——這樣人們可以參與其中并讓它變得更好。在這里,我們訴說開源價值對生活所有領域的影響的故事——科學、教育、政府、工業、健康、法律,以及組織動態。我們是一個社區,告訴他人開源的方式如何成為最好的方式,因為對開源的愛和其他一樣:當它被分享的時候它會變得更好。2.1.3開源還是閉源PART02大模型發展三階段在很短的一段實踐內,人們接連迎來了ChatGPT、Gemini、Gemma和Sora大模型的發布,整個人工智能圈和科技圈都異常沸騰。人工智能帶來的更像是工業革命的變革浪潮,將逐漸改變我們的生活和工作方式。大模型的發展歷程并不長,但是速度相當驚人,國內外已經有上百種大模型相繼發布。大模型的發展可以粗略的分為三個階段:基礎模型、能力探索、突破發展。2.2大模型發展三階段基礎模型階段主要集中于2018年至2021年。2017年瓦斯瓦尼等人提出了Transformer架構,在機器翻譯任務上取得了突破性進展。2018年,谷歌和OpenAI分別提出了BERT和GPT-1模型,開啟了預訓練語言模型時代。BERT-Base版本參數量為1.1億,BERT-Large的參數量為3.4億,GPT-1的參數量1.17億。這在當時,相比其他深度神經網絡的參數量已經是有數量級上提升。2019年OpenAI又發布了GPT-2,其參數量達到了5億。此后,谷歌也發布了參數規模為110億的T5模型。2020年OpenAI進一步將語言模型參數量擴展到1750億,發布了GPT-3。2.2.1基礎模型階段此后,國內也相繼推出了一系列的大模型,包括百度ERNIE、華為盤古-α等。這個階段研究主要集中語言模型本身,包括僅編碼器、編碼器-解碼器、僅解碼器等各種類型的模型結構都有相應的研究。模型大小與BERT相類似的算法,通常采用預訓練微調范式,針對不同下游任務進行微調。但是模型參數量在10億以上時,由于微調的計算量很高,這類模型的影響力在當時相較BERT類模型有不小的差距。2.2.1基礎模型階段能力探索階段集中于2019年至2022年,由于大模型很難針對特定任務進行微調,研究者開始探索在不針對單一任務進行微調的情況下,如何能夠發揮大模型的能力。2019年雷德福等人就使用GPT-2研究了大模型在零樣本情況下的任務處理能力。在此基礎上,Brown等人在GPT-3模型上研究了通過語境學習進行少樣本學習的方法,將不同任務的少量有標注的實例拼接到待分析的樣本之前輸入語言模型,用語言模型根據實例理解任務并給出正確結果。在包括TriviaQA、WebQS、CoQA等評測集合都展示出了非常強的能力,在有些任務中甚至超過了此前的有監督方法。2.2.2能力探索階段上述方法不需要修改語言模型的參數,模型在處理不同任務時無需花費大量計算資源進行模型微調。但是僅依賴基于語言模型本身,其性能在很多任務上仍然很難達到有監督學習效果,因此研究人員們提出了指令微調方案,將大量各類型任務,統一為生成式自然語言理解框架,并構造訓練語料進行微調。2.2.2能力探索階段突破發展階段以2022年11月ChatGPT的發布為起點。ChatGPT通過一個簡單的對話框,利用一個大模型就可以實現問題回答、文稿撰寫、代碼生成、數學解題等過去自然語言處理系統需要大量小模型訂制開發才能分別實現的能力。它在開放領域問答、各類自然語言生成式任務以及對話上文理解上所展現出來的能力遠超大多數人的想象。2.2.3突破發展階段2023年3月GPT-4發布,相較于ChatGPT又有了非常明顯的進步,并具備了多模態理解能力。GPT-4在多種基準考試測試上的得分高于88%的應試者,包括美國律師資格考試、法學院入學考試、學術能力評估等。它展現了近乎“通用人工智能(AGI)”的能力。各大公司和研究機構也相繼發布了此類系統,包括谷歌推出的Bard、百度的文心一言、科大訊飛的星火大模型、智譜ChatGLM等。2.2.3突破發展階段PART03Transformer模型Transformer是一種在自然語言處理領域中廣泛使用的深度學習模型,它源自谷歌公司在2017年發表的一篇論文“注意力就是你所需要的”。Transformer模型的主要特點是使用了“自注意力”機制,允許模型在處理序列數據時考慮到序列中所有元素的上下文關系。Transformer模型首先應用于機器翻譯的神經網絡模型架構,目標是從源語言轉換到目標語言,Transformer模型完成了對源語言序列和目標語言序列全局依賴的建模。因為它適用于并行化計算,其模型復雜程度使它在精度和性能上都要高于之前流行的RNN循環神經網絡,如今,幾乎全部大語言模型都基于Transformer結構。2.3Transformer模型可以簡單地把Transformer看成是一個黑盒子,當我們在做文本翻譯任務時,輸入一段中文,經過這個黑盒子之后,輸出來的就是翻譯過來的英文。圖2-1把Transformer當成黑盒子2.3.1Transformer過程黑盒子里面主要有兩部分組成:編碼器組和解碼器組(見圖2-2)。當輸入一個文本的時候,該文本數據經過編碼器模塊對該文本進行編碼,然后將編碼數據傳入解碼器模塊進行解碼,得到翻譯后的文本。圖2-2黑匣子里面裝著編碼器組和解碼器組2.3.1Transformer過程一般情況下,編碼器組模塊里邊有6個小編碼器,同樣的,解碼器組里邊有6個小解碼器。編碼器里邊是自注意力機制加上一個前饋神經網絡(見圖2-4)。圖2-4編碼器內部結構2.3.1Transformer過程我們通過以下步驟來解釋自注意力機制。步驟1:模型最初輸入的是詞向量形式。自注意力機制,顧名思義就是自己和自己計算一遍注意力,對每一個輸入的詞向量需要構建自注意力機制的輸入。這里,Transformer將詞向量乘上三個矩陣,得到三個新的向量,這是為了獲得更多的參數,提高模型效果。對于輸入X1(機器),乘上三個矩陣后分別得到Q1、K1、V1(見圖2-5)。同樣,對于輸入X2(學習),也乘上三個不同的矩陣得到Q2、K2、V2。圖2-5得到三個新的向量2.3.1Transformer過程步驟2:計算注意力得分。這個得分是通過計算Q與各個單詞的K向量的點積得到的。以X1為例,分別將Q1和K1、K2進行點積運算,假設分別得到得分112和96(見圖2-6)。圖2-6計算注意力得分2.3.1Transformer過程步驟3:將得分分別除以一個特定數值8(K向量的維度的平方根,通常K向量的維度是64)這能讓梯度更加穩定,得到結果14和12。步驟4:將上述結果進行softmax運算,得到0.88和0.12。softmax運算主要是將分數標準化,使得數都是正數并且加起來等于1。2.3.1Transformer過程步驟5:將V向量乘上softmax的結果,這主要是為了保持想要關注的單詞的值不變,而掩蓋掉那些不相關的單詞,例如將它們乘上很小的數字(見圖2-7)圖2-7V向量乘softmax2.3.1Transformer過程步驟6:將帶權重的各個V向量加起來,至此,在這個位置上(第一個單詞)產生自注意力機制層的輸出,其余位置的自注意力機制輸出計算方式相同。將上述過程總結為一個公式(見圖2-8)。圖2-8過程總結2.3.1Transformer過程為進一步細化自注意力機制層,增加了“多頭注意力機制”的概念,這從兩個方面提高了自注意力層的性能。第一個方面,擴展了模型關注不同位置的能力。第二個方面,給自注意力層多個“表示子空間”。2.3.1Transformer過程多頭自注意力機制不止有一組Q/K/V權重矩陣,而是有多組(例如用8組),所以每個編碼器/解碼器使用8個“頭”(可以理解為8個互不干擾自的注意力機制運算),每一組的Q/K/V都不相同。然后,得到8個不同的權重矩陣Z,每個權重矩陣被用來將輸入向量投射到不同的表示子空間。經過多頭注意力機制后,就會得到多個權重矩陣Z,將多個Z進行拼接就得到了自注意力機制層的輸出(見圖2-9)。

圖2-9自注意力機制層的輸出2.3.1Transformer過程自注意力機制層的輸出即是前饋神經網絡層的輸入,只需要一個矩陣就可以了,不需要8個矩陣,所以需要把這8個矩陣壓縮成一個,這只需要把這些矩陣拼接起來,然后用一個額外的權重矩陣與之相乘即可。最終的Z就作為前饋神經網絡的輸入(見圖2-10)。圖2-108個矩陣的壓縮2.3.1Transformer過程接下來就進入小編碼器里邊的前饋神經網模塊了。前饋神經網絡的輸入是自注意力機制的輸出,即圖2-10中的Z,是一個維度為(序列長度×D詞向量)的矩陣。之后前饋神經網絡的輸出也是同樣的維度。進一步,一個大的編碼部分就是將這個過程重復6次,最終得到整個編碼部分的輸出。然后,Transformer中使用6個解碼器,為了解決梯度消失問題,在解碼器和編碼器中都用了殘差神經網絡的結構,即每一個前饋神經網絡的輸入不光包含上述自注意力機制的輸出Z,還包含最原始的輸入。2.3.1Transformer過程編碼器是對輸入(機器學習)進行編碼,使用的是自注意力機制+前饋神經網絡的結構。在解碼器中使用的也是同樣的結構,首先對輸出(機器學習)計算自注意力得分。不同的地方在于,進行自注意力機制后,將自注意力機制的輸出與解碼器模塊的輸出計算一遍注意力機制得分,之后再進入前饋神經網絡模塊。2.3.1Transformer過程至此,通過Transformer編碼和解碼兩大模塊,完成將“機器學習”翻譯成“machinelearning”的過程。解碼器輸出本來是一個浮點型的向量,為轉化成“machinelearning”這兩個詞,這個工作是最后的線性層接上一個softmax。其中,線性層是一個簡單的全連接神經網絡,它將解碼器產生的向量投影到一個更高維度的向量上,假設模型的詞匯表是10000個詞,那么向量就有10000個維度,每個維度對應一個唯一的詞的得分。之后的softmax層將這些分數轉換為概率。選擇概率最大的維度,并對應地生成與之關聯的單詞作為此時間步的輸出就是最終的輸出。2.3.1Transformer過程假設詞匯表維度是6,那么輸出最大概率詞匯的過程如圖2-11所示。圖2-11最大概率詞匯過程以上就是Transformer的框架。整個框架并沒有考慮順序信息,這就需要提到“位置編碼”概念,可以讓輸入攜帶位置信息。2.3.1Transformer過程Transformer模型主要由編碼器和解碼器兩部分組成。(1)編碼器:由多個相同的層組成,每一層都有兩個子層。第一個子層是自注意力層,它可以考慮到輸入序列中所有元素的上下文關系。第二個子層是一個前饋神經網絡。每個子層后面都跟有一個殘差連接和層歸一化。編碼器的任務是將輸入序列轉換為一組連續的表示,這些表示考慮了輸入序列中每個元素的上下文。2.3.2Transformer結構(2)解碼器:也由多個相同的層組成,每一層有三個子層。第一個子層是自注意力層,但它在處理當前元素時,只考慮到該元素及其之前的元素,不考慮其后的元素,這種機制被稱為掩碼自注意力。第二個子層是一個編碼器-解碼器注意力層,它使解碼器可以關注到編碼器的輸出。第三個子層是一個前饋神經網絡。每個子層后面都跟有一個殘差連接和層歸一化。解碼器的任務是基于編碼器的輸出和前面已經生成的元素,生成下一個元素。2.3.2Transformer結構基于Transformer的編碼器和解碼器結構如圖2-12所示,左側和右側分別對應著編碼器和解碼器結構,它們均由若干個基本的Transformer塊組成(對應圖中的灰色框)。這里N×表示進行了N次堆疊。每個Transformer塊都接收一個向量序列{xi}作為輸入,并輸出一個等長的向量序列作為輸出{yi}。這里的xi和yi分別對應文本序列中的一個詞元的表示。yi是當前Transformer塊對輸入xi進一步整合其上下文語義后對應的輸出。2.3.2Transformer結構

圖2-12基于Transformer的編碼器和解碼器結構2.3.2Transformer結構先通過輸入嵌入層將每個單詞轉換為其相對應的向量表示。在從輸入到輸出的語義抽象過程中,主要涉及如下幾個模塊。(1)注意力層:自注意力操作是基于Transformer的機器翻譯模型的基本操作,在源語言的編碼和目標語言的生成中頻繁地被使用,以建模源語言、目標語言任意兩個單詞之間的依賴關系。使用多頭注意力機制整合上下文語義,它使得序列中任意兩個單詞之間的依賴關系可以直接被建模而不基于傳統的循環結構,從而更好地解決文本的長程依賴問題。2.3.3Transformer模塊(2)位置感知前饋網絡層:前饋層接收自注意力子層的輸出作為輸入,并通過一個帶有ReLU激活函數的兩層全連接網絡對輸入文本序列中的每個單詞表示進行更復雜的非線性變換。2.3.3Transformer模塊由Transformer結構組成的網絡結構通常都非常龐大。編碼器和解碼器均由很多層基本的Transformer塊組成,每一層中都包含復雜的非線性映射,這就導致模型的訓練比較困難。因此,研究人員在Transformer塊中進一步引入了殘差連接與層歸一化技術,以進一步提升訓練的穩定性。具體來說,殘差連接主要是指使用一條直連通道將對應子層的輸入連接到輸出,避免在優化過程中因網絡過深而產生潛在的梯度消失問題。2.3.3Transformer模塊(3)殘差連接:對應圖中的Add部分。它是一條分別作用在上述兩個子層中的直連通路,被用于連接兩個子層的輸入與輸出,使信息流動更高效,有利于模型的優化。(4)層歸一化:對應圖中的Norm部分。它作用于上述兩個子層的輸出表示序列,對表示序列進行層歸一化操作,同樣起到穩定優化的作用。2.3.3Transformer模塊PART04生成式預訓練語言模型GPT計算機視覺領域采用ImageNet(數據集)對模型進行一次預訓練,使得模型可以通過海量圖像充分學習如何提取特征,再根據任務目標進行模型微調。受此范式影響,自然語言處理領域基于預訓練語言模型的方法也逐漸成為主流。以ELMo為代表的動態詞向量模型開始了語言模型預訓練,此后,以GPT(生成式預訓練)和BERT(來自變壓器的雙向編碼器表示)為代表的基于Transformer的大規模預訓練語言模型出現,使自然語言處理全面開啟預訓練微調范式。2.4生成式預訓練語言模型GPT利用豐富的訓練數據、自監督的預訓練任務及Transformer等深度神經網絡結構,預訓練語言模型具備了通用且強大的自然語言表示能力,能夠有效地學習到詞匯、語法和語義信息。將預訓練模型應用于下游任務時,不需要了解太多的任務細節,不需要設計特定的神經網絡結構,只需要“微調”預訓練模型,即使用具體任務的標注數據在預訓練語言模型上進行監督訓練,就可以取得顯著的性能提升。2.4生成式預訓練語言模型GPTOpenAI公司在2018年提出的GPT是典型的生成式預訓練語言模型(見圖2-13),它是由多層Transformer組成的單向語言模型,主要分為輸入層、編碼層和輸出層三部分。

圖2-13GPT的模型結構2.4生成式預訓練語言模型GPT(1)無監督預訓練。GPT采用生成式預訓練方法,單向意味著模型只能從左到右或從右到左地對文本序列建模,所采用的Transformer結構和解碼策略保證了輸入文本每個位置只能依賴過去時刻的信息。(2)有監督下游任務微調。通過無監督語言模型預訓練,使得GPT模型具備了一定的通用語義表示能力。下游任務微調的目的是在通用語義表示的基礎上,根據下游任務的特性進行適配。下游任務通常需要利用有標注數據集進行訓練。2.4生成式預訓練語言模型GPTPART05大模型的結構當前,絕大多數大語言模型都采用類似GPT的架構,使用基于Transformer結構構建的僅由解碼器組成的網絡結構,采用自回歸的方式構建語言模型,但是在位置編碼、層歸一化位置、激活函數等細節上各有不同。下面以LLaMA模型為例進行介紹。2.5大模型的結構LLaMA是Meta(原臉書)公司的開源大模型,其參數量從70億到650億不等。根據初步測試,130億參數的LLaMA模型“在大多數基準上”可以勝過參數量達1750億的GPT-3,而且可以在單塊V100GPU上運行;而

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論