OpenAI社が開発したChatGPTと呼ばれるAIチャットボットが、人々の注目と想像を集めている。複雑なトピックを要約したり、長い会話をする能力など、この技術の応用は実に印象的だ。
他のAI企業が独自の大規模言語モデル(LLM)-ChatGPTのようなチャットボットの基盤技術の名称-のリリースを急いでいるのは当然のことだ。これらのLLMの一部は、検索エンジンのような他の製品に組み込まれる予定だ。
その素晴らしい機能を念頭に置いて、私はNewr York Times紙が提供する単語ゲーム「Wordle」でチャットボットを試してみることにした。プレイヤーは、5文字の単語を6回当てることが出来る。単語を当てるごとに、どの文字が正しい位置にあるのかが表示される。
ChatGPT-4という最新世代のチャットボットを使ってみたところ、驚くほど性能が悪いことが分かった。GPT-4といえば、言葉遊びが得意なイメージだが、実際はどうなのだろうか?LLMはテキストで “訓練”される。つまり、情報に触れることで、自分の能力を向上させることができるのだ。ChatGPT-4は、Wikipediaの全文、パブリックドメインの書籍、膨大な量の科学論文、多くのWebサイトのテキストなど、約5,000億語で訓練された。
AIチャットボットは、私たちの生活において大きな役割を果たすかも知れない。ChatGPT-4がWordleと格闘する理由を理解することで、LLMがどのように単語を表現し、作業するのか、そしてそれがもたらす制限についての洞察を得ることが出来る。
まず、単語中の2文字の正しい位置を知っているWordleパズルでChatGPT-4をテストしてみた。パターンは「#E#L#」で、「#」が未知の文字を表している。答えは「mealy」という単語だった。
ChatGPT-4の6つの回答のうち、5つがパターンに一致しなかった。その回答とは「beryl」、「feral」、「heral」、「revel」、「merle」、「pearl」だ。
他の組み合わせでは、チャットボットが有効な解決策を見つけることもあった。しかし、全体的に見ると、非常に当たり外れが大きい。「OS#」というパターンに当てはまる単語の場合、5つの正しい選択肢を見つけることが出来た。しかし、「#R#F#」というパターンでは、「F」を含まない2つの単語と、辞書に載っていない「Traff」という単語が提案されたのだ。
ボンネットの下
ChatGPTの核となるのは、ディープニューラルネットワークだ。これは、入力と出力を対応させる複雑な数学的関数(ルール)である。入力と出力は数字でなければならない。ChatGPT-4は言葉を扱うので、ニューラルネットワークがそれを扱うには、言葉を数字に「変換」する必要がある。
翻訳を行うのは、トークナイザーと呼ばれるコンピュータプログラムで、トークナイザーは「トークン」と呼ばれる単語や文字列の膨大なリストを保持している。このトークンは、数字で識別される。例えば「friend」という単語は、トークンIDが6756なので、「friendship」という単語は、「friend」と「ship」というトークンに分解される。これらは、6756と6729という識別子で表される。
ユーザーが質問を入力すると、ChatGPT-4がリクエストの処理を開始する前に、単語が数字に変換される。ディープニューラルネットワークは、テキストとして単語にアクセスできないので、文字について本当に推論することは出来ないのだ。
ポエムタスク
ChatGPT-4は、言葉の頭文字を扱うのが得意だ。そこで、各行の冒頭の文字が「I love robots(ロボットが大好きです)」となるような詩を書くように頼んだ。すると、意外なほどうまくいった。最初の4行は以下の通りだ。
I am a fan of gears and steel
Loving their movements, so surreal,
Over circuits, they swiftly rule
Vying for knowledge, they’re no fool,
(私は、ギアとスチールのファンです
彼らの動きがとてもシュールで好きです、
サーキットの上では、素早く支配する
知識を競い合う彼らは、決して馬鹿ではありません、)
ChatGPT-4の学習データには、膨大な数の教科書が含まれており、その中にはアルファベットの索引が含まれていることが多い。そのため、GPT-4は単語とその頭文字の関連付けを学習するのに十分であった可能性がある。
トークナイザーもこのようなリクエストを認識できるように改良されているようで、ユーザーがリクエストを入力すると、「I Love Robots」のようなフレーズを個々のトークンに分割するようだ。しかし、ChatGPT-4は、単語の最後の文字を扱う要求を処理することが出来なかった。
ChatGPT-4は回文も苦手だ。ロボットに関する回文フレーズを出せと言われ、「a robot’s sot, orba」を提案したが、これは回文の定義に当てはまらず、不明瞭な言葉に頼っている。
しかし、LLMは他のコンピュータプログラムを生成することが比較的得意だ。これは、彼らのトレーニングデータには、プログラミングに特化したWebサイトが多く含まれているからだ。ChatGPT-4には、Wordleの欠落文字の正体を調べるプログラムを書いてもらった。
ChatGPT-4が作成した初期プログラムにはバグがあった。それを指摘すると修正してくれた。このプログラムを実行したところ、「#E#L#」というパターンに一致する有効な単語が48個見つかった。以前、GPT-4に直接、このパターンにマッチする単語を提案してもらったときは、1つしか見つからなかった。
今後の修正点
ChatGPT-4のような大規模な言語モデルが、簡単な単語パズルや回文の作成に苦労するのは意外に思われるかも知れない。なぜなら、学習データには利用できるほぼすべての単語が含まれているからだ。
しかし、これはすべてのテキスト入力を数字として符号化する必要があり、これを行うプロセスでは、単語の中の文字の構造を捉えることができないためだ。ニューラルネットワークは純粋に数字を使って動作するため、言葉を数字として符号化するという要件は変わらない。
この問題を解決するには、2つの方法がある。まず、ChatGPT-4はすべての単語の最初の文字を知っているので、その辞書にあるすべての単語内のすべての文字の位置のマッピングを含むように、学習データを増強することが出来る。
2つ目は、よりエキサイティングで一般的な解決策だ。私が示したように、将来のLLMはこのような問題を解決するためのコードを生成することが出来る。最近の論文では、LLMが外部のツールを使って、算術計算のような通常では困難な作業を行う「ツールフォーマー」というアイデアが示されている。
私たちはこれらの技術の黎明期にあり、現在の限界についてこのような洞察をすることで、さらに素晴らしいAI技術を生み出すことができるのだ。
コメントを残す