paint-brush
AI はなぜ「Strawberry」という単語の「R」の数を数えられないのか?@kisican
11,091 測定値
11,091 測定値

AI はなぜ「Strawberry」という単語の「R」の数を数えられないのか?

Can Kisi5m2024/08/29
Read on Terminal Reader

長すぎる; 読むには

よく知られている例としては、「イチゴ」という単語がありますが、AI は「r」が何回出現したかを正確に数えることができません。その答えは、これらのモデルが言語を処理して生成する方法の核心にあります。言語モデルは単語を個々の文字のシーケンスとして扱いません。代わりに、テキストを「トークン」と呼ばれる小さな単位に分解します。
featured image - AI はなぜ「Strawberry」という単語の「R」の数を数えられないのか?
Can Kisi HackerNoon profile picture

AI はなぜ「Strawberry」という単語の「R」の数を数えられないのか?


大規模言語モデル、特に OpenAI の ChatGPT は、人間のようなテキストを理解し生成できるマシンとのやり取りに革命をもたらしました。しかし、これらのモデル自体には、奇妙な特徴がいくつもありました。最近、すべてのソーシャル メディアで広まっている最も厄介な奇妙な点は、この大規模言語モデルが単語内の特定の文字の数を正しく数えられないことです。非常によく知られている例は「strawberry」という単語で、AI は「r」が何回出現したかを正しく数えられないことがよくあります。しかし、なぜそうなるのでしょうか。その答えは、これらのモデルが言語を処理し生成する方法の核心に深く潜んでいます。

トークン化プロセス

AI が文字数を数えるなどの問題でつまずく主な理由の 1 つは、実際に単語を処理する方法にあります。GPT-3 や GPT-4 などの言語モデルは、単語を個々の文字のシーケンスとして扱いません。代わりに、テキストを「トークン」と呼ばれる小さな単位に分解します。トークンは、問題のモデルの設計と関連する特定の単語に応じて、1 文字ほど短い場合もあれば、単語全体ほど長い場合もあります。


たとえば、「strawberry」という単語は、モデルがトレーニングで認識した部分的な単語の断片を表す 2 つのトークンに分割される可能性が高くなります。問題は、これらが通常、単語の文字に対応していないことです。これは、「strawberry」などの例では、AI が単語を完全な単一の文字に分解するのではなく、トークン ID 496 と 675 などの 2 つのトークンを認識する可能性があるためです。後で特定の文字を数えるように求められた場合、このモデルはトークンを特定の文字の出現回数にマッピングする簡単な方法を見つけることができません。

言語モデルの予測メカニズム

基本的に、言語モデルは、前の単語やトークンによって与えられたコンテキストに基づいて、シーケンス内の次の単語やトークンが何であるかを予測します。これは、一貫性があるだけでなくコンテキストも認識しているテキストを生成する場合に特に有効です。ただし、何かを正確に数えたり、個々の文字について推論したりする必要がある目的にはあまり適していません。


AI に「strawberry」という単語の「r」の出現回数を数えるように頼んだ場合、AI は、その文字の出現回数と位置を導き出せるほどの単語の詳細な表現は持ち合わせていないでしょう。その代わりに、AI は、要求の構造から予測を立てることについて学習した内容に基づいて答えます。もちろん、AI が学習したデータは文字を数えることに関するものではなく、例の単語の「r」をトレースするのに必要な素材の種類さえ含まれていない可能性があるため、これは不正確である可能性があります。

純粋言語モデルの限界

もう 1 つの重要な点は、ほとんどのチャットボットで使用されている言語モデル自体は、明示的なカウントや算術には適していないということです。別の言い方をすると、純粋な言語モデルは、学習したパターンに基づいて確率で重み付けされたタスクを実行する高度な辞書または予測テキスト アルゴリズムに過ぎませんが、カウントなどの厳密な論理的推論を必要とするタスクには苦労します。AI に単語のスペルを綴るか、個々の文字に分解するように要求すると、AI はこれをより頻繁に正しく実行する可能性があります。これは、AI がトレーニングされたタスク、つまりテキスト生成にもっと合致しているからです。

回避策と改善

これらの制限にもかかわらず、このようなタスクにおける AI のパフォーマンスを向上させることは可能です。AI に Python などのあらゆる種類のプログラミング言語を使用してカウントを行うように指示することで、パフォーマンスを向上させることができます。たとえば、AI に「strawberry」の「r」の数を数える Python 関数を作成するように指示すると、おそらく正しく実行されます。このアプローチを使用するのは、AI のコードを理解して生成する能力を活用し、そのコードを実行してタスクを正しく実行できるためです。

それに加えて、より新しい世代の言語モデルが、カウントや算術も含む、より構造化されたタスクに対してこれらのモデルをより強力にする他のツールやアルゴリズムと組み合わされています。

記号推論を組み込んだり、LLM を外部推論エンジンと組み合わせたりすることで、AI システムはこれらの欠点を克服できるようになります。


言語モデルの性質と「集団的愚かさ」

「いちご」のような単語の文字数を数える問題は、この点で、より大きく、より一般的な問題、つまり、これらのトレーニングされたモデルの「集団的な愚かさ」を示唆しています。これらのモデルは、非常に大規模なデータセットでトレーニングされているため、非常に高度なレベルでテキスト生成を実行できますが、それでも、小さな子供なら簡単に回避できる非常に愚かな間違いを犯すことがあります。これは、モデルの「知識」が、現実世界の理解や論理的推論ではなく、パターン認識と統計的関連性で構成されなければならないために発生します。


詳細な指示があったり、複数のモデルが相互にチェックする状況に設定されていたりしても、AI は頑固に間違った答えに固執することがあります。この動作は、AI システムの能力を過大評価するのではなく、AI システムが何ができて何ができないかを十分に理解することがいかに重要であるかを詳細に示しています。


結論: AI理解の進化

AI が「イチゴ」の「r」の数を数えることができないのは、単なる些細な欠陥ではありません。むしろ、言語モデルの基本的なアーキテクチャと設計哲学を反映しています。これらのモデルは、人間のようなテキストを生成し、コンテキストを理解し、会話をエミュレートするのに非常に強力ですが、文字レベルでの細部への注意を特に必要とするタスクに直接使用されるものではありません。

AI は継続的に改善されているため、将来のモデルは、トークン化のプロセスの改善、追加の推論ツールの統合、または言語の理解と操作のまったく異なる方法を通じて、このようなタスクをより実行できるようになる可能性があります。それまでは、AI の限界を理解し、適切な回避策を使用し、理解をシミュレートすることはできるものの、人間のように真に「理解」しているわけではないことを認識した上で、AI に取り組む必要があります。