見出し画像

GPT-1を読む③方針

前回までに、OpenAIが2018年に発表したGPTの最初のバージョンの論文「Improving Language Understanding by Generative Pre-Training」の要約と結論を読みました。今回は、論文を構成を掴みながら図や表などに目を通します。まだ、要約や結論を読んでいない方は前回前々回の記事を参考にしてください。

いつものように今回も、論文のセクションを読む順番は、以前に紹介した論文の読み方に大体従っています。どのセクションに注力して読むのかの方針を決定します。


論文の全体構造

この論文の構造は以下のようなセクションに分かれています。

  • 要約(Abstract)

  • 導入(Introduction)

  • 関連研究(Related Work)

  • フレームワーク(Framework)

  • 実験(Experiments)

  • 分析(Analysis)

  • 結論(Conclusion)

論文の読み方で解説したように、よくある論文の構造を持っています。

これまで要約を読んで、論文の主張を理解しました。また、結論から著者は将来の展望を語るほどの自信を持って主張を繰り返しているのがわかります。この論文の本文を読めばさらに彼らの主張を裏付けする詳細がわかるであろうと期待できます。

ここから導入を読み出しても構わないのですが、その前にこの論文を読む意義について考えてみます。

まず、ChatGPTの起源であるGPTの最初のバージョンを理解することはその後の発展・進化を学ぶ上で必要な理論的な土台を提供してくれるというのが一つあります。なお、この論文では、GPT(Generative Pre-trained Transformer)という名前は使われていないのですが、扱われているモデルのベースはトランスフォーマーであることを我々はすでに知っています。そのトランスフォーマーに「教師なしの事前学習」(Generative Pre-training)という要素が加えられたことにより「自然言語理解」の能力が向上したと論文は主張しています。なので、「教師なしの事前学習」と「ファインチューニング」などの仕組みや効果をさらに深く理解したいという欲求があるならば、読み進むことに意義があります。

よって、ただ単に読み進めるよりも、どのセクションに力を入れると自分の知りたい情報を得られるのかを考えながら、まずは全体構造をなぞっていきます。そのためには、小見出し、太字などに注意しながら図や表に目を通します。実験結果の詳細などには現状は関心がないという設定なので、飛ばすべきところと決めていきます。

では、導入から斜め読みしていきましょう。

導入の概要

導入は短いので全部読んでも良いのですが、ゆっくり読んでると集中力を失う可能性もあるのでサクッとばしながら後で読みたくなるかなと思うところに印をつける程度ほとんど問題ないことが多いです。よくある導入では、要約に書いてあることをもう少し詳しく言い直していることが多いからです。

まずは、一字一句読まずに、引っかかる単語やキーワードがあったら目を止めて周辺を読んでみます。興味が湧くならば、前後左右の文章を行ったり来たりしても良いでしょう。順番に完璧り理解しながら読む必要はありません。興味ないことはすぐに忘れてしまいがちなので。

ちなみに、セクションの中だけでなく、私はよく目次を左に開いてセクション間を行ったり来たりします。気になるところをハイライトしながらバラバラに目を通します。そのうち段々、どの辺を重点に読みたいのかがわかってきます。

私はPDF Expertを使っていますが、
他のPDFリーダーでも同様の機能はあるので
好きなものを使えば良いでしょう。

論文によっては、目次がきちんと表示されない事があるのですが、その場合は、自分でセクションごとにブックマークをつけて目次代わりにすることもあります。そのくらいこの機能を重要視しているので紙にプリントして読むことはまずありません。これは個々人の趣味の問題でもあるので一概にどれが良いとは言えませんが。

後で論文を読み返すときも目次を見るとなんとなく記憶が戻ってきてどこに何があるのか想像がついたりします。さらに、ハイライトがあると、そのときどんなことに注目していたのかが分かって面白いです。重要な論文は読み返すことが多く、同じ文章でも理解度の深さが変わってきたりします。よくあるのは、今では当たり前と思っていることを当時は疑問に感じていたりして自分の成長を実感することです。なんとなく過去の自分が微笑ましくなります。

