🚀
LLMをざっとまとめ ver.2
前回の記事に続き、自分の理解と整理のためにLLMをまとめてます
目次
- T5
- GPT-3
- BART
T5
まずはT5から
論文(2019年10月)
概要
- 様々なタスクに転移学習しやすいようText-to-Textの形式に統一した
- その上で各種実験を行い、精度の高いモデルを作った
モデル
- 従来のTransformerに近いEncoder-Decoder形式
- C4データセットをBERTのように単語置き換えをして正解を予測させる手法で学習させた
- サイズ(パラメータ数)は以下のバリエーション
- T5-small … 6000万
- T5-Base … 2.2億
- T5-large … 7.7億
- T5-3B … 30億
- T5-11B … 110億
実験の詳細結果
-
モデル構造×目的関数
モデル構造(Encoder-Decoder×3パターン、Language Model、Prefix LM)と、目的関数(Denoising、LM)を組み合わせて比較
結果、従来のTransformerに近いEncoder-Decoder形式×BERTのように単語をマスクして予測するDenoisingを目的関数とする手法が、GLUEやSQuADなど様々なタスクで高成績となった -
目的関数詳細
後続文予測や並び替えを含む複数の目的関数を比較検証
結果、ランダムに置き換えられたBERT形式で正しい単語を予測する目的関数が高成績だった
また、置き換え割合は15%、置き換え対象となるトークン長は平均3とするのが最も良かった -
事前学習時のデータセット
C4データセットを使い、繰り返さず多様なデータで学習した方が良い…等を改めて検証 -
Fine Tuningの手法
Adapterを入れる手法等も試したが、結果モデルの全パラメータを更新する手法が最も高成績だった -
その他パラメータ
パラメータと学習量を同時にスケールさせたパターンが高成績だった
GPT-3
次はGPT-3
論文(2020年5月)
概要
- GPT-2と同様に教師あり学習を行わずに性能を高めるアプローチを行った
- より性能を高めるために、少数のデモンストレーションを与える手法を行い検証した
(Few-Shot/One-Shot/Zero-Shot)
モデル
- 基本はGPT-2と同様にTransformerのデコーダ部分
- サイズ(パラメータ数)バリエーションは以下
- GPT-3 Small … 1.2億
- GPT-3 Medium … 3.5億
- GPT-3 Large … 7.6億
- GPT-3 XL … 13億
- GPT-3 2.7B … 27億
- GPT-3 6.7B … 67億
- GPT-3 13B … 130億
- GPT-3 175B … 1750億
- Common Crawlデータセットをフィルタリングし(570GB)、別の高品質なデータを重みをつけて追加したものを使用
結果
GPT-3 175B(Few-Shot)において以下の結果となった
- SOTA達成…単語予測(LAMBADA)、質疑応答(TriviaQA)、翻訳(BLEUの一部)…等
- SOTAならず…単語予測(StoryCloze他)、質疑応答(NaturalQS他)、翻訳(BLEU)…等
- 数式計算やニュース生成でも良い結果
BART
今回の最後はBART
論文(2020年7月)
概要
- BERTをseq2seq(従来のTransformerに近いEncoder-Decoder形式)に改良した
- これにより、学習の自由度が高く、文章生成がよりうまくなった
モデル
- Encoder-Decoder形式
- 事前学習は以下の方法を検証
- Token Masking マスクした単語を予測
- Token Deletion 削除した単語を予測
- Text Infilling マスクした複数単語を予測
- Sentence Permutation シャッフルした文章を並び替え
- Document Rotation 回転した文章の最初の単語を予測
- サイズバリエーションはBERTと同じ2種類
- パラメータ1.1億(BERTbaseと同じ) さらに以下の学習のパターンも検証
- Language Model GPTと同様に左から右へ単語を予測
- Permuted Language Model XLNetと同様に順番を変えた文章から予測
- Masked Language Model BERTと同様に15%のマスクされた単語を予測
- Multitask Masked Language Model さらにマスクを追加
- Masked Seq-to-Seq 50%をマスクしSeq-to-Seqで予測
- パラメータ3.4億(BERTlargeと同じ) RoBERTaと同じ160GBのデータセットで大きいバッチサイズで学習
- パラメータ1.1億(BERTbaseと同じ) さらに以下の学習のパターンも検証
実験の詳細結果
- 通常サイズモデルの検証
- Text InfillingしたBARTが高成績だが全てで結果が良いわけではなかった
- 一部の質疑応答タスクではLanguage ModelしたBARTも高成績だった
- 大サイズモデルの検証
- 1の結果を踏まえて、学習はText Infilling+Sentence Permutation
- 分類系のタスクではRoBERTaと同程度、生成系のタスクでは高成績だった
まとめ
- ver.1の時期と比べて、モデルサイズが大きくなるだけでなく、アーキテクチャや学習手法など幅広く工夫をして性能を向上させている
- 各モデルのパフォーマンス領域も、系統の異なるタスクやFine Tuningの有無など分化している
…といったことが整理できました
次回ver.3ではより最近のモデルを見ていきます
Discussion