GPT (言語モデル)
大規模言語モデルの種類
From Wikipedia, the free encyclopedia
GPT(英: Generative Pre-trained Transformer、日: 生成的事前学習変換器[1])とは、OpenAIによる言語モデルファミリー。大規模なテキストデータのコーパスで訓練され、人間的な文章を生成する。

Transformerアーキテクチャのデコーダー部分のみを使用し、Universal Language Model Fine-tuning (ULMFiT) と同じ言語モデルアプローチを採用している[2]。テキスト生成、翻訳、文書分類など諸々の自然言語処理に合わせてファインチューニングできる。名称に含まれる "pre-trained"(事前訓練)とは、大量のテキストコーパスによる最初の訓練プロセスを指し、モデルは各文節に続く単語を予測するよう学習する。これによりもたらされる強固な基盤によって、各処理固有の下流処理が限定的なデータ量であってもモデルが適切に動作する。
前史
コンピュータの黎明期から人工知能は研究対象であった。1950年にアラン・チューリングが提唱した「イミテーション・ゲーム(imitation game)」(しばしばチューリング・テストと呼ばれる)は、電子システムや機械的システムが知的行動を取る能力を、評価者がシステムと人間の行動を区別する能力によって判定することを提案するものである[3]。「機械学習(machine learning)」という用語は、早くも1959年に、IBMの研究者であるアーサー・サミュエルによって、人工知能の可能性を説明する言葉として最初に使われた[4]。現在、この用語には、統計的学習、データサイエンス、ニューラルネットワークなど、計算問題に対するさまざまな手法(しばしば人工知能の下に置かれる)が包含されている。
計算言語学
コンピュータによる自然言語処理 (NLP) は、もともと計算言語学の一分野として考えられていたもので、コンピュータのハードウェアに能力が備わると同時に試みられるようになった。1948年、ロンドンのバークベック・カレッジで開発された辞書「ルックアップテーブル」が最初の応用例である[5]。1954年のジョージタウン大学での実験では、60文のロシア語の文章を英語に翻訳するという(主にロシア語の単語を英語の同義語に置き換える)完全に自動化された機械翻訳が実演された[6][7]。そのシステムには6つの文法規則と250語の語彙しかなく[8]、統語構造の解析や翻訳も行われなかったため、翻訳は粗雑なものが多かった[9]。しかしこの実験によって、コンピュータが自然言語を解釈し処理できることが一般に証明され[10]、さらなる研究のためにCIAの資金が確保された[6]。直接置換は、機械翻訳プログラムを評価する際の基準として残存している。
20世紀半ばには、人間とコンピュータの対話 (HCI) に自然言語を利用するシステムも登場し始めた。1968年から1970年にかけてマサチューセッツ工科大学 (MIT) で開発された「SHRDLU」は、いくつかの物体がある仮想空間で、ユーザーが自然言語による命令を使って対話を行うプログラムである(たとえば「今持っているものより高いブロックを探して、箱の中に入れる」)[11] [12]。1966年に開発されたおしゃべりロボットの「ELIZA」は、人間の対話者が入力したテキストからキーワードを解析し、会話に適する返答をした[13]。多くの被験者が、ELIZAの会話と人間の会話を区別できないと主張したが、これが知性を構成するかどうかという問題については議論となった(もっとも有名な台本は、心理療法士がユーザーの言ったことをほぼそのまま繰り返すというパロディであった)[14]。
機械翻訳の初期の試みは純粋に計算によるものだったが、1950年代になると計算言語学の主流として、ノーム・チョムスキーの普遍文法という概念が重視されるようになった[5]。当時のNLP研究は、任意の自然言語の文を、言語に依存しない論理構造に還元する試みが中心であった。1970年代には、意味論的なNLPシステムは、構文的なエンコーディング (syntactic encodings) を避け、より一般意味論的なエンコーディング (semantic encodings) を支持するようになった[15]。しかし、ニューラルネットワークが登場するまでは、ほとんどのシステムが、手作業でプログラムされた大規模な(そしてますます扱いにくくなった)ルールセットに依存し続け、当初の狙いどおりに拡張することはできなかった[5]。
人工知能の分野は20世紀後半も発展を続けたが、ときおり「AIの冬」と呼ばれる停滞期が訪れた。「AIの冬」は、様々な文献で様々な時期に発生したと述べられた。1994年にHoweは、1973年に始まって10年続いたと著し[16]、2003年にRussell & Norvigは、1988年にすぐ始まったと述べている[17]。
ニューラルネットワーク
人工知能の初期の概念であるコネクショニズムは、生物学的な脳におけるニューロン(神経細胞)の挙動をシミュレートするように設計された人工ニューラルネットワークによって知的行動を引き起こそうとするものであった。人工ニューラルネットワークの最初の例は、1951年に構築された「SNARC」である。「パーセプトロン」(二値分類器の一種)は、1957年に心理学者のフランク・ローゼンブラットによって発表された[18]。彼の機械は、400個のフォトセル(光電池)を「ニューロン」に接続して画像認識するように設計され、加重値はポテンショメータで決定されていた(訓練過程で電気モーターで調整[19])。パーセプトロンは大きな話題となり、『ニューヨーク・タイムズ』紙の記事で「(海軍が)期待する電子コンピュータの萠芽は、歩き、話し、見て、書き、自己複製し、自分の存在を意識できるようになるだろう」と紹介された[20]。しかし、マービン・ミンスキーとシーモア・パパートによる1969年の書籍『パーセプトロン:計算機科学への道』においては[21]、当時の最先端技術(単層パーセプトロン)の欠点として、排他的論理和 (XOR) 関数を符号化できないことなどが指摘されて以来、パーセプトロンシステムは数十年間も衰退したままであった。この本は当時、有望な研究分野としてのパーセプトロン(および一般的なニューラルネットワーク)を否定するものと考えられていた[20]。
ニューラルネットワークは、「訓練 (training) 」および「学習 (learning) 」という過程を経て、さまざまな入力を分類することができるようになる(すなわち個別のカテゴリに区分する)。学習は、まずネットワークの重み(各ニューロンの「活性化」が後続層の特定ニューロンの活性化に影響を与える量)をランダム(無作為)に初期化する。この状態では、ネットワークの出力も同様にランダムとなる。そして、ネットワークの出力がどれだけ望ましい出来栄えに近いかを定量的に測定する損失関数などの目的関数を定義する(たとえば、手書きの数字からなる入力が、その数字に対応する出力ニューロンのみを活性化させる頻度)[22]。この関数とネットワークの出来栄えから、重みを調整して性能を改善することができる[23]。
バックプロパゲーションは、1974年のポール・ワーボスの学位論文で初めて機械学習システムに適用した教師ありアルゴリズムであり[24]、所与の入出力例に対するネットワーク全体の重みの最適調整を記述するベクトル場である「勾配」の計算を効率化した[23][22]。この勾配を使用してニューラルネットワークを訓練する勾配降下法によって、より複雑なシステムを構築することが可能となり、1980年代にはニューラルネットワークの自然言語処理への応用が広まることになった[25][17]。1985年にはD.B. Parkerがワーボスの手法を再発見し[26]、1986年にはラメルハート、ヒントン、ウイリアムスが「深層学習(ディープラーニング)」ネットワークと呼ばれる隠れ層を持つニューラルネットワークで、入力データの内部表現を生成するためにこの手法を応用し[27]、この研究はその後の回帰型ニューラルネットワークの基礎を築いた。
従来の順伝播型ニューラルネットワーク (FFNN) は、各層が前の層からの出力を取り入れ、次の層に送り出すことからその名が付けられた。FFNNの構造には、情報が逆流するような「巡回 (cycles) 」は存在しない。これに対して、回帰型ニューラルネットワーク (RNN) は、活性化の流れの巡回を少なくとも一つ持っている[22]。RNNネットワークでは、ある項目そのものと、以前の項目を処理したときの出力の両方を使用して一連の項目を処理できるため、順序付いた項目を処理する(および将来の順序項目を予測する)ためによく使用された[22]。
1979年に福島邦彦が哺乳動物の視覚野における神経構造モデルに基づいて提唱したネオコグニトロン[28]は、画像処理で広く使われる畳み込みニューラルネットワーク (CNN) の基礎を築いた[29]。CNNは、大きな入力層に対して小さな層を「重ねて滑らせる」ことで、より少ない計算量でより深い処理を行うことができる。たとえば、100×100の画像には10,000個の画素があり、全結合層で処理するには10,000個の重みが必要だが、画像上をスライドする5×5の「窓」からなる畳み込み層では、わずか25個の学習可能なパラメータでエッジ検出を行うことが可能である。畳み込み層は「プーリング層」によって結合され、「全結合層」(一般的に多層パーセプトロン)によって処理される。
自然言語処理のための機械学習
回帰型ニューラルネットワーク (RNN) は、系列的な情報を処理することができるため、多くの自然言語処理 (NLP) アプリケーションで利用されている。RNNは、FFNNとは異なり、同じ項目に対して、順序項目の周囲の状況に応じて異なる重みを符号化する(そして異なる出力を与える)ことができる。ということは、一度に一個の単語を解析するRNNシステムでも、「黒い犬 (black dog) 」は毛むくじゃらの脚、「アメリカンドッグ (corn dog) 」はケチャップ、「幻日 (sun dog) 」は屈折のように、同じ「dog」から異なる連想ができる。RNNではさらに、以前の順序項目の情報を再帰的に呼び出すことができるため、ずっと以前に遡って任意の項目を思い出すようにシステムを設計することができる。たとえば、「トムは黒い犬を見た」「トムはアメリカンドッグを見た」「トムは幻日を見た」という順序項目を、それぞれ「優しく」「飢えて」「間接的に」と続けることができるようになる[30][31]。
しかし、多層型のFFNNとRNNは優れた解を出せる一方で、どちらも勾配消失問題に対して脆弱であることが判明した。勾配は有限精度の数値として符号化され、モデルの全ての層にわたって逆伝播する必要があるため、多数の層を重ねるとゼロに「消滅」、または無限大に「発散」する可能性がある。1995年から1997年にかけて、Sepp HochreiterとJürgen Schmidhuberが初めて提案した長・短期記憶ネットワーク (LSTM) は、「入力」「出力」「忘却」ゲートを持つ複数の個別の「セル」からなる新しいアーキテクチャを導入することによって、この問題を解決しようとした[32][33][34]。2009年に、Alex Gravesチームが提出したLSTMに基づくモデルが、手書き文字認識のICDARコンペティションで優勝し[35]、もう一つのモデルは最も正確なモデル、3番目のモデルは最も高速なモデルであった[36]。
RNNやLSTMが抱えるもう一つの問題は、以前の順序項目の文脈しか考慮できないことである[30][37]。このため、「トムはバイクに乗って店に行き、キックスタンドを下ろしてエンジンを切った」のように、「バイク(自転車)」が「モーターバイク(オートバイ)」であるという必要な文脈が最後でしか明らかにならない文章を解析するときに問題を引き起こすことがある。このような問題を解決する一つが双方向LSTM (bidirectional LSTM) であり、双方向に同時に進行することで、「過去」と「未来」の両方の入力特徴にアクセスすることを可能にする[30]。条件付き確率場 (CRF) は、タグを使って入力と出力を直接結びつける[30]。 上記のアプローチの組み合わせた、LSTM-CRFネットワークやBI-LSTM-CRFネットワークもある[30]。その他に、RNNモデルの改良として、ニューラルチューリングマシン、適応計算時間 (adaptive computation time) 、ニューラルプログラマー (neural programmers) 、アテンション機構などがあり、最後のものはGPT-2や関連技術の基礎をなしている[31]。
選択的集中
2010年代初頭まで、ニューラル機械翻訳で最高の性能を発揮したのは、RNNやLSTMによる「エンコーダネットワーク」が原文をベクトルに符号化し、そのベクトルを同様のアーキテクチャの「デコーダネットワーク」が処理して翻訳出力を得るという「エンコーダ・デコーダ」モデルであった[38]。2014年に非常に複雑な「アテンション」機構が導入され、これらのモデルの性能は大幅に向上した。アテンション機構は、デコーダネットワークに、テキスト全体を単一ベクトルとして解析するのではなく、原文の特定の側面に適応的に「アテンション(注意)」を集中させる能力を与えた[38][39]。
その後、2017年には、さらに一歩進んでアテンション機構を使用して、RNN/LSTMアーキテクチャを完全に置き換えた「Transformer」モデルが導入された[40][31]。
アテンション機構
エンコーダ・デコーダモデルの制約の一つに、より大きな文章を符号化して固定長のベクトルに圧縮することの難しさがあり、入力が大きくなるにつれて性能が低下することがよく見られた。2014年、Bahdanauらは[38]、「整列と翻訳を共同で行う」ことができるエンコーダ・デコーダモデルの拡張を発表した[39]。Bahdanauモデルのエンコーダ(各方向に1000個の隠れユニットを持つ双方向RNN)は、翻訳された原文の各単語に対して、その文の残り全てを検索して関連する情報の位置を探した。従来のように入力文全体を固定長でベクトル化してデコーダに入力するのではなく、それらの位置と以前に生成したターゲット語を関連付けた「文脈ベクトル」を生成した[38]。そして、デコーダ(これも1000個の隠れユニットを持つ)は、この文脈ベクトルを使用して、どこに「注意」を向けるかを決定した[38][39][31]。
「アテンション」機構の探究は、Luongらによる2015年の論文で継続された[39]。Bahdanau論文に基づく「グローバル」アプローチと、原語の部分集合のみを一度に「考慮」する「ローカル」アプローチが試みられ、ローカルアプローチは、アーキテクチャ的にはより複雑だが、計算量が少なく、訓練が容易であった[39]。1秒間に1,000個のターゲット語を翻訳できるように特別に設計された英語-ドイツ語翻訳モデルを完全に訓練するのに7-10日を要した。その精度は、2014年のACL Workshop on Machine Translation (WMT'14) における英語-ドイツ語文ペアのタスクに対するテストで、23.0 BLEUという結果を達成した。これは、以前の試みで達成した最高結果であるBuck et al. 2014によるフレーズベースの言語モデルよりも2.1 BLEU優れていた[39][41]。
Transformers
アテンション機構は、既存の畳み込みニューラルネットワークや回帰型ニューラルネットワークのアーキテクチャを改善するために使うことで性能向上に効果的であったが、すぐに、何も基礎を置かずにアテンション機構単独でも高性能なモデルを構築できることがわかった[40]。
2017年6月、Google Brain、Google Research、およびトロント大学の研究者が発表した論文で、Transformerアーキテクチャが初めて紹介された[40]。Transformerは、畳み込みや回帰を完全に捨て去り、アテンション機構のみに基づいたモデルの一種である。従来のRNNに基づくモデルと異なり、Transformerは、系列的に入力される各項目について順番に計算することなく処理できるため、大規模な並列化が可能であることを意味した[40]。WMT'14フランス語-英語タスクでは、Transformerアーキテクチャを使用して特別に訓練したフランス語-英語翻訳モデルが、41.8 BLEUという新しい単一モデルのベンチマークを達成することができた[40]。Transformerは、導入以来、多くの自然言語処理(NLP)アプリケーションで使用されている[42]。
GPTの誕生
2018年6月11日、OpenAIは「Improving Language Understanding by Generative Pre-Training」(生成的事前学習による言語理解の向上)と題する論文を発表し、その中で「Generative Pre-trained Transformer (GPT)」と呼ぶNLPモデルを紹介した[43]。この当時、最高性能を発揮するニューラルNLPモデルでは、主に手作業でラベル付けされた大量のデータを用いて、教師あり学習を採用していた。こうした教師あり学習への依存によって、ラベル付けが十分でないデータセットでの利用は制限を受け、さらに非常に大規模なモデルを訓練するには非常に高価かつ時間もかかっていた[43][44]。スワヒリ語やハイチ・クレオール語などの多くの言語は、コーパス構築のためのテキストが不足しているため、このようなモデルを用いて翻訳や通訳することは困難であった[44]。これに対して、GPTの「半教師付き」アプローチは、言語モデリングの目的に基づいて初期パラメータを設定する教師なし生成的「事前学習」段階と、これらのパラメータを標的タスクに適応させる教師あり識別的「微調整」段階の2段階に分けて行われた[43]。
アテンション強化RNNを含む従来の技術とは異なり、Transformerアーキテクチャを用いたGPTには、より構造化された記憶が備わり、それによって「多様なタスクに対応できる頑健な転移性能」が実現された[43]。
転移時には、トラバース形式の手法から派生したタスク固有の入力適応を利用し、構造化テキストの入力を単一の連続したトークン列として処理する。[43]
コーパス
教師なし事前学習は、さまざまなジャンルに属する7,000冊以上の未発表小説のデータセット「BooksCorpus」を用いて行われた[45]。このデータセットが選ばれた理由の一つは、長距離の情報を処理するためのモデルの条件として、連続した長い文章が求められたことにある。利用可能な他のデータセットは、規模は大きくても、このような長範囲的な構造がない(文レベルで「入れ替え」られている)ことを理由に却下された[43]。BooksCorpusのテキストをクリーニング(句読点や空白の標準化)するためにftfyライブラリが、トークン化ではspaCyが使われた[43]。
アーキテクチャ
GPTのアーキテクチャ自体は、12層のデコーダのみのTransformerで、それぞれ64次元の状態を持つ12個のマスク付き自己アテンション・ヘッド(合計768個)を使用した。単純な確率的勾配降下法ではなく、Adam最適化アルゴリズムが使用された。学習率は、最初の2,000回の更新では、0から最大2.5×10−4まで線形に増加し、コサインスケジュールによって0までアニリーングされた[43]。
512個の連続したトークンからなるランダムにサンプリングした64個のミニバッチの訓練を100エポック行う。レイヤーノルムはモデル全体で広く用われているため、N(0,0.02)の単純な重みの初期化で十分であった。40,000個のバイト対符号化(BPE)語彙のマージと、正則化には残差、埋め込み、アテンションのドロップアウトを比率0.1で行った。また、Loshchilov et al. 2017で提案されたL2正則化の修正版を採用し、すべての非バイアスウェイトやゲインウェイトはw=0.01とした。
(中略)
原著で提案された正弦波バージョンの代わりに学習された位置埋め込みを使用した。
(中略)
特に指定がない限り、教師なし事前学習でのハイパーパラメータ設定を再利用する。分類器にはドロップアウトを比率0.1で追加する。ほとんどのタスクでは、学習速度6.25e-5、バッチサイズ32を使用する。このモデルは高速に微調整され、ほとんどの場合は3エポックの訓練で十分であった。学習率は線形減衰スケジュールを用い、ウォームアップは訓練の0.2%以上とした。λは0.5とした[43]。
GPTは、微調整の段階で特定のタスクに適応させたが、事前学習の段階はそうしなかった。さまざまなタスクを実行するために、タスクに依存しない基礎となるモデルアーキテクチャに最小限の変更が加えられた[43]。それにもかかわらず、GPTはいくつかの言語処理タスクにおいて過去のベンチマークを上回り、多くの多様なタスクにおいて、タスク指向のアーキテクチャを持つ識別的に訓練されたモデルより優れていた[43]。
性能
自然言語推論(テキスト含意推論(textual entailment)とも呼ばれる)タスクでは、モデルの評価は、さまざまなデータセットに含まれる文の対を解釈し、それらの関係を「含意」「矛盾」「中立」に分類する能力に基づいて行われる[43]。たとえば、QNLI(Wikipediaの記事)やMultiNLI(速記、大衆小説、政府報告など)といった情報源に対して[46]、GPTは従来の最高値からそれぞれ5.8%、1.5%優れていた[43]。同様に、質問応答や常識推論に関連する2つのタスクでも、RACE(中学校と高校の筆記試験の問題と解答の組からなるデータセット)で5.7%[47]、クローズ・テストで8.9%、従来のモデルをそれぞれ上回った[48]。
もう一つの意味的類似性(または言い換え検出)のタスクでは、2つの文が互いに言い換えであるかどうかをモデルが予測できるかどうかを評価するもので、Quora Question Pairs(QQP)データセットで、GPTは従来の最高性能モデルよりも4.2%向上した[43]。また、Corpus of Linguistic Acceptability(CoLA)を用いたテキスト分類タスクでは、従来の最高スコア35.0に対してGPTはスコア45.4を達成した。最後に、マルチタスクテストのGLUEで[49]、GPTは総合スコア72.8(従来は68.9)を達成した[43]。
モデル一覧
GPT-1
2018年6月11日、OpenAIは "Improving Language Understanding by Generative Pre-Training" というタイトルの論文をリリースし、その中でGPT (Generative Pre-trained Transformer) を導入した[43]。
この時点では、最高のパフォーマンスを行うニューラル自然言語処理モデルは、主に手動でラベル付けされた大量のデータからの教師あり学習を採用していた。この教師あり学習への依存は、十分に注釈が付けられていないデータセットの使用を制限するだけでなく、非常に大規模なモデルの訓練に莫大な費用と時間がかかっていた[43][44]。
多くの言語(スワヒリ語やハイチ・クレオール語など)は、コーパス構築に使用できるテキストが不足しているため、このようなモデルを使用して翻訳や解釈をすることが難しい[44]。これに対して、GPTの「半教師あり」アプローチには2つの段階が含まれていた。2つの段階は、言語モデリングの目的を使用して初期パラメータを設定する教師なし生成「事前訓練」段階と、これらのパラメータがターゲットとするタスクに適合された教師あり識別「ファインチューニング」段階である[43]。
訓練には NVIDIA Quadro P600 を8枚30日使用し、実行効率33%のため、0.96ペタFLOPS・日となった[50]。
GPT-2
GPT-3
GPT-4
GPT-4系には、以下のモデルがある。詳細は当該記事を参照。
GPT-5
2026年4月時点で、GPT-5から、GPT-5.5までのモデルがある。詳細はGPT-5を参照。
シリーズ一覧表
| 名称 | 用途 | アーキテクチャ | パラメータ数 | 訓練データ | リリース日 |
|---|---|---|---|---|---|
| GPT-1 | 汎用 | 12-level, 12-headedのTransformerデコーダ(エンコーダなし)、linear-softmaxによりフォローされる。 | 1億1700万 | BookCorpus:[51] 様々なジャンルの7000冊の未発表書籍からの4.5GBのテキスト | 2018年6月11日[50] |
| GPT-2 | 汎用 | GPT-1 + 正規化/初期化 | 15億 | WebText(40GB) | 2019年2月14日 |
| GPT-3 | 汎用 | GPT-2 + スパースアテンション | 1750億[52] | 570GBのプレーンテキスト、4000億のトークン。主にCommonCrawl, WebText, English Wikipedia, および2つの書籍コーパス(Books1およびBooks2). | 2020年6月11日[53] |
| Codex | プログラミング | GPT-3をプログラミング用途に調整 | 2021年8月10日[54] | ||
| InstructGPT | 会話 | GPT-3を人間のフィードバックによる指示に従うよう微調整[55] | 2022年3月4日 | ||
| GPT-3.5 | 汎用 | 非公開 | 非公開 | 非公開 | 2022年3月15日 |
| ProtGPT2 | タンパク質配列[56] | GPT-2 large(36層)と同様 | 7億3800万 | UniRef50からのタンパク質配列(計4488万、検証のために10%を使用した後) | 2022年7月27日 |
| BioGPT | 生物医学のコンテンツ[57][58] | GPT-2 medium(24層、16 heads)と同様 | 3億4700万 | PubMedの空でない項目(計150万) | 2022年9月24日 |
| ChatGPT | 会話 | GPT-3.5を使用し、教師あり学習とRLHF[59]の両方でファインチューニングされている(転移学習のアプローチ)[60] | 非公開 | 非公開 | 2022年11月30日 |
| GPT-4 | 汎用、マルチモーダル | テキスト予測とRLHFの両方で訓練されている。詳細非公開[61] | 非公開 | 非公開 | 2023年3月14日[62] |