GPT、GPT-2、GPT-3 論文精読【論文精読】
このYouTubeインサイトノートは LilysAI で作成されました。無料で登録して、動画から10倍速く深くインサイトを得ましょう
Q: GPT-3はなぜ「力技で奇跡を起こす」言語モデルと言われるのですか?
GPT-3はGPT-2からデータとモデルを100倍に拡張し、1750億のパラメータを持つことで、驚くべき効果を達成したためです。また、特定のタスクで勾配更新やファインチューニングを行わず、少量のサンプルで文脈内学習によりタスクを学習します。
GPTシリーズは、Transformerのデコーダを使い、より大規模なデータとモデルで言語モデルの可能性を追求し、BERTとは異なるアプローチで進化してきました。特にGPT-3では、Few-shot学習で微調整なしに高い性能を発揮し、人間が書いたと区別できないほどの高品質なテキスト生成を実現しています。
1. GPT-3の衝撃と進化の背景
GPT-3は、AIが生成したブログ記事が人間を欺くほどの高品質なテキストを生成し、その応用範囲の広さで自然言語処理界に大きな衝撃を与えた。1.1. GPT-3の驚くべき応用例
- AIによるブログ記事生成
- 2020年、AIが生成したブログ記事がHacker Newsで1位を獲得し、MIT技術評論誌でも取り上げられた。
- このブログ「NothingButWords」はGPT-3によって生成され、人間が書いたと区別できないほど自然な文章であった。
- 多岐にわたるGPT-3の活用
- GPT-3の発表後、OpenAIのチームはAPIを公開し、数百もの多様なアプリケーションが開発された。
- 具体的な応用例として、以下のようなものがある。
- Reactコンポーネントのコード生成:ユーザーの要求に基づいてHTMLコードを自動生成する。
- チューリングテスト:人間と区別できない自然な対話応答を生成する。
- 有名人の話し方模倣:Elon Muskのような特定人物のスタイルで質問に回答する。
- デザイン案の生成:長い説明文から具体的なデザイン案を生成する。
- 専門用語の平易化:技術的な文章を一般向けに書き換える。
- GitHub Copilot:コメントから関数本体のコードを自動生成する。
1.2. GPTシリーズの進化とBERTとの比較
- TransformerからGPT、BERTへ
- Transformer(2017年6月)が発表され、その1年後にGPTが登場した。
- GPTはTransformerのデコーダ部分を使用し、大量のラベルなしテキストデータで言語モデルを事前学習し、その後、各タスクで微調整を行う手法を採用した。
- GPTの4ヶ月後にBERTが登場し、Transformerのエンコーダ部分を使用し、より大規模なデータセットで事前学習を行うことで、GPTよりも優れた性能を示した。
- GPT-2とGPT-3の登場
- BERTの4ヶ月後にGPT-2が登場し、GPTの教訓を活かし、より大きなデータセットとモデルでTransformerのデコーダの可能性を追求した。
- GPT-2はZero-shot学習に適していることを発見したが、性能はまだ驚くほどではなかった。
- 2020年5月、GPT-3が発表され、GPT-2と比較してデータとモデルの規模を100倍に拡大し、その結果、驚異的な性能を実現した。
- OpenAIとGoogleのアプローチの違い
- GPTシリーズはOpenAIが開発し、BERTとTransformerはGoogleの研究グループが開発した。
- BERTの論文は引用数が27万回に達する一方、GPTシリーズ3論文の合計引用数は約1.1万回と、学術界での影響力はBERTに劣る。
- OpenAIはより大きな問題(汎用人工知能)の解決を目指し、技術的な実現が難しい大規模モデルを追求したため、その成果は他チームが再現しにくい規模となった。
- Googleの研究グループは、機械翻訳や事前学習モデルの微調整といった具体的な技術課題の解決に焦点を当てたため、同規模のモデルではBERTがGPTを上回る性能を示した。
- BERTは比較的少ないリソースで再現可能であるため、その後の研究で広く採用された。
2. GPT論文の深掘り:汎用事前学習による言語理解の向上
GPT論文は、ラベルなしテキストデータを用いた事前学習と、タスク固有の微調整を組み合わせることで、自然言語理解能力を向上させる半教師あり学習アプローチを提案した。
2.1. GPTの基本概念と課題解決
- GPTの名称と著者
- GPTという名称は、論文のタイトル「Improving Language Understanding by Generative Pre-Training」に由来する。
- 主な著者には、DCGANやPPOなどの有名研究を手がけたAlec Radfordと、OpenAIのCTOであるIlya Sutskeverが含まれる。
- 自然言語理解における課題
- 自然言語理解には多様なタスクが存在するが、ラベル付きデータが不足しているため、識別モデルの訓練が困難であった。
- コンピュータビジョン分野ではImageNetのような大規模なラベル付きデータセットが存在したが、NLP分野には同等のものがなかった。
- このデータ不足が、深層学習のNLP分野での進展を妨げていた。
- GPTの解決策:半教師あり学習
- GPTは、まずラベルなしデータで言語モデルを事前学習し、次にラベル付きデータで識別モデルを微調整する半教師あり学習アプローチを採用した。
- この手法は、コンピュータビジョン分野では主流であったが、NLP分野ではGPTとBERTの登場によって初めて普及した。
- GPTシリーズは、ラベルなしテキストの活用とZero-shot学習の可能性を大きく広げた。
2.2. GPTの技術的特徴とBERTとの比較
- 既存手法との差別化
- 従来のWord2Vecなどの手法もラベルなしテキストを利用していたが、GPTは微調整時にタスク関連の入力形式を工夫することで、モデルアーキテクチャの変更を最小限に抑えた。
- NLPタスクは多様であるため、各タスクに特化したモデル構築が必要だったが、GPTは入力形式の変更のみで対応可能とした。
- GPTは、12のタスク中9つで当時の最高性能を上回る結果を示した。
- BERTはGPTよりも優れた結果を出したが、GPTはBERTに先行する革新的なアプローチであった。
- 無監督テキスト利用の困難点
- 最適な目的関数の選択:言語モデル、機械翻訳、テキスト一貫性など、多様な選択肢がある中で、特定のタスクに最適な目的関数を見つけることが困難であった。
- 学習した表現の伝達:NLPのサブタスク間の多様性のため、学習したテキスト表現を効果的に下流タスクに転移させる統一的な方法がなかった。
- GPTの半教師あり学習と自己教師あり学習
- GPTは、ラベルなしデータで大規模な言語モデルを訓練し、その後サブタスクで微調整する「半教師あり学習」を提案した。
- 現在では、GPTやBERTのような手法は「自己教師あり学習(self-supervised learning)」と呼ばれることが多い。
- Transformerデコーダの採用
- GPTはTransformerアーキテクチャを基盤とし、特にTransformerのデコーダ部分を採用した。
- デコーダは、現在の要素とその前の要素のみを参照するため、言語モデルの「未来予測」タスクに適している。
- Transformerは、RNNモデルと比較して、転移学習においてより優れた性能と構造化された記憶能力を持つとされた。
- GPTとBERTの目的関数の違い
- BERTは「マスク付き言語モデル(完形填空)」を使用し、文中のマスクされた単語を予測するため、Transformerのエンコーダを使用する。
- GPTは「標準的な言語モデル」を使用し、前の単語から次の単語を予測するため、Transformerのデコーダを使用する。
- GPTの未来予測タスクは、BERTの完形填空よりも難易度が高く、これがGPTが初期のBERTに性能で劣った一因である。
- しかし、この難易度の高い技術路線が、GPT-3のような驚異的なモデルを生み出す可能性を秘めていた。
2.3. GPTのモデル構造と微調整方法
- 事前学習:ラベルなしデータでの言語モデル訓練
- GPTは、標準的な言語モデルの目的関数を用いて、与えられたテキストの尤度を最大化する。
- 具体的には、過去のk個の単語(文脈ウィンドウ)に基づいて次の単語を予測する。
- モデルにはTransformerのデコーダが使用され、これは予測時に未来の単語を見ないようにマスク処理を行う。
- モデルは、単語埋め込みと位置エンコーディングを入力とし、N層のTransformerブロックを通過させ、最終層の出力にsoftmaxを適用して単語の確率分布を得る。
- 微調整:ラベル付きデータでのタスク固有学習
- 微調整では、入力シーケンス(x1からxm)とそのラベル(y)のペアを使用する。
- 事前学習済みGPTモデルにシーケンスを入力し、Transformerブロックの最終層の出力(hm)を線形層に通し、softmaxでラベルの確率を得る。
- 微調整時には、分類精度を最大化する目的関数に加え、事前学習時の言語モデルの目的関数も同時に使用することで、性能が向上する。
- NLPサブタスクの入力表現
- GPTは、多様なNLPサブタスクを「シーケンスと対応するラベル」の形式に変換する。
- 分類タスク:テキストの先頭に開始トークン、末尾に抽出トークンを追加し、最終トークンの特徴量から線形層で分類する。
- 含意タスク:前提文と仮説文を特殊な区切り記号で連結し、3分類(支持、不支持、中立)を行う。
- 類似性タスク:2つのテキストの順序を入れ替えた2つのシーケンスを作成し、それぞれモデルに入力。最終出力を結合して線形層で2分類(類似、非類似)を行う。
- 多肢選択タスク:問題文と各選択肢を組み合わせた複数のシーケンスを作成。各シーケンスの出力から線形層で信頼度を算出し、softmaxで最終的な選択肢を決定する。
- どのタスクにおいても、入力形式は変化するが、中間にあるTransformerモデルの構造は変更されない。
2.4. GPTの実験とBERTとの比較
- GPTの訓練データとモデルサイズ
- GPTは、7,000冊以上の未発表の書籍を含む「BooksCorpus」データセットで訓練された。
- モデルは12層のTransformerデコーダを使用し、各層の次元は768であった。
- BERTとのモデルサイズ比較
- BERT Baseモデルは、GPTと同じ12層、次元768のTransformerエンコーダを使用しており、GPTとの比較のために設計された。
- BERT Largeモデルは、層数を2倍、幅を1.3倍に増やし、BERT Baseの約3倍の複雑さを持つ。
- BERTはBooksCorpusに加え、Wikipediaのデータセット(GPTの約4倍のデータ量)も使用し、より大規模なモデルを訓練した。
- 結果として、BERT BaseはGPTよりも平均精度で優れ(GPT 75.1% vs BERT Base 79.0%)、BERT Largeはさらに性能を向上させた(82.1%)。
3. GPT-2論文の深掘り:言語モデルは教師なし多タスク学習器
GPT-2は、GPTの成功を受けて、より大規模なデータとモデルを用いてTransformerデコーダの可能性をさらに追求し、Zero-shot学習の有効性を主要なセールスポイントとして提示した。
3.1. GPT-2の目的とZero-shot学習
- GPT-2の背景と動機
- GPTがBERTに性能で劣った後、GPT-2は「言語モデルは教師なし多タスク学習器」というタイトルで発表された。
- 開発チームは、デコーダベースの技術路線を維持しつつ、モデルとデータセットの規模を拡大することで、BERTに対抗しようとした。
- Zero-shot学習の導入
- GPT-2は、Zero-shot学習(下流タスクのラベル情報や訓練なしで予測を行う)を主要なセールスポイントとした。
- 従来の主流アプローチは、各タスクごとにデータセットを収集し、モデルを訓練・微調整することであった。
- このアプローチには、各タスクでの再訓練とラベル付きデータ収集のコストという課題があった。
- Zero-shot学習は、単一のモデルを訓練するだけで、あらゆるタスクに適用できるという利点がある。
- 研究における柔軟性の重要性
- 単にモデルやデータを大きくするだけでは、研究としての新規性が低いと見なされる可能性がある。
- GPT-2は、Zero-shot学習という新しい視点から問題に取り組むことで、結果の優劣に関わらず、研究としての新規性を高めた。
3.2. GPT-2のモデルとデータセット
- モデルアーキテクチャの変更点
- GPT-2のモデルは、GPT-1と基本的に同じアーキテクチャを持つ。
- Zero-shot学習では微調整を行わないため、事前学習時に見られなかった特殊な記号(開始符、終了符、区切り符など)を導入できない。
- 下流タスクの入力形式は、事前学習時に見た自然言語の形式に近づける必要がある。
- 例えば、機械翻訳では「Translate to French: English text = French text」のような「プロンプト」を使用する。
- WebTextデータセットの構築
- GPT-2は、Common Crawlプロジェクト(公開ウェブスクレイピングプロジェクト)を基盤とした「WebText」データセットを構築した。
- Common Crawlはデータ品質が低いという課題があったため、Redditで3つ以上のカルマ(高評価)を獲得した投稿のリンクを収集し、そこからテキストを抽出することで高品質なデータセットを作成した。
- このデータセットは、約8,000万のテキストと40GBのテキストデータを含んでいた。
- データセットの多様性
- WebTextには、英語からフランス語への翻訳例など、多様なタスクの例が自然な形で含まれていた。
- この多様性により、言語モデルは様々なタスクを学習し、Zero-shotで対応できる可能性が高まった。
- GPT-2のモデルサイズ
- GPT-2は、GPTやBERT Baseと同規模のモデルから、最大15億パラメータを持つTransformerモデルまで、4つの異なるサイズのモデルを設計した。
- これはBERT Largeの最大3.4億パラメータを大きく上回る規模であった。
3.3. GPT-2の実験結果と限界
- Zero-shot性能の評価
- GPT-2は、Zero-shot設定で既存のSOTA(State Of The Art)手法と比較された。
- 読解タスクでは良好な結果を示したが、要約や質問応答タスクでは既存のSOTAモデルに大きく劣る結果となった。
- 論文の著者は、結果について「興味深い」「少し意味がある」と控えめに表現した。
- モデルサイズと性能の関係
- モデルサイズが大きくなるにつれて性能が向上する傾向が見られた。
- これは、より大規模なモデルとデータセットを使用することで、Zero-shot学習の性能がさらに向上する可能性を示唆していた。
- この知見が、次世代のGPT-3の開発へとつながった。
4. GPT-3論文の深掘り:言語モデルはFew-shot学習器
GPT-3は、GPT-2のZero-shot学習の限界を克服するため、Few-shot学習に焦点を当て、1750億パラメータという前例のない規模のモデルを構築し、微調整なしで人間と区別できない高品質なテキスト生成を実現した。
4.1. GPT-3の目的とFew-shot学習
- GPT-3の目的
- GPT-3は、GPT-2のZero-shot学習の有効性の低さを解決するために、Few-shot学習設定に戻った。
- Few-shot学習とは、少数のサンプル(10〜100個程度)を用いてタスクを学習するが、モデルのパラメータは更新しないアプローチである。
- これは、人間が少数の例から学習する能力に似ている。
- GPT-3の主要な貢献
- GPT-3は、1750億パラメータを持つ自己回帰モデルであり、既存の非スパースモデルよりも10倍大きい。
- 特定のタスクに適用する際、勾配更新や微調整を一切行わない。
- 多くの自然言語処理タスクで優れた性能を達成し、GPT-2の限界を克服した。
- 人間が書いたと区別できないほどの高品質なニュース記事を生成できる点が大きな特徴である。
- 論文の構成と課題
- GPT-3の論文は63ページに及ぶ技術報告であり、モデルのアーキテクチャに関する記述は少なく、結果と考察に多くのページが割かれている。
- GPT-2のモデルを完全に踏襲しているにもかかわらず、その詳細な説明が論文に含まれていないため、読者はGPT-1とGPT-2の論文を事前に読む必要がある。
- 既存の微調整アプローチの課題
- 各サブタスクに固有のデータセットと微調整が必要である。
- 大規模なラベル付きデータセットの収集とアノテーションにコストがかかる。
- 微調整されたモデルの汎化能力が、事前学習モデルの真の汎化能力を反映していない可能性がある。
- 人間は少数のサンプルでタスクを学習できるが、従来のモデルは大量のデータが必要であった。
- GPT-3の解決策:Meta-LearningとIn-Context Learning
- GPT-3は、Few-shot学習やZero-shot学習を「Meta-Learning(メタ学習)」や「In-Context Learning(文脈内学習)」と呼ぶ。
- Meta-Learningは、汎化能力の高い大規模モデルを訓練することを指す。
- In-Context Learningは、訓練サンプルが与えられてもモデルの重みを更新しない学習方法を指す。
4.2. GPT-3のモデルアーキテクチャと訓練データ
- Meta-Learningの概念図
- GPT-3は、多様なタスク(加算、スペル修正、翻訳など)を含む大量の多様なテキストで訓練されることで、Meta-Learningのプロセスを模倣する。
- 各段落や章は、異なるタスクや文脈内学習の例と見なされ、モデルは文脈から情報を抽出する能力を学習する。
- Few-shot, One-shot, Zero-shot学習の比較
- Few-shot Learning:各サブタスクに10〜100個の訓練サンプルを提供する。
- One-shot Learning:各タスクに1つのサンプルのみを提供する。
- Zero-shot Learning:サンプルを一切提供しない。
- モデルのパラメータサイズが大きくなるにつれて、特にFew-shot設定で精度が大幅に向上する。
- 微調整とGPT-3の学習モードの比較
- 微調整:事前学習済みモデルを基に、タスク固有の訓練サンプルでモデルの重みを更新する。
- GPT-3の学習モード(Zero-shot, One-shot, Few-shot):モデルの重みを更新せず、プロンプトと文脈情報のみで予測を行う。
- Zero-shot:タスクの説明と入力のみを与え、モデルに直接予測させる。
- One-shot:タスクの説明と入力の間に1つの例を挿入し、文脈情報として利用させる。
- Few-shot:複数の例を挿入し、より多くの文脈情報を提供する。
- GPT-3の学習モードは、新しいタスクへの適用が容易であるという利点がある。
- しかし、大量の訓練サンプルがある場合や、モデルが長いシーケンスを処理できない場合に課題が生じる。
- GPT-3のモデルとアーキテクチャ
- GPT-3のモデルはGPT-2と同じアーキテクチャだが、Normalizationの位置変更や可逆トークンの変更など、Sparse Transformerの改良が取り入れられている。
- GPT-3は、1.25億パラメータのSmallモデルから、1750億パラメータの最大モデルまで、8つの異なるサイズのモデルを設計した。
- 最大モデルは96層、各層の次元は約12,000と非常に大規模である。
- GPT-3のモデルは、層数よりも幅が広い「扁平な」構造を持つ傾向がある。
- 訓練時のバッチサイズは最大320万サンプルと非常に大きく、分散訓練が必須となる。
- 大規模モデルでは、バッチサイズを大きくしても過学習が深刻にならないという反直感的な現象が観察されている。
- 学習率はバッチサイズに反比例して減少する。
- 論文ではモデルアーキテクチャの詳細な説明が不足しており、読者は複数の参考文献を参照する必要がある。
- GPT-3の訓練データ
- GPT-3は、GPT-2で品質が低いとされたCommon Crawlデータを再利用し、以下の3つのステップでクリーンアップした。
- 品質フィルタリング:GPT-2のWebTextデータセットを正例、Common Crawlを負例としてロジスティック回帰分類器を訓練し、Common Crawlから高品質なウェブページを抽出した。
- 重複排除:LSH(Locality Sensitive Hashing)アルゴリズムを用いて、類似する記事を削除した。
- 高品質データセットの追加:BERT、GPT-2、GPTで使用された既存の高品質データセットも追加した。
- 最終的なデータセットは、Common Crawl(4兆トークン)、WebText2(190億トークン)、Books1(120億トークン)、Books2(550億トークン)、Wikipedia(30億トークン)で構成される。
- 訓練時には、Common Crawlのデータ量が圧倒的に多いにもかかわらず、品質を重視してサンプリングレートを調整し、高品質なデータセットからのサンプリング比率を高めた。
- GPT-3は、GPT-2で品質が低いとされたCommon Crawlデータを再利用し、以下の3つのステップでクリーンアップした。
4.3. GPT-3の訓練と評価
- モデルの訓練
- GPT-3は、約2000億パラメータを持つため、分散訓練が必須であり、MicrosoftのV100 GPUクラスターで訓練された。
- 論文では訓練の詳細が簡潔にしか記述されておらず、モデル分割やデータ分割に関する具体的な情報は少ない。
- モデルの評価
- GPT-3は微調整を行わないため、事前学習済みモデルを直接評価する。
- 評価には文脈内学習が用いられ、各下流タスクの訓練セットからk個のサンプルを条件としてサンプリングする(k=0, 1, 10-100)。
- プロンプトには「Answer:」や「A:」のような形式が使用される。
- 分類タスクでは、True/Falseのような自然言語形式の回答が用いられる。
- 自由形式の回答が必要な質問応答タスクでは、機械翻訳と同様にBeam Searchが用いられる。
- 実験結果の概要
- 計算量と損失の関係:モデルサイズが大きくなるほど、同じ計算量で検証損失が低くなる傾向が見られた。
- 冪乗則(Power Law):最適なモデルと訓練量を選択した場合、計算量の増加に対して損失が線形に減少するという冪乗則が観察された。
- 人間との比較:GPT-3は、Zero-shot設定で既存のSOTAアルゴリズムを上回り、Few-shot設定では人間の精度に近づく結果を示した。
- Open Domain質問応答:GoogleのT5モデルと比較して、Few-shotやOne-shotのGPT-3が優れた性能を示した。
- 機械翻訳:BLEUスコアで評価され、他言語から英語への翻訳が英語から他言語への翻訳よりも一般的に優れていることが示された。
- テキスト生成:GPT-3は、人間が書いたと区別できないほど高品質なニュース記事や文章を生成できる。
4.4. GPT-3の限界と社会的影響
- GPT-3の限界
- テキスト生成の弱点:長文生成では内容の繰り返しや一貫性の欠如が見られる。
- 構造的・アルゴリズム的制約:Transformerデコーダを使用しているため、BERTのように双方向の文脈を考慮できない。
- 単語の重要度認識の欠如:すべての単語を均等に予測しようとするため、重要な単語とそうでない単語の区別ができない。
- 非テキスト情報の欠如:テキストデータのみで訓練されているため、画像や動画、物理的なインタラクションなどの非テキスト情報を理解できない。
- サンプル効率の低さ:人間と比較して、非常に大量のデータで訓練する必要がある。
- 学習メカニズムの不透明性:文脈内学習が、本当に新しい知識を学習しているのか、それとも訓練データから関連情報を検索しているだけなのかが不明確である。
- 高コスト:訓練と運用に莫大な計算リソースとコストがかかる。
- 説明不可能性:大規模な深層学習モデルであるため、その意思決定プロセスを人間が理解することは非常に困難である。
- GPT-3の社会的影響
- 悪用される可能性:誤情報の拡散、スパムメールやフィッシングメールの生成、論文の捏造などに悪用される可能性がある。
- 公平性と偏見:訓練データに存在する性別や人種、宗教に関する偏見を学習し、生成されるテキストに反映される可能性がある。
- 例えば、「探偵」は男性と認識されやすく、女性に対しては「美しい」といった外見に関する言葉が生成されやすい。
- 人種によっては、肯定的な評価と否定的な評価に偏りが見られる。
- エネルギー消費:GPT-3の訓練には数百台のGPUを数日間稼働させる必要があり、そのエネルギー消費は非常に大きい。
4.5. GPTシリーズの総括
- GPT-3の成果
- GPT-3は1750億パラメータを持つ言語モデルであり、Zero-shot、One-shot、Few-shot学習において、多くのNLPタスクで微調整ベースのSOTAアルゴリズムに匹敵する性能を示した。
- 高品質なテキスト生成能力と、微調整なしでタスクをこなす可能性を示したことが大きな成果である。
- GPTシリーズの進化
- GPT:Transformerモデルを事前学習に導入し、その有効性を証明した初期の画期的な研究。
- GPT-2:GPTの技術路線を堅持しつつ、より大規模なモデルとデータセットでZero-shot学習というより困難な問題に挑戦した。
- GPT-3:GPT-2の限界を克服するため、さらに100倍大規模なモデルを構築し、Few-shot学習で驚異的な性能を実現した。
- GPTシリーズの貢献
- GPTシリーズは、大規模言語モデルの可能性を大きく広げ、自然言語処理分野に新たな視点と進歩をもたらした。
膨大な資料を天才のように理解 — LilysAI とともに
100万人以上のナレッジシーカーが Lilys AI を利用しています。
