4.5K Views
May 17, 24
スライド概要
輪読で使用した資料です。GPT-1の論文を読みます。
Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018).
2024/05/17 GPT-1の論文を読もう 武蔵野大学 Boh PJ 輪読 小宮和真 misya11p 武蔵野大学 データサイエンス学部 4年 @ds33miya
2024/05/17 BohPJ 輪読 Improving language understanding by generative pre-training 著者: Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever 所属: OpenAI 公開日: 2018-06-11 論文: https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf 記事: https://openai.com/index/language-unsupervised/ 1
2024/05/17 BohPJ 輪読 この論文を選んだ理由 • ChatGPTの元を知りたいじゃん 2
2024/05/17 BohPJ 輪読 前提知識 • 言語モデル • 色々な定義があるが、ここでは「文脈から次の単語の確率分布を出力するモデル」とする。 • 深層学習 • Transformer[5] • 2017年にGoogleが提案した翻訳モデル。 [5] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017). 3
2024/05/17 BohPJ 輪読 目次 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 4
2024/05/17 BohPJ 輪読 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 5
2024/05/17 BohPJ 輪読 概要 概要 所謂GPT-1の論文。ChatGPTとかGPT-4といったGPTシリーズの元祖。 ChatGPTは対話モデルとして公開されているが、初めは言語理解系のNLPタスクに向けたモデルであっ た。 6
2024/05/17 BohPJ 輪読 概要 概要 論文タイトルは “Improving language understanding by generative pre-training” で、直訳すると “生成的な事前学習による言語理解の向上” となる。この意味の通り、生成的な事前学習により、モデルに言語を理解させる。 この論文では、言語モデルとしてTransformerを用いて、事前学習により言語を理解させた後、タスクごと にファインチューニングを行う。これにより、特定のタスクに特化した性能を獲得する。この手法により、 大量のラベル付きデータ(教師付きデータ)を必要としない学習が実現される。 7
2024/05/17 概要 BohPJ 輪読 GPT この論文[1]で提案されたモデルはGPT(Generative Pre-trained Transformer)と呼ぶ。生成的な事前学習 が行われたTransformerという意味になる。後に進化版としてGPT-2やGPT-3が発表される。 ちなみに、論文の中でGPTという単語は一度も出てこない。OpenAIの記事にもない。 では誰が言い出したのかというと、恐らくこの4ヶ月後に発表されるBERTの論文[2] が初出。 BERTと比較する文脈で呼びやすいようにGPTと名付けられて、それが一般にも広が り、OpenAIも採用したという感じかな。発表当時はGPT-1なんて呼ばれ方はされて いなかったということだね。 Twitter等で調べた [1] Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018). [2] Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018). 8
2024/05/17 BohPJ 輪読 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 9
2024/05/17 BohPJ 輪読 貢献 背景 GPT-1はTransformerが提案されてから1年と少し後に提案された。 • 2017-01: Transformer • 2018-06: GPT-1 ←ここ • 2018-10: BERT • 2019-02: GPT-2 10
2024/05/17 BohPJ 輪読 貢献 背景 テキスト分類や質問回答など、言語理解が必要なNLPタスクが多数存在する。これらを深層学習で解く 場合、大量のラベル付き(教師付き)データが必要であった。しかし、そんなに都合よく大量のデータセッ トは転がっていない。人の手で作るのも大変。 一方で、ラベルのないテキストコーパスは大量に存在するため、これらを上手く活用できないかという思 いがあった。これらが使えると、大規模なラベル付きデータを用意する手間が省ける。また、ラベル付き データが存在する場合でも、ラベルのないデータからの学習が性能を向上させる可能性が示唆されて いた。word2vecの様な教師無し学習によって得られた埋め込み表現を初期値として使うと性能が上がる みたいな話[3, 4]。 [3] Chen, Danqi, and Christopher D. Manning. "A fast and accurate dependency parser using neural networks." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014. [4] Qi, Ye, et al. "When and why are pre-trained word embeddings useful for neural machine translation?." arXiv preprint arXiv:1804.06323 (2018). 11
2024/05/17 BohPJ 輪読 貢献 貢献 ラベルなしデータでの事前学習と、少量のラベル付きデータによるファインチューニングを活用した、効率 的な言語理解タスクの学習を実現した。大規模なテキストコーパスを学習させることで、幅広いタスクに応 用可能な基礎的な言語の理解が身につき、後のファインチューニングが効率的に行えるというもの。 主な貢献は以下。 1. ラベルのない大規模なテキストコーパスの活用による少量なラベル付きデータでの学習の実現 2. 広い範囲に応用可能なモデルの実現 3. 主要NLPタスク14個のうち9個でSoTAを達成 また、直接論文には書かれていないが、以下の二点もこの論文の貢献と見て良いと思う。 • Transformerの汎用性や拡張性を示したこと • 大規模なテキストコーパスによる事前学習&少量なデータによるファインチューニングという手法の確立 12
2024/05/17 BohPJ 輪読 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 13
2024/05/17 BohPJ 輪読 提案手法 教師なし事前学習 大規模テキストコーパスを用いた教師なし事前学習。言語モデリングの学習を行う。これが「生成的な学 習」に当たる。文章生成の学習とも見られるから。 やることは普通に対数尤度の最大化。 • 𝒰 = {𝑢! , 𝑢" , … , 𝑐# }がトークン列 • 論文では0から𝑖までではなく𝑘から𝑖までと表記していた。位置埋め込みの関係で最大系列長を設定す る必要があるからだと思う。 • 論文ではマイナスをつけていないが、ここでは損失関数として扱いたかったためマイナスをつけた。 14
2024/05/17 BohPJ 輪読 提案手法 教師なし事前学習 𝑃はパラメータΘに従う言語モデル。TransformerのDecoderを用いる。Decoder onlyなので、二つ目の Multi Head Attentionは消える。 • 𝑛はレイヤー数。実験では12としていた。 • 𝑊$ は位置表現で、[5]と異なり、これも学習させる。 埋め込み層と出力層で同じ重み𝑊% を使っているようだけど、なんでだろうね。 特に言及されていなかった。よくある手法なのかな。 各単語の埋め込み表現とℎ& の類似度を確率分布としていると解釈できるね。 15
2024/05/17 BohPJ 輪読 提案手法 教師ありファインチューニング ラベル付きデータセット𝒞を使った教師ありファインチューニング。 𝒙を𝑚個のトークン列𝒙 = {𝑥! , 𝑥" , … , 𝑥# }とするとき、予測値は とする。最後の時刻𝑚の出力ℎ&# を全結合層に入れ、活性化関数𝑔に通して出力する。例えば分類タスク だったら𝑔はsoftmax。 16
2024/05/17 BohPJ 輪読 提案手法 教師ありファインチューニング 各タスクの損失関数を とするとき(𝑙はインスタンス単位での損失関数)、ファインチューニングでは以下を最小化する。 𝜆は重み。固有のタスクに加え、言語モデリングも同時に学習させるということ。この方が収束が早くなる らしい。他の文献からも性能の上昇が見込まれる[6, 7]。 [6] Rei, Marek. "Semi-supervised multitask learning for sequence labeling." arXiv preprint arXiv:1704.07156 (2017). [7] Peters, Matthew E., et al. "Semi-supervised sequence tagging with bidirectional language models." arXiv preprint arXiv:1705.00108 (2017). 17
2024/05/17 BohPJ 輪読 提案手法 各タスクでの入力表現 まず与える文脈の初めに start トークン、終わりに extract トークンを加える。最後のトークンが全て extract トークンになるので、ℎ'# は全て extract に対応するベクトルになる。また、複数の文章を入力する 必要のあるものは全て delim トークンで区切って与える。delimiter: 区切り文字。 またアーキテクチャの変更を最小限に抑えられるよう、更にタスクごとに入力の与え方を工夫する。詳細 は後で述べる。 ファインチューニングで追加するパラメータは𝑊( といくつかの特殊トークンに対応する埋め込みベクトル のみ。モデルアーキテクチャの変更が最小限に抑えられていることが分かる。 18
2024/05/17 提案手法 BohPJ 輪読 モデルの全体像 𝐿7 𝑝(𝑥! ) 𝑝(𝑥" ) 𝐿8 ・・・ 𝑝(𝑥#$! ) 𝑊9 ℎ" ・・・ 𝑊: Linear Linear + softmax ℎ! 𝑦# ℎ#$! ℎ# Transformer decoder_block (x 12) Embedding 𝑥! start 𝑥" ・・・ 𝑥#$! 𝑥# extract 19
2024/05/17 BohPJ 輪読 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 20
2024/05/17 BohPJ 輪読 実験 実験環境 主なパラメータ • 𝑛 = 12 • 語彙数 = 40478 • 基本文字 478 + 主要単語 40000 • パラメータ数: 1.17億(参考: ChatGPT: 3550億) • 事前学習データセット: BooksCorpus[8]。7000以上の未出版本が含まれる大規模なコーパス。 [8] Zhu, Yukun, et al. "Aligning books and movies: Towards story-like visual explanations by watching movies and reading books." Proceedings of the IEEE international conference on computer vision. 2015. 21
2024/05/17 BohPJ 輪読 実験 評価実験 以下の4つのタスクでモデルを評価する。 • Textual entailment • Question Answering • Semantic Similarity • Classification 22
2024/05/17 BohPJ 輪読 実験 Textual entailment 「AだからBである」といった含意が成り立っているかを判定する。前提Aが真であるときの仮説Bの真偽 を予測する。与えられた文章が以下の3つのどれに当てはまるかを予測する。 • entailment: 含意(成り立っている) • contradiction: 矛盾(成り立っていない) • neutral: 中立(分からない) モデルへの与え方はシンプルで、前提文Premiseと仮説HypothesisをDelimトークンで区切って与えるだ け。 23
2024/05/17 BohPJ 輪読 実験 Textual entailment 実際に学習させた結果、6つ指標の内、5つでSoTAを達成した。 数値はいずれも精度(正解率)。 24
2024/05/17 BohPJ 輪読 実験 Question Answering 質問文に対する適切な回答選択。長文と質問が与えられ、選択肢の中から適切な選択肢を選ぶ。 長文と質問をまとめてContextとし、Delimトークンを挟んで各回答を繋げることで回答の数だけ入力を用 意する。それを別々にTransformerに与え、出力された実数値から確率分布を生成する。最も高い確率 と対応する回答をモデルの予測値とする。 25
2024/05/17 BohPJ 輪読 実験 Question Answering 実際に学習させた結果、4つの指標全てでSoTAを達成した。 数値はいずれも精度(正解率)。 26
2024/05/17 BohPJ 輪読 実験 Semantic Similarity & Classification Semantic Similarity 与えられた二つの文章が同じことを言っているかを判定する。同じか違うかの二値分類タスク。 二つの文章をDelimトークンで区切って入力を用意する。また順番を入れ替えたものも用意し、二つの 入力を別々にTransformerに与える。出力された二つのℎ&# を足して線形層に与え、予測する。 Classification シンプルなテキスト分類。 27
2024/05/17 BohPJ 輪読 実験 Semantic Similarity & Classification 実際に学習させた結果、6つの指標の内、4つでSoTAを達成した。 • acc: 正解率 • mc: マシューズ相関係数 • pc: ピアソン相関係数 • F1: F1スコア • GLUE: 言語理解に関するベンチマークの一つ 28
2024/05/17 BohPJ 輪読 実験 その他検証 評価とは少し異なる、モデルの性質を知るためのいくつかの検証について。 29
2024/05/17 BohPJ 輪読 実験 事前学習する層の数と性能の関係 12層のTransformer Layersの内𝑙層だけを事前学習すると性能は落ちるのか、という検証。 結論: 落ちた。 横軸が学習させた層の数、縦軸が精度。 30
2024/05/17 BohPJ 輪読 実験 zero-shotを用いたTransformerの能力検証 ファインチューニングなしでタスクを解かせてみる。教師なしのみということになる。こういうのをzero-shot と呼ぶ。 文脈の与え方を工夫することでzero-shotでタスクを解かせることができる。例えば感情分析タスクでは、 入力の末尾に “very” を付与した上で確率分布を出力し、”positive”と”negative”の中で確率が高い方を 予測値とする。また入力文から適切な選択肢を選ぶタスクでは、入力文と各選択肢をどうにかしてくっつ けてモデルに与え、平均確率が最も高い選択肢を予測値とする。 31
2024/05/17 BohPJ 輪読 実験 zero-shotを用いたTransformerの能力検証 Transformerの各タスクへの応用力を調べる。Transformerが言語モデリングを学習する際に他の多くの タスクも同時に学習しているのではないかという仮説のもと、zero-shotでの性能がLSTMと比較してどう なるかを検証する。 Transformerの方が高くなった。Transformerアーキテクチャ が事前学習の効果を増強していると言えそう。 ちなみに、GPT-2[9]はこのzero-shotに焦点を当てている。 zero-shotでの性能が飛躍的に上昇しており、普通にSoTAを 達成したりしている。文脈の与え方などが面白いのでぜひ 読んでみて。 [9] Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9. 32
2024/05/17 BohPJ 輪読 実験 Ablation studies 提案モデルからいくつかの要素を取り除いて性能が落ちるかを検証した。 上から • 提案モデル • 事前学習なし • 言語モデリングを学習させず、𝐿) = 𝐿" でファインチューニングさせたやつ • LSTMを使ったやつ 小規模のデータセットでは言語モデリングを学習させない方が精度が上がりやすいみたい。データセット によって適切な𝜆を設定しろって感じかな。 33
2024/05/17 BohPJ 輪読 1. 概要 2. 貢献 3. 提案手法 4. 実験 5. まとめ 34
2024/05/17 BohPJ 輪読 まとめ まとめ ということで、GPT-1の論文を読んでみました!いかがでしたか?今後もOpenAIから期待が離せません ね!それでは! 35
2024/05/17 BohPJ 輪読 まとめ まとめ 冗談はさておき、 本論文では、教師無し事前学習&教師ありファインチューニングという手法を用いてTransformerを学習 させた。この手法は今後のLLM領域でスタンダードなものとなっていく。 またzero-shotでの実験も行われており、後に発表されるGPT-2ではこのzero-shotでの性能が大幅に上昇 する。ここから、教師無し学習に基づく単一の言語モデルが様々なタスクを解くようになり、モデルの巨 大化と共に高度な対話を実現する。 これらを踏まえると、この論文には、今後のLLMの発展における重要な要素が多く詰め込まれていると 感じる。 36
2024/05/17 BohPJ 輪読 まとめ まとめ 最後に、今後の言語モデルの発展の流れを軽くまとめる。次に読む論文の参考等にしてください。 • (2018-06) GPT-1 • (2018-10) BERT: (Transformerの)Decoderではなく双方向のEncoderを使うことで言語理解の性能を 高めた • (2019-02) GPT-2: モデルとデータセットをデカくしたらzero-shotの性能がめっちゃ上がった。ファイン チューニング要らなくなった。 • (2019-11) DialoGPT[10]: GPT-2を対話向けに学習させた。 • (2020-05) GPT-3[11]: モデルをデカくした上で、文脈でいくつかの例を示すことで更に性能が上がった。 • (2022-05) Instruct GPT[12]: GPTがユーザの指示に従うようにした。 • (2022-11) ChatGPT公開 [10] Zhang, Yizhe, et al. "Dialogpt: Large-scale generative pre-training for conversational response generation." arXiv preprint arXiv:1911.00536 (2019). [11] Brown, Tom, et al. "Language models are few-shot learners." Advances in neural information processing systems 33 (2020): 1877-1901. [12] Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in neural information processing systems 35 (2022): 27730-27744. 37
2024/05/17 BohPJ 輪読 参考文献 1. Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018). 2. Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018). 3. Chen, Danqi, and Christopher D. Manning. "A fast and accurate dependency parser using neural networks." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014. 4. Qi, Ye, et al. "When and why are pre-trained word embeddings useful for neural machine translation?." arXiv preprint arXiv:1804.06323 (2018). 5. Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017). 6. Rei, Marek. "Semi-supervised multitask learning for sequence labeling." arXiv preprint arXiv:1704.07156 (2017). 7. Peters, Matthew E., et al. "Semi-supervised sequence tagging with bidirectional language models." arXiv preprint arXiv:1705.00108 (2017). 8. Zhu, Yukun, et al. "Aligning books and movies: Towards story-like visual explanations by watching movies and reading books." Proceedings of the IEEE international conference on computer vision. 2015. 9. Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9. 10. Zhang, Yizhe, et al. "Dialogpt: Large-scale generative pre-training for conversational response generation." arXiv preprint arXiv:1911.00536 (2019). 11. Brown, Tom, et al. "Language models are few-shot learners." Advances in neural information processing systems 33 (2020): 1877-1901. 12. Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in neural information processing systems 35 (2022): 27730-27744. 38
オワリ おつ