聲明:本文來自于微信公眾號 AIGC開放社區(ID:AIGCOPEN),作者:AIGC開放社區,授權轉載發布。
備受關注的大語言模型,核心是自然語言的理解與文本內容的生成,對于此,你是否好奇過它們究竟是如何理解自然語言并生成內容的,其工作原理又是什么呢?
要想了解這個,我們就不得不先跳出大語言模型的領域,來到機器翻譯這里。傳統的機器翻譯方式,還是采用RNN 循環神經網絡。
循環神經網絡(RNN)是一種遞歸神經網絡,以序列數據為輸入,在序列的演進方向進行遞歸且所有節點(循環單元)按鏈式連接。
釋義來源:文心一言
就“我畫一幅畫”這句話而言,它會先將其拆分為“我”、“畫”、“一幅”、“畫”四個詞,然后遞進式一個詞一個詞對這句話進行理解翻譯,像是:
然后輸出:I have drawn a picture.
這種方式簡單直接,但因為 RNN 自身的線性結構導致其無法對海量文本進行并行處理,運行緩慢,另外還會有“讀到后面忘了前面”,使 RNN 在處理長序列時會出現梯度消失或爆炸的狀況。
直到2017年,Google Brain 和 Groogle Research 合作發布了一篇名為《Attention Is All You Need》的論文,該論文為機器翻譯處理提供了一個嶄新的方式,同時起了一個與《變形金剛》相同的名字——Transformer。
Transformer 是一種神經網絡,它通過跟蹤序列數據中的關系來學習上下文并因此學習含義。該模型在2017年由 Google 提出,是迄今為止發明的最新和最強大的模型類別之一。
釋義來源:文心一言
Transformer 能對海量文本進行并行處理,因為它使用的是一種特殊的機制,稱為自注意力(self-attention)機制。就像我們在進行長閱讀時,大腦會依靠注意力選擇重點詞進行關聯,從而“略讀”后對文章更好的理解,該機制的作用就是賦予AI這項能力。
self-attention 是一種注意力機制,它通過對輸入序列進行線性變換,得到一個注意力權重分布,然后根據這個分布加權輸入序列中的每個元素,得到最終的輸出。
釋義來源:文心一言
同樣還是“請注意垃圾分類”這句話,同樣是被分成“我”、“畫”、“一幅”、“畫”四個詞,在 Transformer 中它們會經歷輸入、編碼器(encoder)、解碼器(decoder)、輸出四個階段。
具體來看,當句子拆解后輸入到編碼器(encoder)中,編碼器會先對每個詞的生成一個初始表征,可簡單理解為對每個詞的初始判斷,比如“畫”是名詞,也可以是動詞。
然后,利用自注意力(self-attention)機制計算詞與詞之間的關聯程度,可以理解為進行打分,比方第一個“畫”與“我”的關聯程度高就給打6分,第二個“畫”與“一幅”的關聯也高打8分,“我”與“一幅”沒什么關聯就打-2分。
接著,根據打分對先前生成的初始表征進行加工,第一個“畫”與“我”的關聯程度高,那就可以降低表征中對名詞詞性的判斷,提升動詞詞性的判斷;第二個“畫”與“一幅”的關聯程度高,那就可以降低表征中對動詞詞性的判斷,提升名詞詞性的判斷。
最后,將加工過的表征輸入到解碼器(decoder),解碼器(decoder)再根據對每個詞的了解結合上下文,再輸出翻譯。在這期間,每個詞與詞之間都可以同時進行,大大提高了處理速率。
可這樣的 Transformer 和大語言模型有什么關系呢?
大語言模型本就是指使用大量文本數據訓練的深度學習模型,而 Transformer 正好能為大量文本數據訓練提供足夠的動力。另外,在加工過的表征輸入到解碼器(decoder)后,能依靠這些表征推斷下一個詞出現的概率,然后從左到右逐字生成內容,在這個過程中還會不斷結合先前已生成的這個詞共同推斷。
比如根據“一幅”、“畫”這兩個詞推斷出下一個詞是“風格”的概率最大,再兼顧“一幅”、“畫”與“風格”推斷下下個詞是“水墨”,以此類推再下下下個詞,下下下下個詞,這才有了我們看到的大語言模型的內容生成。
這也是為什么大家普遍認為,大語言模型的誕生起點,就是 Transformer。
那么,Transformer 中最關鍵的自注意力(self-attention)機制是如何知道“打多少分”的呢?
這是一套比較復雜的計算公式:
作簡單理解的話,可以想想數學課本上關于向量的知識,當兩個向量 a 和 b 同向,a.b=lallb|;當 a 和 b 垂直,a.b=0;當 a 和 b 反向,a.b=-lallbl。
如果把這里的 a、b 兩個向量,看作是“我”、“畫”、“一幅”、“畫”四個詞當中的兩個在空間中的投射,那 a 乘 b 的數值就是打分。
這個數值越大,兩個向量的方向越趨于一致,就代表著兩個詞的關聯程度大;
數值是0,那就是兩個向量垂直,同理詞之間就沒有關聯;
數值是負數,那兩個向量就是相反,兩個詞不但沒關聯,還差距過大。
只是這是簡單理解,在現實中還需要一套紛繁復雜的計算過程,并且還需要多次的重復,才能獲取到更加準確的信息,確定每個詞符合上下文語境的含義。
以上就是大語言模型的工作原理了,強大 Transformer 的實用性還不止于在自然語言處理領域,包括圖像分類、物體檢測和語音識別等計算機視覺和語音處理任務也都有它的身影,可以說 Transformer 就是是今年大模型井噴式爆發的關鍵。
當然,Transformer 再強也只是對輸入的處理過程,要想生成式 AI 生成的內容更符合我們的需求,一個好的輸入是重要前提,所以下一期我們就來聊聊什么是好的輸入,Prompt 又是什么?