Transformer架構 在2017年,Vaswani等人發表了一篇標誌性的論文,名為“Attention is All You Need” (論文連結)。這篇論文首次介紹了Transformer架...
Transformer架構 在2017年,Vaswani等人發表了一篇標誌性的論文,名為“Attention is All You Need” (論文連結)。這篇論文首次介紹了Transformer架構,這是一種新的深度學習模型,它完全依賴於自注意力機制來處理序列數據。Transformer架構摒棄了以往的RNN和CNN模型,開創了自然語言處理的新時代。 下圖為: Transformer的後續發展狀況 (當初寫這份ppt只做到2021但之後會更新到2023)。 Transformer模型由兩部分組成:編碼器和解碼器。編碼器負責處理輸入數據,解碼器則用於生成輸出數據。每個編碼器和解碼器都由多個相同的層組成,每層都有兩個主要的部分:自注意力機制和前向神經網絡。 圖片來源:Attention is All You Need 自注意力機制允許模型在處理序列數據時,考慮到序列中的每個元素與其他元素之間的關係。這使得Transformer能夠捕捉到長時間內的依賴關係,這在以前的模型中是一個挑戰。 GPT系列的出現: GPT - Improving Language Understanding by Generative Pre-Training: GPT的第一個版本在2018年由OpenAI發布,它擁有1.17億個參數。儘管這個模型相對較小,但它已經展示了驚人的生成文本的能力。 GPT-1提出的背景: 1. 論文提到NLP領域沒有大量標好的數據(doesn’t like ImageNet in CV)。 2. 所以就很需要一個無監督的預訓練模型。 創新:使用大量沒有標號的文本構建了一個生成預訓練的語言模型。 下游任務微調(fine-tune)時,相比原本的工作只需要改變輸入的形式,而不需要改變很多模型的架構。 挑戰: 1.損失函數,NLP當時沒有一種損失函數在多個任務上表現都還不錯。 2.怎麼將預訓練模型有效地用於下游任務。 GPT-1採用了Transformer的Decoder部分,與一開始Transformer的Decoder相比,少了中間部分,將Decoder module變成了12塊,即N=12。维度由512-->768. 模型裡面的細節均與基礎的Transformer一樣。 圖片來源:Attention is All You Need 下面是論文中給出的NLP領域裡4大常見的應用在GPT-1下如何進行下游任務學習的圖示。 圖片來源:Attention is All You Need GPT-2 GPT的第二個版本,即GPT-2,於2019年發布。GPT-2擁有15.4億個參數,是其前身的10倍大。GPT-2展示了更加精確和靈活的文本生成能力,能夠生成極其真實的人類般的文本。由於其生成能力過於強大,OpenAI最初決定不公開GPT-2的訓練模型,以防止其被用於生成假新聞或其他有害內容。 GPT-2的論文可以在這裡找到:GPT-2: Language Models are Unsupervised Multitask Learners GPT-2:Language Models are Unsupervised Multitask Learners(無監督的多任務學習機) 背景: NLP下主流的是預訓練模型+具體任務上微調(fine tune)。 這些方法存在問题是每個下游任務需要重新訓練模型,並且需要有標籤的數據。 主要創新:引入Zero-shot設定,即在下游任務不需要任何標註信息,也不需要重新訓練模型。即可以一次性訓練一個模型做多個任務。 由於模型與GPT-1基本上是一樣的(基於Decoder的Transformer模塊)。我們主要看它怎麼做Zero-shot learning。 然而,要想做好Zero-shot,需要一個很大的數據集提供支撑(因為需要大量的知識才能做很多個下游任務,而不需要再微調)。 所以先看一下GPT-2數據集:4500萬個網頁in Reddit。 Note: Reddit是一個新聞聚集網站,上面有網友提交的一些感興趣的網頁。然後Reddit的用户會投票。然後GPT-2就去爬取4500個鏈結Karma>3,然後抽出裡面的文字訊息得到數據集。(800萬個文本,差不多40GB)。 作者給出了一個在這個Reddit數據集中的文本現象來解釋為什麼能做成Zero-shot。 我們可以看到下面的文本中有許多英語翻譯法語的“提示符”,所以模型可能真能學到你要幹什麼。 傳統的任務下預先訓練模型需要微調,即更新模型/梯度, 使用Zero-shot後直接告訴模型即可,不需要任何對模型的操作,直接用預訓練的模型。 實驗結果: 圖片來源:Attention is All You Need 可以看到,雖然性能一般,但隨着參數量的增大,性能一直在提升。 GPT-3 2020年,OpenAI發布了GPT-3。這是一個擁有1750億個參數的巨型模型,是當時世界上最大的語言模型。GPT-3的生成能力令人驚嘆,它不僅可以生成極其真實的文本,還可以進行翻譯、寫作、編程、設計等多種任務。 GPT-3的論文可以在這裡找到:Language Models are Few-Shot Learners 其實類似Chat-GPT,GPT-3的API當時也被玩出很多花樣兒了。 GPT3 - Language Models are Few-Shot Learners: GPT-2雖然有新意,但效果一般。GPT-3主要就是在GPT-2上的進一步的工作,實現了所謂大力出奇蹟, 硬train一發最後總有機會成功的例子。 主要提出的重點是Few-shot, zero-shot(但個人覺得這個點是為了寫點東西說的,因為GPT-2也能做,只是在這提出了這麼個概念)。更多是工程方面的工作。 我們看看GPT-3具體做了甚麼就行。 GPT-3進行了3種實驗: 1. Zero-shot 2. One-shot 3. Few-shot(10-100樣本) 下面先回顧Zero-shot。 (NLP 填空任務下三種prompt type比較) 以下是論文給出的GPT3生成的新聞: 圖片來源:Attention is All You Need GPT-3的局限性: 無法生成長文本(小說) 結構和算法的局限性(不能反過來看) 不知道哪些詞是重要,哪些是不重要的沒有圖像處理能力,也沒有物理世界的交互 不可解釋 訓練很貴 也可能帶來危害(虛假新聞,釣魚郵件)模型容易帶有偏見(涉及到犯罪,更多是黑人;涉及到表揚的詞,則更多是男等...)