さて、導入は次のように始まります。

自然言語処理(NLP)において、生のテキストから効果的に学習する能力は、教師あり学習への依存を軽減するために重要です。

The ability to learn effectively from raw text is crucial to alleviating the dependence on supervised learning in natural language processing (NLP).

language_understanding_paper.pdf (openai.com)

「生のテキストから効果的に学習する能力」が重要というのは、要約と結論をすでに読んでいる我々からすると同じ主張の繰り返しですが、特に「教師あり学習への依存を軽減するために重要」と言っているのは、ラベル付きのデータを準備するのが大変すぎるのと、せっかくある大量のラベルなしデータを利用できればより効率的だからです。

飛ばして、次の節の初めの一文を読んでみます。

ラベルなしのテキストから単に単語の意味だけでなくそれを超えた情報を得ることは、主に二つの理由で困難です。

Leveraging more than word-level information from unlabeled text, however, is challenging for two main reasons.

language_understanding_paper.pdf (openai.com)

「テキストから単に単語の意味だけでなくそれを超えた情報を得る」とちょっと意訳しましたが、要するに生のテキストから文脈(more than word-level information)を抽出するのは困難で、それには二つの理由があると言っています。

これは気になるので二つの理由にも目を通します。まずは、一つ目の理由は以下のように述べられています。

まず、どのような最適化の目標を使えば、転移学習などに役立つテキストの表現(特徴)を効果的に学習できるのか明確ではありません。

First, it is unclear what type of optimization objectives are most effective at learning text representations that are useful for transfer.

language_understanding_paper.pdf (openai.com)

転移学習などで役立つような特徴を学習するにはどうするべきか、と述べているのは事前学習への前振りですね。要約と同じことを言っています。

次の理由はこうです。

次に、これらの学習された表現(特徴)を対象のタスクに転移する最も効果的な方法については、共通の認識がありません。

Second, there is no consensus on the most effective way to transfer these learned representations to the target task.

language_understanding_paper.pdf (openai.com)

これはファインチューニングのやり方に関してだと想像できますが、これも要約と同じレベルの抽象的な説明にとどまっています。

なお、トランスフォーマーを使っていることを、この論文で初めて言及してます。

私たちのモデルのアーキテクチャでは、様々なタスク(機械翻訳、ドキュメント生成、構文解析など)で優れたパフォーマンスを発揮するトランスフォーマーを使用しています。

For our model architecture, we use the Transformer [62], which has been shown to perform strongly on various tasks such as machine translation [62], document generation [34], and syntactic parsing [29].

language_understanding_paper.pdf (openai.com)

ざっくり目を通しただけですが、この論文の導入は、基本的に要約の繰り返しになっており(多方の論文はこの傾向があります)、あまり深読みする必要はなさそうなので次に進みます。

関連研究の概要

ここでは、この論文と関連する研究分野についてリストアップされています。

  • 自然言語処理(NLP、Natural Language Processing)のための半教師あり学習(Semi-supervised learning for NLP)

  • 教師なし事前学習(Unsupervised pre-training)

  • 補助的な学習目標(Auxiliary training objectives)

このリストを見ると「教師なし事前学習」は、この論文以前にもあった研究なのがわかります。しかし、ここでは深掘りせず、後で参考文献などを調べる必要があれば戻ってくることにするだけにしておきます。

次にいきましょう。

フレームワーク

このセクションに目を通すと、こんな図が見つかりました。

論文図1

左の縦長の図は、トランスフォーマーのエンコーダやデコーダのブロックによく似ています。次のようなキーワードが読み取れます。

  • 位置埋め込み(Position Embed)

  • レイヤー正規化(Layer Norm)

  • マスクされた多頭自己アテンション(Masked Multi Self Attention)

  • フィードフォワード(Feed Forward)

マスクされた多頭自己アテンションがあるということは、デコーダのブロックだろうと予測がつきます。

