Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

1

Share

Download to read offline

Improving Language Understanding by Generative Pre-Training

Download to read offline

GPT初期版の論文。
TensorFlow User Group Tokyo主催の「NN論文を肴に酒を飲む会 #12 オンライン!」にて。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Improving Language Understanding by Generative Pre-Training

  1. 1. Improving Language Understanding by Generative Pre-Training Masao Taketani(竹谷 昌夫) 2020/09/16 1
  2. 2. https://github.com/Masao-Taketani https://bit.ly/36U7RqA 自己紹介 名前:竹谷 昌夫(たけたに まさお) 学歴:ミネソタ大学ツインシティー校 理工学部 統計学科卒 職業:ディープラーニング研究開発エンジニア(主に画像系。経験2年以上) 最近のプチ自慢:裸眼視力を大幅に上げたこと(両目共0.6ずつ上昇) https://bit.ly/2Z4NC7g エビデンス 2
  3. 3. この論文を選んだ理由 ● 最近自然言語界でディープラーニングの動向が激しいから ● 特に最近GPT-3が発表されて、GPTに関する基本知識を身に着けたいと思ったから ● TransformerやBERTの論文はさらっと読んだことがあり、それらとどう違うのか知りたかったから 3
  4. 4. 概要 ● 今回紹介する論文はいわゆるGPTの初期版。 ● 一つのモデルを少し変更し、ファインチューニングすることで様々なタスクに対応可能。 ● 事前学習に教師無し学習を採用。 ● 検証した12個のタスクのうち、9個タスクで当時のstate of the artを達成。 A. Radford, K. Narasimhan, T. Salimans, and I. Sutskever. Improving Language Understanding by Generative Pre-Training, 2018. 論文URL: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf ソースコードURL: https://github.com/openai/finetune-transformer-lm 4
  5. 5. Introduction ● これまでの多くのディープラーニングを使った手法では、人手によって多くの教師データを用意する必要 があり、そのためなかなか応用しにくい側面があった。 ● 多くの教師データが用意されていたとしても、教師無しの手法で得た特徴が精度向上に大きく関わってい た(word2vecやGloVeのような単語の分散表現を用いる) ● しかし、単語より上のレベルの表現を教師無しで行うには主に以下2つの課題があった ○ 転移の際に役立つ文表現を獲得するために、何を目的にすると効果的に最適化を行えるかが不透明だった ○ 事前学習で得た表現を目的のタスクに転移させるための効果的な手法が存在しなかった ● 当論文では事前学習に大量のデータを使って教師なし学習を行い、その後のファインチューニングに教師 あり学習を行う手法を紹介する(事前学習とファインチューニングの際に使用するデータは同じドメインで ある必要はない) ● 当論文の目的は様々なタスクに応用するために必要な普遍的な表現を獲得することにある ● 事前学習モデルのアーキテクチャに少しの変更を加えるだけで効果的にファインチューニングを行える 5
  6. 6. Framework 学習順序は以下の2つのステージからなる。 1. 大量のコーパスを使って言語モデルで教師無しの事前学習を行う 2. 事前学習させたモデルに対して、教師ありデータを使ってファインチューニングを行う 6
  7. 7. Framework(続き) 1.教師無し事前学習 教師無しのトークン化されたコーパス に対して、標準的な言語モデルを用いて以下の 式の条件付き確率を最大化させる目的で学習を行う。 ここで条件付き確率の部分は以下のように書ける。 7 k : ウィンドウサイズ P(A|B) : 条件付き確率(Bの条件でのAの起こる確率) Θ : ニューラルネットのパラメータ : 各トークンのインデックス We : トークンエンベディング行列 Wp : ポジションエンベディング行列 n : 層の数 ※ transformer_block はTransformerのdecoderの部分のみ使用する
  8. 8. Framework(続き) 2.教師ありでのファインチューニング 式( 1 )を目的に学習させたモデルのパラメータを用いて教師あり学習を行う。このときラベルの付いたデータセ ットを とすると 、それぞれのデータは入力トークン とラベル からなる。 これらの入力トークンが事前学習を行ったモデルに投入される。そして最終層のTransformer blockがm番目に出力 するエンベディング を、重み を持つ線形変換レイヤーに投入し、その後最終的な予測を行う。 そして以下の式を最大化させるのを目標に学習を行う。 更に補助的な目的として言語モデルを追加することにより、教師あり学習の汎化性能を高めることができ、学習 の収束を早めることができた。 8 教師あり学習 教師なし学習(言語モデル) λは教師あり学習と教師なし 学習の比重を決める重み
  9. 9. Framework(続き) 9 モデル図
  10. 10. ファインチューニング時に入力トークンに対して多少の変換を加えることで、様々なタスクに対応するこ とが可能。 タスクごとの入力変換 10
  11. 11. ● 事前学習に使用したBooksCorpusデータセットは、アドベンチャー、ファンタジー、ロマンス等の様 々なジャンルからなる世に出版されていない7000の本から構成される。 ● Transformerのデコーダーのみを12層重ねたモデル。(768のエンベディングに12のアテンションヘッ ドを採用。また、ポジションワイズフィードフォワードの中間層に3072次元を採用) ● LayerNormalizationがモデル全体を通して使われているため、重みの初期化は正規分布に従う単純な を採用。 ● Byte-pair encoding(BPE)を使って、約40,000単語にマージ。 ● 活性化関数にGaussian Error Linear Unit(GELU)を使用。 ● ポジションエンベディングは、Transformerオリジナルの三角関数を使ったものではなく、学習によ り獲得。 ● ファインチューニング時に、学習率やバッチサイズ以外は事前学習で使用したハイパーパラメータ を再利用する。 ● 基本的にファインチューニング時は、3エポックほど学習させれば十分であった。 Experiments 11
  12. 12. Natural Language Inference ● 2つの文のペアが与えられ、それらの文の関係が含意、矛盾、中立のどれにあたるかを予測する。 ● 検証した5つのデータセットのうち、4つのデータセットで当時のベスト記録を達成。 ● この結果で、複数の文から物事をより論理的に判断する能力や、個々の単語や句の曖昧さを巧みに扱え ることが実証された。 ● ただし、比較的データ数が少ないデータセット(2490からなる出た)に関しては、当時のベスト記録を破 れなかった。 Experiments(続き) 12
  13. 13. Question answering and commonsense reasoning ● 質問応答も一つ、または複数の文から推論を行うタスクである。 ● 検証した2つのデータセットでstate of the artを達成。 ● この結果で、長い文脈のデータに対しても効果的に扱えるモデルであることを実証できた。 Experiments(続き) 13
  14. 14. Semantic Similarity ● 与えられた2つの文が意味的に同じかどうかを予測させるタスク。 ● 検証した3つのデータセットのうち、2つのデータセットで当時のベスト記録を達成。 Classification ● 言わずと知れた分類。与えられたテキストがどのカテゴリに属するかを予測するタスク。 ● 検証した2つのデータセットのうち、1つのデータセットで当時のベスト記録を達成。 Experiments(続き) 14
  15. 15. この章では以下3つの検証を行った。 ● 転移させる際のレイヤーの数 ● ゼロショット時のふるまい ● Ablation Studies Analysis 15
  16. 16. 転移させるレイヤーの数 ● 自然言語推論用と質問応答用のデータセットを用いて、転移させるレイヤーの数によってどのよう に精度に影響を与えるかを検証した結果、より多くの層から出力されたエンベディングであればあ るほど精度が高くなることがわかった。 ● このことは事前学習された各層が、目的のタスクを解く際に有効であることを示している。 Analysis(続き) 16
  17. 17. ゼロショット時のふるまい ● ゼロショット時に検証したすべてのタスクにおいて、LSTMと比べてTransformerの方が精度が高く、 より汎用的に学習できていることがわかった。 Analysis(続き) 17
  18. 18. Ablation Studies ここでは様々なタスクに対して以下3つのアブレーションを行う。 ● ファインチューニング時に副次的な言語モデルなしで学習を行う ○ 大規模データセットに対しては言語モデルもつけて学習させた方が効果的であったが、小規 模では効果的でなかった。 ● 同じフレームワークワークを使って、Transformerではなく、2048ユニットをもつ1層のLSTMを代わ りに使って比較を行う ○ 一つのデータセットを除いた他全てのデータセットに対してTransformerが上回った。 ● 事前学習なしで教師あり学習を行う ○ 全てのデータセットで事前学習を行った方が上回った。 Analysis(続き) 18
  19. 19. ここまでが論文の内容で、ここからは補足 19
  20. 20. ファインチューニングの一例紹介 ここからは論文の内容ではなく、実際にOpenAIがGitHubに上げているソースコードの内容を基に解説。 ソースコードで公開されている大まかな内容 公開されているコード上では一つのデータセットに対して、ファインチューニングを行っている。 ファインチューニングに使用されるデータセット:Story Cloze Test 20 入力として使われる部分+言語モデル学習にも使わる ラベルとして使われる部分
  21. 21. データの整形 上のようにデータを整形して、言語モデルと識別モデルを学習させる。 21 x2 x3 x12: [start] + x1[:max_len] + [delimiter] + x2[:max_len] + [clf_token] x13: [start] + x1[:max_len] + [delimiter] + x3[:max_len] + [clf_token] (※max_len = トークンシーケンスの最大長//2 - 2) x1
  22. 22. 識別モデルの学習(教師あり) 22 [start] Rick grew up in a … he is happy now . [clf_token] [pad] [pad] [pad] GPT [clf_token]以外から出力されるエンベディングは使用しない [clf_token]から出力される エンベディングを使用し て予測を行う 入力: x12またはx13
  23. 23. 識別モデルの誤差 23 文x12の[clf_token]を入力したときに出力されるエンベディングと 文x13の[clf_token]を入力したときに出力されるエンベディングは 線形変換された後に、ラベルとの交差エントロピー誤差を算出す る。
  24. 24. 言語モデルの学習(教師なし) 24 [start] Rick grew up in a … he is happy now . [clf_token] [pad] [pad] [pad] GPT 言語モデルも同時に学習させる(教師なし学習)。 Rick grew up in a … is happy now . [clf_token] [pad] [pad] [pad] [pad] この範囲が学習対象 [pad]は学習させない
  25. 25. 言語モデルの誤差 25 言語モデルは入力されたトークンの一つ先のトークンを予測する ように学習するため、教師データを必要としない。 そのため、各入力トークンを基に出力されたエンベディングが線 形変換された後は、一つ先のトークンをラベルとして扱い、その ラベルとの交差エントロピー誤差を算出する。
  26. 26. 26 教師あり学習 教師なし学習(言語モデル) 最終的なlossとして以下の式から求める(再掲)。 (※ λはソースコード上ではデフォルト設定値が0.5) 最終的な誤差
  27. 27. Conclusion ● 当論文では、一つのモデルを言語モデルで事前学習させたのちに、教師あり学習でファインチューニング することによって様々なタスクに対応できる手法を紹介した。 ● 長い文章からなる多様なコーパスを使って事前学習を行わせることにより、より汎用的な知識を獲得する ことができた。 ● 当モデルは長い文脈にも対応できることにより、質問応答、2つの文の類似判定、言語推論、分類のタスク において上手くファインチューニングさせることができた(12のデータセットのうち、9のデータセットで state of the artを達成)。 ● 当論文は、Transformerや長い文脈をもったデータセットを使うことで著しく精度向上させることが可能で あるということを示すことができ、今後の可能性を示すことができた。 27
  28. 28. 28
  • c5101010

    Sep. 17, 2020

GPT初期版の論文。 TensorFlow User Group Tokyo主催の「NN論文を肴に酒を飲む会 #12 オンライン!」にて。

Views

Total views

1,086

On Slideshare

0

From embeds

0

Number of embeds

165

Actions

Downloads

6

Shares

0

Comments

0

Likes

1

×