人気のある技術用語を発音の難しさで並べると、ChatGPTは間違いなく上位に位置します。一体なぜそれは ChatGPT と呼ばれているのでしょうか?

本文では、ChatGPTへの理解を深めるために、GPT(Generative Pre-Training Transformer)について説明した上、ChatGPTは果たしてどのようなものを説明します。

Generative(生成式)

私たちは既に、Siriのような対話型ロボットとの交流に慣れていますが、これは人工知能モデルの一つの方法に過ぎません。また、認識系(Congnition)のもの:顔認識、に音声認識、テキスト認識など、さまざまな認識用モデルがあります。(しばしば識別モデル、discriminativeとも呼ばれます)

Generative(生成式)の大きなカテゴリにはいくつかの小さな分野があります。DALLEはGANという対抗型ネットワークの手法を使用して絵を描くために使用されます。が、現在最も人気のあるのはStable Diffusionです。MidJourneyはDifusionという別の分野に進んでいます。そして、ChatGPTはTransformerという分野に属しています。

Transformer Generative(トランスフォーマー生成式)の言語モデルの核心は、一般的には「言語パータン」と言われます。

十分な量のテキストを見た後、特定の言語パターンが繰り返し現れることがわかるようになります。例えば、「すもももももももの__ 」正確に埋めることができる理由は、それが言葉遊びを創造できるようになったわけではなく、ただ単に無意識に言語パータンを出てくるからです。

その一方で、ChatGPTは「9657*44126 = 」という問いに対して、計算結果が「426,204,582」になると答えてくれました。

ChatGPTによる計算の結果

実際には、その結果が間違っています。正しい答えは426,124,782です。

正確の計算結果

結果の末の「2」が正しいだけであり、それはただ多くのテキストデータを読んだことにより、「7」で終わる数字、と「6」で終わる数字の掛け算の結果は「2」で終わる数字になるという言語パータンが出てきます。それは、言語感覚のようなものであり、計算を学んだのではありません。

生成式モデルが努力している問題は、いくつかの文字が与えられた場合に、人間が引き続きどのような文字を書くかを予測することです。

BERTの時代には、トレーニングのために、文の中のいくつかの単語をランダムに隠し、コンピュータに既存のモデルを使ってそれらの単語を予測させました。予測が正確であれば、強化を続け、予測が間違っていればモデルを調整し、何百万回、何十億回というトレーニングを行い、徐々に正確さが向上しました。ただし、ChatGPTの生成式の部分では、テキストだけでなく、文脈や意図(intention)もトレーニングおよび予測に組み込まれています。

Pre-Training(プレトレーニング)

以前、多くの人工知能モデルは特定の目標に向けて訓練されていました。例えば、1000枚の猫の写真を与えれば、猫が写っているかどうかを判断するモデルを容易に訓練できました。これらは専用のモデルといいます。

一方、Pre-Training(プレトレーニング)モデルは特定の目標に向けて訓練されるのではなく、予め汎用的なモデルをトレーニングすることを意味します。特定の要求がある場合には、この基礎に基づいて、既存のPre-Trainingモデルを微調整(Fine-Tuning)することができます。

これは、家事の整理をするために人を雇う場合の例えに似ています。その人は労働者派遣会社によって家事の知識を予めトレーニングされており、それ以前には学校の先生によって会話を予め習得されています。そこで、家にやって来れば、家庭の特定の要件に対して、微調整すれば作業を進めます。ここで、もし真っ白の人であれば、会話の教育から家事知識まで徹底的にトレーニングする必要があります。

ChatGPTのPre-Trainingは、私たち全員(特に起業家やプログラマー)に予め訓練されたモデルを提供しています。このモデルは言語を得意とし、提供してくれる内容がどれほどでたらめであっても、少なくとも文体の流暢さは文句のつけようがありません。これが彼のPre-Training(プレトレーニング)の部分であり、回答の内容部分は私たちが微調整する必要がある部分です。

Transformer(変換器)

トランスフォーマーとは、変換器のことです。例えば、220ボルトの電力を入力し、12ボルトの電力を出力してくれるものです。

言語の変換器は、言語のシーケンスを入力として、エンコーダ(encoder)と呼ばれる構成要素によって数字の表現に変換します(たとえば、GPTでは1536個の浮動小数点数(または1536次元ベクトル)を使用して、単語や文、段落、文章などを表現します)。その後、変換が行われ、新しいシーケンスに変換され、最後にデコーダ(decoder)を使用して出力されます。この変換器は、自然言語処理の中核です。

例えば、ChatGPTに「Apple」という単語を入力すると、次のような結果が返されます:

[
 0.0077999732,
 -0.02301609,
 -0.007416143,
 -0.027813964,
 -0.0045648348,
 0.012954261,
.....
0.021905724,
 -0.012022103,
 -0.013550568,
 -0.01565478,
 0.006107009]

これらの1536個の浮動小数点数はAppleを表現しています(どの次元または組み合わせが「甘い」を表し、別の次元が「丸い」を表し、他の次元が「赤い」などの属性を表すかは具体的には分かりません)。そして、これらの数値をデコーダに渡し、言語を限定すると、日本語なら「りんご」、スペイン語なら「manzana」、絵文字なら「🍎」といった具体的な出力が得られます。要するに、エンコード、変換、デコードを通じて、Appleから目標の出力言語への変換が行われます。

ChatGPTが行うことは翻訳以上のものですが、本質的には言語のシーケンスを別のシーケンスに変換することです。このタスクは非常に優れているため、思考能力があるかのような錯覚を引き起こすのです。

GPT(生成式プレトレーニング変換器)

GPT(生成式プレトレーニング変換器)は、入力テキストを出力テキストに変換するための事前にトレーニングされた生成モデルです。これを他の能力や定義と区別するとすれば、それは大部分がこの翻訳モデルの応用シナリオであり、モデル自体ではありません。

では、ChatGPTとは何でしょうか?

OpenAIは、彼らが開発しているモデルを説明するためにこの名前(ChatGPT)を使用しています。以上の説明から理解すると、ChatGPTとは、実際にチャット用の生成式プレトレーニング変換器になります。過去のバージョンにはGPT-1、GPT-2(このモデルはオープンソースでした)、GPT-3(伝説的な175Bパラメータの大規模モデル)が含まれています。これらはすべて生成モデルであり、与えられたプロンプト(入力)を補完(完了)する役割を担っています。しかし、このものは元々チャットシナリオに合わせて設計されたものではないから、チャットに使用するには適していません。

そのため、GPT-3を基に、次世代モデルのInstructGPTが開発されました。このモデルは、モデルが指示を理解できるようにすることに重点を置いています。さらに、その上でChatGPTが開発されました。ChatGPTは、対話のシナリオ、たとえばマルチターンの対話やセキュリティの制約などに対して強化されています。ただし、このモデルはGPT-3を基にしており、厳密にはGPT-3モデルの微調整(Fine Tuning)の結果と言えます。

まとめ

ChatGPTの意味をこのように整理することで、皆さんがこの名前の背後にある考えを理解するのに役立つのでしょう。