上次《解讀AI大模型,從了解token開始》一文中,我從最基礎的概念“token”著手,跳過了復雜的算法邏輯,相信已經讓大家建立起對AI大模型工作原理的清晰認知。
但如果僅僅只是依靠對文本的編碼與數據分析,那人工智能時代應該早就到來了,為什么唯獨是GPT模型的誕生開啟了人工智能大模型的全盛時代?今天我將帶您一探究竟,看看GPT背后的Transformer模型。
什么是Transformer?
圖片
Transformer是一種新穎的神經網絡架構,它在2017年由google的研究人員提出,用于解決機器翻譯等自然語言處理的任務。Transformer的特點是,它完全摒棄了傳統的循環神經網絡(RNN)和卷積神經網絡(CNN),而是采用了一種稱為自注意力機制(Self-Attention)的方法,來捕捉文本中的長距離依賴關系,提高了模型的效率和準確性。
今天本文將圍繞自注意力機制,介紹Transformer 的三個主要概念,位置編碼、注意力機制和自注意力機制。
位置編碼(Positional Encodings)
在自然語言處理任務中,詞語的順序尤為重要。以“小明喜歡小紅”和“小紅喜歡小明”為例,這兩句話的詞語組成完全一樣,僅僅是順序不同,所表達的意思卻南轅北轍。因此,語言模型必須具備把握詞語順序的能力。
然而,Transformer采用的自注意力機制是通過單元之間的相關性來進行文本序列的編碼,也就是說模型本身并不能感知詞語的順序信息。為了克服這個困難,Transformer引入了一種稱為位置編碼(Positional Encoding)的技巧。
位置編碼的思路很簡單,就是在輸入序列中的每個詞語后面追加一個位置標記,用不同的數字表示它在句子中的位置。以句子“我愛吃蘋果”為例:
我 1 愛 2 吃 3 蘋果 4
- 1.
這樣一來,Transformer模型就可以區分詞語的順序了。這種方法極大地增強了模型處理自然語言的能力。事實上,位置編碼使得Transformer可以類比人類大腦處理語言的方式——人腦可以輕松地記住詞語出現的時間順序。Transformer通過位置編碼實現了類似的效果。
類比來說,當我們看一篇長篇小說時,當我們想搞清楚核心情節的發生順序時,我們往往不是翻看原文,而是在閱讀中就記錄下一條時間線,當發生關鍵劇情時,將其記錄在整個時間線的節點之上。之前大火的電影《信條》,相信很多小伙伴也都是通過時間線的方式才真正搞清楚劇情是如何發展的。
圖片
位置編碼也好,時間線也罷,其實這部分信息原本就是隱式的存在原始數據之中。我們的標記是將這部分隱式的結構數據顯示的表現出來,使得大模型在編解碼數據的過程中,把詞語在句子中的相對位置納入進來,進而將這一部分信息嵌入到維度向量中(或者準確說對某些維度產生影響)。
這與人類大腦以時間順序來認知事物或者組織語言的本能是類似的,而大模型的優勢在于擁有更大的存儲,因而不需要如同人類大腦一般需要進行關鍵節點的抽象,只要平等的對每一個詞語單元進行位置編碼即可。(我在這里做了一點過度簡化——最初的作者使用正弦函數來進行位置編碼,而不是簡單的整數 1、2、3、4——但要點是相同的。)
注意力機制(Attention)
在Transformer模型中,位置編碼為模型提供了詞語順序信息。而注意力機制則讓模型能更智能地使用這些信息。
什么是注意力機制呢?簡單來說,它就是允許Transformer模型在生成輸出時,參考輸入序列中的所有詞語,并判斷哪些詞對當前步驟更重要、更相關。以英譯法翻譯為例,當Transformer要翻譯一個英文單詞時,它會通過注意力機制快速“掃視”整個英文輸入序列,判斷應該翻譯成什么法文詞語。如果輸入序列中有多個相關詞語,注意力機制會讓模型關注最相關的那個,忽略其它不太相關的詞語。
圖片
標注翻譯輸入與輸出關注度的熱力圖
從人類行為的角度來看,注意力機制就更容易理解了。當我們閱讀一段文字時,基于基因本能以及歷史經驗,篩選重點關注的目標區域,得到注意力焦點的能力,從而利用有限的注意力資源從大量信息中快速篩選出高價值信息。大模型的注意力機制的形成就是類似的方式,類比大腦,大模型的本能與經驗則來源于詞嵌入形成的詞語向量親密度。通過觀察成千上萬的法語和英語句子,模型積累了什么類型的單詞是相互依賴的。
具體來說,Transformer中的注意力機制可以分為兩步:
- 第一步,計算詞語間的相關性。對輸入序列中每一對詞語,模型計算它們的相關性分數,分數越高表示兩者語義上越相關。
- 第二步,生成注意力分布。根據詞語間相關性的計算,得到一個注意力分布,它給每個詞語賦予一個權重,權重越大表示對當前步驟越重要。
- 最后,模型會依據這個注意力分布,對輸入序列進行加權,從而聚焦到相關詞語上。這就實現了注意力機制的作用。
相比于RNN等早期序列模型逐步處理輸入、無法捕捉長距離依賴的方式,注意力機制實現了全局感知,使Transformer可以并行地看到全部輸入,這極大地提升了其建模能力。正因如此,Transformer才可以勝任更難的語言理解任務。
自注意力機制(Self-Attention)
在Transformer模型中,除了注意力機制,還有一個更加強大的機制叫做自注意力(Self-Attention)。 首先我們說說注意力與自注意力的區別。
可以參考這個例子。比如說一條像蛇的井繩,會快速抓住人的眼球,讓人提高警惕,這描述的是注意力。而通過這條井繩出現在水井邊,并且一端系在水桶上,我們判斷它是一條井繩而不是蛇,則可類比為自注意力。
自注意力機制的核心思想是,允許模型學習詞語之間的相關性,也就是詞語與詞語之間的依賴關系。以句子“我愛吃蘋果”為例,通過自注意力,模型會學習到:
- “我”與“愛”有關
- “愛”與“吃”有關
- “吃”與“蘋果”有關
然后在處理時,模型會優先關注這些相關詞語,而不是簡單按照順序一個字一個字翻譯。
人類對一個事物的認知不是僅在于事物本身,往往會結合事物所處的環境,并結合與認知事物相關的其他事物作為一個整體來形成最終的認知。自注意力機制在文本中的應用也一樣,主要是通過計算單詞間的互相影響,來解決長距離依賴問題。
從認知角度來看,自注意力更貼近人類處理語言的方式。自注意力機制克服了傳統序列模型在處理長距離依賴時的局限性。正因如此,自注意力機制成為Transformer模型的“引擎”,可以處理更復雜的語言結構,達到更高的性能。自注意力讓Transformer不僅可以并行計算,更可以建模非連續的依賴關系,這對處理語言意義至關重要。
總結
Transformer模型之所以能夠在自然語言處理任務上取得巨大突破,關鍵在于其三大核心機制:
- 位置編碼提供了詞語順序信息
- 注意力機制讓模型可以關注關鍵詞語
- 自注意力機制幫助模型學習詞語間的依賴關系
這三者相輔相成,使得Transformer模型得以模擬人類語言處理的方式,達到了傳統RNN模型難以企及的效果。
未來,如何使Transformer模型更易于訓練,并能夠真正理解語言的深層語義,而不僅是表面形式,仍將是自然語言處理領域的核心挑戰。讓我們拭目以待Transformer帶來的更多驚喜吧!