右の図を見ると、さまざまなタスクに対して、入力を変えることで対応しているのが伝わってきます。これは、要約でも言っていたとおりですね。そして、全ては「Transformer」と書かれている緑の四角が処理しています。この部分が事前学習されたモデルでしょう。また、出力もタスクによって工夫が必要なのもわかります。

なお、このセクションは、次のサブセクションに分かれています。

  • 教師なし事前学習(Unsupervised pre-training)

  • 教師あり微調整(Supervised fine-tuning)

  • タスク固有の入力変換(Task-specific input transformations)

上図の詳細に対応しているようです。このセクションをじっくり重点的に読むと、GPTの基本的な仕組みや枠組みが理解できそうです。

実験の概要

実験結果は、理論を理解した後に読むべきなので、ここではサブセクションと図や表に目を通すだけにします。

次のようなサブセクションがあります。

  • 設定(Setup)

    • 教師なし事前学習(Unsupervised pre-training)

    • モデルのスペック(Model specifications)

    • ファインチューニングの詳細(Fine-tuning details)

  • 教師ありファインチューニング(Supervised fine-tuning)

    • 自然言語推論(Natural Language Inference)

    • 質問応答と常識推論(Question answering and commonsense reasoning)

    • 意味的類似性(Semantic Similarity)

    • 分類(Classification)

「設定」のセクションで事前学習からファインチューニングまでの説明があり、「教師ありファインチューニング」で具体的なファインチューニングの例が上げられているようです。

表などを見ると使われているデータセットや実験結果があるのがわかります。

論文表1

それぞれのファインチューニングのタスクに対して実験結果の表があります。例えば、以下は「質問応答と常識推論」に関するものです。

論文表3

「Finetuned Transformer LM (ours)」(我々のファインチューニングされたトランスフォーマーの言語モデル)とあるモデルが圧倒的な成果を出しているのが伝わります。なお、この頃はまだ、GPTという名前が確定していないので長い名前になっています。

これは論文の主張をさらに確固たるものにしています。ただし、理論の理解を主な目的としているので、実験を再現するとかといった視線でじっくり読むことはしません。

分析の概要

分析のセクションは、実験の延長的な印象ですが、もう少し踏み込んで、モデルの性質を調べるとといった意図があります。次のような太字の項目が挙げられています。

  • 転移される層の数の影響(Impact of number of layers transferred)

  • ゼロショットの挙動(Zero-shot Behaviors)

  • アブレーション研究(Ablation studies)

これらも面白そうですが、フレームワークを理解した後に読むべきでしょう。謎、ゼロショットとアブレーションについて少し解説します。

ゼロショット(あるいは、ゼロショット学習)とは、モデルは訓練データに存在しないカテゴリやシナリオに対しても推論を行います。つまり、新しいタスクの具体例で学習しないので、(試し打ちなし的な意味で)ゼロショットと呼ばれます。

逆に言うと、モデルが一般的な知識をどれだけ良く学習し応用できるのかがわかります。既存の知識を応用して推論を行う能力を図るので、汎用性の高さの指標となります。まあ、見た事ない材料でどれだけ上手に料理できるのかを判断するようなものです。

アブレーション研究(Ablation studies)の「Ablation」とは「切除」する意味があります。よって、アブレーション研究とは、特定のコンポーネントや機能を除去(無効化)することによって、システム全体やモデルの挙動にどのような影響があるかを調査する研究方法で、モデルの特性を理解するために行われます。さまざまな論文で、よく使われる用語です。

論文を読む方針

この論文に関しては、「教師なしの事前学習」と「ファインチューニング」などの仕組みや効果をさらに深く理解したいので、「フレームワーク」を重点的に読むのが良さそうです。あとは、必要に応じて考えることにします。

次回予告

次回から「フレームワーク」のセクションを読み解いていきます。これは図1を少しずつ理解していくのと同じことです。

論文図1

つくづく思いますが、良い論文には代表的な図があるものですね。トランスフォーマーしかり、この論文もしかりです。

お楽しみに!

いいなと思ったら応援しよう!