前回、「ChatGPTでできること・できないこと・注意点」について解説しました。それを踏まえて今回は、ChatGPTのアーキテクチャ・動作原理をメインに、関連技術も含めて解説します。第1回の「ChatGPTの動作原理」の節の内容を掘り下げるかたちとなります。
→連載「ChatGPT入門 - 初めてのAIチャット活用」の過去回はこちらを参照。
機械学習の基礎知識
本題に入る前に、まずは機械学習の基礎的な知識について簡単に説明します。ある程度機械学習になじみのある方は、次の節まで読み飛ばしていただいても構いません。
まず、機械学習の重要な要素として「モデル」があります。モデルとは、入力データに対して出力結果を算出する仕組みのことを指し、数学的な関数や木構造、クラスタリング、確率分布などで表されることもあれば、「ニューラルネットワーク」と呼ばれる人間の脳を模した構造で表現されることもあります。層の数が多いニューラルネットワークは「深層ニューラルネットワーク」と呼ばれ、ChatGPTのような自然言語処理の分野では主にこの技術が使われています。そして、モデルはパラメータを持つことが特徴です。
そのモデルに対して「学習データ」を適用し、パラメータをより適したものに更新していくことを「学習」と呼びます。この学習のアルゴリズムにはさまざまな種類がありますが、ここではChatGPT関連で理解しておくべきものとして以下の2つを取り上げます。
- 教師あり学習※
- 入力データ、およびそれに対応する出力データ(これを「教師データ」と呼ぶ)を与え、教師データに近い値を出力するようにモデルを更新する学習アルゴリズム
- 強化学習
ここまでで、機械学習のモデルおよび学習アルゴリズムについて基礎的な部分を説明しました。あくまでも今回の内容に関連のある事項が中心であり、他にも機械学習関連の知識は多岐にわたります。興味のある方は、他の記事や文献も参照してみてください。
※ なお、教師あり学習に対して教師データを使わない学習は「教師なし学習」、教師あり・教師なしを両方併用する学習は「半教師あり学習」と呼ばれます。
ChatGPTのアーキテクチャ・動作原理の概要
それではいよいよ、今回のメイントピックであるChatGPTのアーキテクチャ・動作原理について説明していきましょう。ChatGPTのアーキテクチャ・動作原理を理解する上で、大きなポイントとなるのは以下の2点です。
- GPT-3.5をベースとしたモデルであること
- 「人間からのフィードバックを基にした強化学習(RLHF:Reinforcement Learning from Human Feedback)」を使って、上記のモデルをチューニングしていること
GPT-3.5は自然言語やコードの内容を理解し、インプットとなる文章から新たな文章を生成できる「大規模言語モデル(LLM:Large Language Models)」の一つです。ただし、ただ大量の文章データを学習しただけでは、人間の自然な応答を再現することはできません。RLHFを使うことにより、人間が自然だと感じる応答を生成できるようにチューニングしているのです。また、暴力的・差別的表現などの抑止にも貢献し、OpenAIが掲げる「Safety&Responsibility」の概念を実現しています。
もう少し詳しい内容を知りたい方は、まずはChatGPTの公式ページに掲載されている図を参照するとよいでしょう。
上図に記載されているのは、GPT-3.5のモデルをベースとした以下の3ステップから成る学習手法の概要です。
- 教師あり学習によるチューニング
- 報酬モデルの学習
- 2で学習した報酬モデルによるチューニング
この3ステップの1、および2、3が、前節の「機械学習の基礎知識」で紹介した2つの学習アルゴリズム(教師あり学習、強化学習)にそれぞれ対応します。ステップ2、3の強化学習(RLHF)が繰り返し実施され、モデルがチューニングされるイメージです。
ちなみに、学習済みモデル(ここではGPT-3.5)に対してさらに学習を行い、パラメータを更新することは「ファインチューニング」と呼ばれます。ChatGPTの文脈ではよく使われる用語です。
ChatGPTの各要素技術・関連技術
前節では、ChatGPTのアーキテクチャ・動作原理について概要を説明しました。ここからは、ChatGPTで使われている技術の中からいくつかピックアップして解説していきます。関連技術も含め、理解を深めていきましょう。
大規模言語モデル(LLM)
膨大な量の言語データを学習し、自然言語処理のさまざまな用途に使うことができるモデルは大規模言語モデル(LLM)と呼ばれます。ChatGPTも大規模言語モデルをベースとし、人間の指示に適応するようにチューニングされています。
ここで言う「自然言語処理のさまざまな用途」としては、例えば以下のようなものが挙げられます。
- QA
- 会話
- 要約
- 分類(与えられた文章に対するポジティブ・ネガティブの感情判定など)
- 創作(物語の生成など)
また、大規模言語モデルの歴史的変遷を図示すると以下のようになります。
-
大規模言語モデルの歴史的変遷。"A Comprehensive Survey on Pretrained Foundation Models: A History from BERT to ChatGPT" Figure1を参考に作成
2013年に発表された「Skip-gram」は、一昔前に話題となった「Word2Vec」の基礎となる技術であり、そこから見ると大規模言語モデルの発展は目覚ましいものがあります。また、2017年に発表された「Transformer」という技術を契機として、大規模言語モデルはさらなる発展を遂げることとなります。2018年以降に発表された代表的なモデルである「BERT」「BART」「GPT-2/3(ChatGPT)」などは、全てこのTransformerという技術を使っており、これらの名前の末尾についている「T」は全て「Transformer」を意味しています。
次節では、このTransformerについて解説していきます。
大規模言語モデルの飛躍的進化を支えるTransformer/Attention
自然言語処理の分野では、「Encoder-Decoderモデル」というモデルがよく使われています。これは、インプットとなる文章データベクトルをより低い次元のベクトルにエンコーディングした後、デコーディングして文章データを出力するようなモデルのことです。旧来のEncoder-Decoderモデルは、インプット全体を固定長ベクトルにエンコーディングしてしまうため、長文への対応に限界があると指摘されていました。
それに対し、2014年、「NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE」という論文の中で「Attention」という機構が発表されました。Attentionは既存のEncoder-Decoderの拡張として機能し、固定長ベクトルにエンコーディングすることのない新たな仕組みを提示することで、特に長文に対する処理精度を大きく向上させました。同論文は機械翻訳の分野の研究として発表されましたが、その後、自然言語処理のさまざまな分野で活用されることとなります。
その後しばらくはRNNやCNNといったEncoder-Decoderモデル+Attentionの組み合わせが主流となりますが、2017年に「Attention Is All You Need」という論文の中でTransformerというモデルが発表され、自然言語処理の分野はまた新たな変化を迎えることとなります。Transformerは、前述したAttentionの機構を使ったシンプルなEncoder-Decoderモデルで、旧来のRNNやCNNといったモデルより精度が高いのはもちろん、学習を並列化し、学習時間を大幅に短縮できることが特徴です。Transformerの出現によって膨大な量の文章データを学習できるようになったことが、現在主流となっているGPT-3などの大規模言語モデルの誕生につながっています。
RLHFによるモデルのチューニング
ChatGPTはこれまで説明した通り、GPT-3.5という大規模言語モデルをベースに人間の指示に適応するよう、人間が作成した学習データを用いた教師あり学習、および強化学習(RLHF)でチューニングされています。特に後者のRLHFに関しては、ChatGPT関連の界隈で注目されています。
ChatGPTのベースとなっている「InstructGPT」は、2022年の3月に論文として発表されています。その後、AlphaGoなどの開発元であるDeepMindが2022年9月に論文にて「Sparrow」と呼ばれるAIを発表していますが、その中でもRLHFの技術が使われています。また、2022年12月にはAnthropicが論文で「Constitutional AI」という類似のAIを発表しました。同AIでは「Reinforcement Learning from AI Feedback(RLAIF)」と命名された手法が使われており、人間からのフィードバックの代わりにAIからのフィードバックで強化学習を行うという試みを実施しています。
RLHFは前述の通り、単に人間にとって自然な応答を実現するだけでなく、Safety&Responsibilityを実現するという重要な目的も果たしています。このChatGPTの成功例は、言語モデル以外の他の領域にも強化学習が適用されるきっかけになるかもしれません。
学習データの準備
続いて、RLHFなどの学習を実施するために必要な学習データに目を向けてみましょう。ChatGPTの学習データは人間が作成していますが、大量の学習データを人間が作るのは大変なのでは、といった懸念を抱いている読者の方もいらっしゃるのではないかと思います。ChatGPTがどのような学習データを使っているのか、正確な情報は公開されていませんが、ChatGPTのベースとなっている「InstructGPT」の論文の内容を基に考察していきます。
ChatGPTの学習データは主に以下の3つに大別されます。
- 教師あり学習/RLHF双方で使われる入力データ
- 教師あり学習に使われる出力データ
- RLHFに使われる出力データ
InstructGPTの論文によると、最初の入力データとしては、過去にInstructGPTの早期バージョンをOpenAI API Playgroundで公開していた際の入力データを収集して使っているようです(前処理にて個人情報は除去)。データ数は、入力データが教師あり学習用に13,000、RLHF用に64,000で、それをベースとして人間が上記2、3の出力データを作成しています。データ作成にあたっては、UpworkやScale AIといった企業を通じて40人雇っていたそうです。その際、ただデータを作成するだけでなく、データの質を上げるためにいくつかのルールを設けるといった工夫もしたとされています。
GPT-3が使っている570GBの文章データと比べるとデータ量は少ないように感じるかもしれませんが、GPT-3などの大規模言語モデルは、基本的にCommon Crawlなどの公開データを使っているだけなので、データ量を比較することはできません。77,000件ものデータを人手で作成するのは労力がかかりますし、ChatGPTはより大量のデータを作成していることが想定されます。
機械学習の分野ではモデルのアーキテクチャや学習手法に注目が集まりがちですが、実際にモデルを学習するに当たり、ボトルネックとなるのは学習データの準備であることも多いです。OpenAIのような、ある程度規模が大きく質の良いデータを蓄積している組織でないと、このような取り組みが難しいことは想像に難くないでしょう。
しかし、以下のような要因により、大量データを使った機械学習の間口は今後少しずつ広がることが期待されます。
- 質の良い機械学習用の公開データが増える
- データ準備からトータルでサポートしてくれるサービスが増える(Scale AIが提供するデータプラットフォームや、Amazon SageMakerのようなクラウドサービスなど)
また、今後も増えるであろうチューニング済みの公開モデルを適切に利用することによって、必要なデータ量を削減することも可能でしょう。
GPT-4
最後に、2023年3月15日(日本時間)にOpenAIが発表したGPT-4についても簡単に解説していきます。GPT-4はChatGPTの後継となるモデルで、ChatGPTと比較して以下の点が優れているとされています。
- 作曲や脚本作成などの創造的なタスクに優れている
- テキストだけでなく画像データを入力とすることができる(マルチモーダル)
- 25,000単語以上の長い文脈にも対応することができる
- 論理的推論に優れている
- Uniform Bar Exam(米国の司法試験)などで高いスコアを記録している
また、RLHFによるチューニングの仕組みは同様に、ChatGPTユーザーからのフィードバックや、AIの安全性・セキュリティの領域の専門家によるフィードバックなどを基にさらなるモデルの改善に取り組み、よりSafe&Responsibleなモデルを実現しています。
* * *
以上、本稿ではChatGPTのアーキテクチャ・動作原理について解説しました。ChatGPTは、GPT-3.5と呼ばれる大規模言語モデルをRLHFなどの技術を用いてチューニングし、世界が注目する結果を残しています。また、GPT-3.5の発表からわずか数カ月でGPT-4が発表され、将来的にはSparrowやConstitutional AIなど、ChatGPTと同じ技術をベースとするAIが後を追って出てくることも予想されます。技術が進化するスピードが非常に速く、その動向からはまだまだ目が離せません。
次回は「言葉によるプロンプトセントリックな世界」というテーマで解説する予定です。お楽しみに。