天天看點

GPT系列:GPT, GPT-2, GPT-3精簡總結 (模型結構+訓練範式+實驗)1、GPT2、GPT-23、GPT-3

😄 花一個小時快速跟着 人生導師-李沐 過了一遍GPT, GPT-2, GPT-3。下面精簡地總結了GPT系列的模型結構+訓練範式+實驗。

文章目錄

  • 1、GPT
    • 1.1、模型結構:
    • 1.2、範式:預訓練 + finetune
    • 1.3、實驗部分:
  • 2、GPT-2
    • 2.1、模型結構
    • 2.2、範式:預訓練 + zero-shot
      • zero-shot, one-shot, few-shot的差別:
    • 2.3、實驗
  • 3、GPT-3
    • 3.1、模型結構:
    • 3.2、範式:預訓練 + few-shot
    • 3.3、實驗
    • 3.4、GPT-3局限性

1、GPT

論文:《Improving Language Understanding by Generative Pre-Training》, OpenAI

1.1、模型結構:

  • GPT基于transformer的decoder結構。

1.2、範式:預訓練 + finetune

也是自監督預訓練 (語言模型)+微調的範式。

  • 預訓練:用的是标準的語言模型的目标函數,即似然函數,根據前k個詞預測下一個詞的機率。
  • 微調:用的是完整的輸入序列+标簽。目标函數=有監督的目标函數+λ*無監督的目标函數。
  • 改變輸入形式,接上對應下遊任務的層,就可實作不同下遊任務。
    GPT系列:GPT, GPT-2, GPT-3精簡總結 (模型結構+訓練範式+實驗)1、GPT2、GPT-23、GPT-3

1.3、實驗部分:

  • 使用BookCorpus資料集訓練,包括7000篇未發表的書
  • 模型使用12層trm的解碼器,每層次元768

2、GPT-2

《Language Models are Unsupervised Multitask Learners》, OpenAI

2.1、模型結構

  • GPT-2也是基于transformer的decoder結構。

2.2、範式:預訓練 + zero-shot

  • GPT-2可以在zero-shot設定下實作下遊任務,即不需要用有标簽的資料再微調訓練。
  • 為實作zero-shot,下遊任務的輸入就不能像GPT那樣在構造輸入時加入開始、中間和結束的特殊字元,這些是模型在預訓練時沒有見過的,而是應該和預訓練模型看到的文本一樣,更像一個自然語言。
  • 可以通過做prompt模版的方式來zero-shot。例如機器翻譯和閱讀了解,可以把輸入構造成,“請将下面的一段英語翻譯成法語,英語,法語”。

zero-shot, one-shot, few-shot的差別:

GPT系列:GPT, GPT-2, GPT-3精簡總結 (模型結構+訓練範式+實驗)1、GPT2、GPT-23、GPT-3
GPT系列:GPT, GPT-2, GPT-3精簡總結 (模型結構+訓練範式+實驗)1、GPT2、GPT-23、GPT-3
GPT系列:GPT, GPT-2, GPT-3精簡總結 (模型結構+訓練範式+實驗)1、GPT2、GPT-23、GPT-3

2.3、實驗

  • 資料從Reddit中爬取出來的優質文檔,共800萬個文檔,40GB。
  • GPT-2參數量1.5B,15億。
  • 模型越大,效果越好。
  • 是以考慮用更多的資料,做更大的模型,于是GPT-3應運而生。

3、GPT-3

《Language Models are Few-Shot Learners》, OpenAI

  • GPT-2雖然提出zero-shot,比bert有新意,但是有效性方面不佳。GPT-3考慮few-shot,用少量文本提升有效性。
  • 總結:GPT-3大力出奇迹!

3.1、模型結構:

  • GPT基于transformer的decoder結構。
  • GPT-3模型和GPT-2一樣,GPT-2和GPT-1差別是初始化改變了,使用pre-normalization,以及可反轉的詞元。GPT-3應用了Sparse Transformer中的結構。提出了8種大小的模型。

3.2、範式:預訓練 + few-shot

論文嘗試了如下方案,評估方法:few-shot learning(10-100個小樣本);one-shot learning(1個樣本);zero-shot(0個樣本);其中few-shot效果最佳。

  • fine-tuning:預訓練 + 訓練樣本計算loss更新梯度,然後預測。會更新模型參數
  • zero-shot:預訓練 + task description + prompt,直接預測。不更新模型參數
  • one-shot:預訓練 + task description + example + prompt,預測。不更新模型參數
  • few-shot:預訓練 + task description + examples + prompt,預測。不更新模型參數

3.3、實驗

  • GPT-3參數量1750億。
  • 爬取一部分低品質的Common Crawl作為負例,高品質的Reddit作為正例,用邏輯回歸做二分類,判斷品質好壞。接下來用分類器對所有Common Crawl進行預測,過濾掉負類的資料,留下正類的資料;去重,利用LSH算法,用于判斷兩個集合的相似度,經常用于資訊檢索;
  • 加入之前gpt,gpt-2,bert中使用的高品質的資料

3.4、GPT-3局限性

  • 生成長文本依舊困難,比如寫小說,可能還是會重複;
  • 語言模型隻能看到前面的資訊;
  • 語言模型隻是根據前面的詞均勻預測下一個詞,而不知道前面哪個詞權重大;
  • 隻有文本資訊,缺乏多模态;
  • 樣本有效性不夠;
  • 模型是從頭開始學習到了知識,還是隻是記住了一些相似任務,這一點不明确;
  • 可解釋性弱,模型是怎麼決策的,其中哪些權重起到決定作用?
  • 負面影響:可能會生成假新聞;可能有一定的性别、地區及種族歧視

繼續閱讀