🐡

LLMをざっとまとめ ver.1

2023/08/15に公開

自分の理解と整理のために、2017年のTransformer登場以降のLLMをまとめてみます

目次

  1. Transformer
  2. GPT
  3. BERT
  4. GPT-2
  5. RoBERTa

Transformer

まずはベースとなるTransformerから

論文(2017年6月)
https://arxiv.org/abs/1706.03762

概要

  1. Attentionを使うことで大規模な並列計算が可能なアーキテクチャ
  2. 以降の多くのモデルのベースとなる

アーキテクチャ


論文より転載

  1. エンコーダデコーダ型を採用
    • 「マルチヘッドアテンション層」「順伝播型ネットワーク」から成るエンコーダ層
    • 「マスクされたマルチヘッドアテンション層」「エンコーダから一部入力を受けとるマルチヘッドアテンション層」「順伝播型ネットワーク」から成るデコーダ層
  2. アテンションによる入力トークン間の関連性表現
    • Query,Key,Valueによって計算、さらに複数ヘッドにすることで各トークンの多様な意味を表現
  3. その他の要素
    • 順伝播型ネットワークではReLUで活性化
    • 埋め込みとソフトマックス
    • 位置エンコーディングには三角関数を使用

学習と結果

  • 450万セットの英独翻訳データ
    - BLEUスコア28.4
  • 3600万セットの英仏翻訳データ
    - BLEUスコア41.8
  • いずれもSoTA

GPT

次はOpenAIのGPT

論文(2018年6月)
https://openai.com/research/language-unsupervised

概要

  • 大量のラベルなしデータを使って事前学習することで、少量のラベル付きデータによるfine-tuningするだけで様々なタスクを処理できるモデルを作った

アーキテクチャ

  • Transformerのデコーダ部分を使用
    • 位置エンコーディングをパラメータで持たす、活性化関数にGELUを使う等の変更あり
  • パラメータ数
    • 1.1億 (全12層、隠れ層768次元、ヘッド数12)

学習

  • 事前学習
    • 前方の内容から次の単語を予測させて学習
    • 7000以上の本から成るBooksCorpusデータセット
  • fine-tuning
    • 各タスクに合わせた学習
    • 次単語の予測と文章の分類の2タスクを同時に行う

結果

  1. Natural Language Inference (推論)
    • MNLI、SNLI、SciTail、QNLIでSoTA
    • RTEはデータ数が少なくSoTAならず
  2. Question Answering (質疑応答)
    • StoryCloze、RACEでSoTA
  3. Semantic Similarity (類似判定)
    • STS-B、QQPでSoTA
    • MRPCではSoTAならず
  4. Classification (分類)
    • CoLAでSoTA
    • SST-2ではSoTAならず

BERT

続けてBERT

論文(2018年10月)
https://arxiv.org/abs/1810.04805

概要

  • 文章を双方向に予測させ学習させることで、様々なタスクにfine-tuning可能なモデルを作った

アーキテクチャ

  • Transformerのエンコーダ部分を使用
  • パラメータ数
    1. BERTbase 1.1億 (全12層、隠れ層768次元、ヘッド数12)
    2. BERTlarge 3.4億 (全24層、隠れ層1024次元、ヘッド数16)

学習

  • 事前学習
    • 8億語のBooksCorpusと25億語のWikiepediaのテキスト
    • 2種類のタスクを同時に実行
      • マスクしたトークンを当てるタスク(MLM)
        • 80%マスク、10%別トークン、10%変更なし
      • 2文が連続しているかを当てるタスク(NSP)
  • fine-tuning
    • 各タスクに合わせた学習
    • 出力層のみ付け替える

結果

  1. GLUE (推論、分類、類似判定等をまとめたタスク)
    • MNLI、QQP、QNLI、SST-2、CoLA、STS-B、MRPC、RTEの8項目
    • 8項目すべてでSoTA
  2. SQuAD v1.1、SQuAD v2.0 (質疑応答)
    • どちらもSoTA
  3. SQAG (推論)
    • SoTA

GPT-2

次はGPT-2

論文(2019年2月)
https://paperswithcode.com/paper/language-models-are-unsupervised-multitask

概要

  • パラメータ数と教師なしデータによる事前学習の量を増やすことで、特定タスクのための学習を必要としないモデルを作った

アーキテクチャ

  • GPTと同様にTransformerのデコーダ部分を使用
    • LayerNormalizationの位置を変える等、細かい変更あり
  • パラメータ数
    1. 1.1億 (全12層、隠れ層768次元)
    2. 3.4億 (全24層、隠れ層1024次元)
    3. 7.6億 (全36層、隠れ層1280次元)
    4. 15億 (全48層、隠れ層1600次元)

学習

  • 事前学習
    • GPTと同様に次単語の予測
    • webクローリングして取得したデータ(800万文書/40GB)
    • Byte Pair Encodingで入力
  • 追加学習はなし

結果

  1. 各種データセットを追加学習なしで予測
    • LAMBADA、Children's Book Test…を始めとする単語予測等のデータセットでSoTA
    • 1BWデータセットではSoTAならず
  2. Winograd Schema Challenge (推論)
    • SoTA
  3. Reading Comprehension(読解)、Translation(翻訳)、Summarization(要約)、Question Answering(質疑応答)
    • SoTAならず

RoBERTa

次はRoBERTa

論文(2019年7月)
https://arxiv.org/abs/1907.11692

概要

  • BERTのハイパーパラメータや学習データを調整することで、精度を大幅に改善した

アーキテクチャ

  • 基本はBERTと同じ
    • 一部パラメータを調整

学習

  • 事前学習
    • 合計160GBのテキストデータセット
      • BookCorpus、Wikipedia、CC-NEWS、OpenWebText、Stories
    • MLMのマスク場所を毎回動的に変更
    • NSPをなくし、512トークンの長文を入力データとした
    • バッチサイズを256→8000と大きくした
    • Byte Pair Encodingで入力
  • fine-tuning
    • 各タスクに合わせた学習

結果

  1. GLUE (推論、分類、類似判定等をまとめたタスク)
    • 5項目でSoTA
  2. SQuAD v1.1、SQuAD v2.0 (質疑応答)
    • SoTAと同等以上
  3. RACE (質疑応答)
    • SoTA

まとめ

  • どれもTransformerをベースとして、ハイパーパラメータ調整や学習方法の工夫で性能を上げてきた
  • そういった工夫の中でモデルサイズも段々とUP
  • 性能評価の方法もGLUEやRACE等、確立されている

…といったことが整理できました

まだまだ最新のモデルには追いついてないので、ver.2も書きます

Discussion