ChatGPTなど大規模言語モデル(LLM)の仕組みを分かりやすく解説
2023年の2月から何かと話題になっているChatGPTですが、仕組みまで理解している方は少ないのではないでしょうか。
今回は、ChatGPTの仕組みを解説しますので、ぜひ最後まで読んで、ぜひ参考になさってください。
仕組みが分かれば理屈が分かり、より応用した使い方も考えられるようになるでしょう。
関連記事:ChatGPTの使い方のコツを解説!という名目で自分がAIを使う上でのあるある言いたい
INDEX
簡単な説明|大規模言語モデル
細かいことまで気にしないという方のために、まずはとりあえず一旦仕組みだけ解説します。
ChatGPTに限らず、GoogleのGeminiやAnthropicのClaude、MetaのLlamaなどは大規模言語モデル(LLM)を使用しています。
LLMとは簡単に言うと文脈から次に来るであろうテキストを生成するためのモデルです。
例えば「りんごの色は?」と聞くと「赤」と続く確率が高いので、LLMは高確率で「赤」と出力します。
注意点としては、あくまで確率論で動いているということです。
生成AIを使用すると「間違っている可能性があります」「正しいとは限りません」という注意書きをよく見かけるのは、LLM自体が確率論で動くモデルだからです。
どんなに簡単な質問をしても、低確率ではあるかもしれませんが、間違った答えを生成する可能性はあります。
関連記事:LLM(大規模言語モデル)入門〜生成AI時代に遅れないために〜
GPTとは
ChatGPTですが、ものすごく雑な説明をすると「チャットのできるGPT」ということです。
ではGPTとはなんなのでしょうか。
GPTは、“Generative Pre-trained Transformer”の略で、「生成可能」な「事前学習済み」の「Transformer(トランスフォーマー))」という意味です。
“Transformer”には変成器、変圧器という意味がありますが、ここでは2017年に誕生した「自然言語処理(NLP)」ができるようになった言語モデルの名前として使います。
要するに、言語モデルというもののうちの1つの固有名詞です。
言語モデルとは
「生成可能」「事前学習」「言語モデル」と3つのなんだかよくわからないものが出てきましたが、まずは最も重要な「言語モデル」という単語について説明します。
言語モデルとは、前述の大規模言語モデルと同じで「文脈から次にくる単語の出現確率を用いてモデル化したもの」のことです。
先ほどの例だと「りんごの色は?」と聞くと「赤」と答える方が多そうですが、もしかしたら「青」や「緑」と答える方もいるかもしれません。
仮に「赤」と答える方が90%「青」と答える方が8%「緑」と答える方が2%いるのであれば、単純に考えると言語モデルの回答も90%の確率で「赤」8%の確率で「青」2%の確率で「緑」と答えることになります(イメージしやすいよう簡素化しています。厳密に言えばもっと複雑な処理をしています)。
もしこれが「一般的に食べられるりんごの色は?」とさらに限定した質問に変えてあげると「赤」の確率が高くなるでしょう。
ChatGPTには「より具体的に聞くといい」というのはこういう理屈からきています。
関連記事:ChatGPTのプロンプトとは?作成のコツや活用できる例文も紹介
このように人間の言葉を理解している(ように見える)ものの仕組みのことを「自然言語処理(NLP)」と言います。
「大規模言語モデル(LLM)」とはより多くのデータを使用して、自然言語処理を滞りなく行えるようになった言語モデルのことです。
生成可能とは
前章で申しました「言語から次の言語を生成できる」ことを「生成可能」と言います。
テキストやコードだけでなく、画像生成、音楽生成、動画生成などでも使用されます。
というより、一般的には画像生成などの方がイメージが強いかもしれません。
事前学習済みとは
LLMは確率で動くというお話をしましたが、そのためにはリリース前にある程度の学習を行わなければなりません。
学習していないモデルをリリースしたところで、使えないものという評価をされて終わってしまいます。
LLMはトレーニングを何回も繰り返した中で学習した統計パターンに基づいて成り立っています。
トレーニングでは、欠落のある文章から「欠落している単語は何か」という確率の計算を通して言語モデルに文法や単語の関係性などさまざまな言語のパターンを学習させます。
こうして学習させたモデルのことを「事前学習済みモデル」と呼びます。
この学習の時に、差別的な発言などもしないようにトレーニングされます。
事前学習だけでもそれなりに機能しますが、専門的な分野に弱いというデメリットがあります。
そこで行われるのが「ファインチューニング」と言われる手法です。
関連記事:ChatGPTが使えない?途中で止まった時の対処法や活用のコツを解説
ファインチューニングとは
ファインチューニングとは、大量のデータで事前学習されたモデルに対して、特定のタスクに適したデータを追加学習し、微調整する手法です。
このことで、例えば医療分野や法律分野など特定分野のデータに対して、その分野固有の言葉使いや構文をうまく処理することが可能になります。
企業に導入するのであれば、その企業に特化した学習が必要になりますが、それを可能にするのがファインチューニングです。
事前学習によりそれなりに高い精度を担保しているので、ファインチューニングでは少ないデータでも高い精度を実現できます。
LLMの問題点
LLMの高性能化により、まったく新しい技能を獲得することも判明しています。
一定以上の能力を持つLLMは、トレーニング中に自然言語のパターンを繰り返し観察するだけで異なる言語間の翻訳やコードを書く能力などの幅広い能力を身につけることができるようになりました。
従来は適切なデータでファインチューニングしなければ実行できなかった命令を、いきなり実行できるようになったのです。
言語モデルの技術が発展していくことは良い面もありますが、悪意のある学習も簡単にさせてしまうことも可能となってしまいました。
差別的な発言や攻撃的な発言を知らず知らずのうちに使ってしまう可能性が出てきたのです。
事前学習によりある程度の健全性はありますが、AIの発展では以下のようなことを目指していかなければなりません。
- 有用性:必要に応じてユーザーの意図を明確にしつつ、指示に従ってタスクを実行する能力。
- 真実性:事実に基づく正確な情報を提供し、言語モデル自身の不確実性と限界を認識する能力。
- 無害性:偏見があったり、不快だったりする反応を避け、また危険な活動を拒否する能力。
この3点を達成するのに、最も適しているとされているのが「人間のフィードバックによる強化学習(RLHF)」です。
RLHFでは、「人間がどのような回答を好むのか?」を決めます。
通常の言語モデルに「より人間が好みそうな回答」を学習させることで、タスクへの回答の品質が向上します。
RLHFにより、攻撃的だったり、不快感を与える生成を制御しつつ有用性も向上させています。
まとめ
ChatGPTは役に立ちますが、あくまで確率論で動いているということを認識して、できることとできないことを知るなどしてより有用な活用方法を見つけ出していくことが大切です。
そのことを体験できるプロンプトパークをぜひ試してみてはいかがでしょうか?