前回、「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の文脈ではよく使われる用語です。