- GPT #まとめ編
Index
GPT-2 とは
複数のタスク(Multi Task) やドメイン(Multi Domain) で事前学習を大規模に行うことで、 タスクやドメインごとに行うファインチューニングを 行わない(Zero-Shot Learning)、もしくは少数のデータでのみの学習(Few-Shot Learning) で精度を向上させることを目的とした手法.
アプローチ
考えの根幹となるのは言語モデル.
- 言語モデル / Language Model
このように言語モデルを条件付き確率で表現できれば、
確率の計算をニューラルネットに行わせば良いと考える.
- 条件付き確率
一般的な確率のフレームワークを以下のように表現できる.
さらに、タスクによって確率の計算方法が異なる(変わる)ことが多いので、条件付確率にタスクも追加する.
学習データ
学習データは、多様なドメインに渡るようにし、大規模なデータセットで構築する.
そこで、Web スクレイピングを利用. 安定した品質のデータの取得のため、
ある程度品質が保証されている Web サイトをフィルタリングして、データを取得する.
その結果
- 4500万のリンクからテキストを取得
- データクリーニング後に、40GB / 800万のテキスト
- (Wikipedia は削除)
Byte Pair Encoding (BPE)
ニューラル言語モデルへ入力するための処理として、
などがある.
これらの処理をスキップする方法として、単語を UTF-8 bytes の系列(シーケンス)に変換する Byte Pair Encoding (BPE) がある.
ネットワークアーキテクチャ
Transformer の Decoder をベースにしている GPT-1 を踏襲している.
変更点は、
- Attention Layer と FFN Layer の後にあるNormalization をそれらの前に移動. (Pre Normalization)
Pre Normalization を行うと Decoder Layer の最後の出力が FFN Layer になるので、Normalization を加える.
Pre Normalization
語彙を50257に増やす.
- コンテキストサイズを512から1024に増やす.
- バッチサイズを64から512に増やす.
学習済みモデル
gpt2-xl-japanese
gpt2-xl-japanese
パラメタ数1.5Bのgpt2-XLを学習した話
参考
- Language Models are Unsupervised Multitask Learners
- [2019 OpenAI] 発表論文
- Abstract
- 1 Introduction
- 2 Approach
- 2.1 Training Dataset
- 2.2 Input Representation
- 2.3 Model
- https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
Web サイト
- 【論文解説】OpenAI 「GPT-2」を理解する