ふだんは賢いのに、ある一言だけ急にダメになる
ChatGPTに仕事を手伝ってもらっていると、たいていのことはすらすらこなしてくれます。ところが、ある特定の単語や、見慣れない綴り、記号がまじった短い文を投げた瞬間だけ、急に返事が意味不明な壊れ方をすることないですか?
さっきまで難しい相談にも的確に答えていたのに、その一語をきっかけに、同じ言葉を延々くり返したり、まったく関係ない話にすべり込んだりする。しかも壊れ方が妙に極端で、こちらが拍子抜けするくらいです。
「AIにも苦手がある」で片づけたくなるけれど
人間にだって得意不得意があるように、AIにも苦手な入力があるわけですが、それだけだと少し腑に落ちません。
不思議なのは、あれだけ複雑な質問をこなす相手が、なぜ他ではなく「その一語」でだけ崩れるのか、という点です。難易度が高いから間違える、という話なら分かります。でも、崩れるのはたいてい難問ではなく、ただ珍しいだけの言葉だったりする。ここに、常識では届かない一段裏がありそうです。
AIは文字ではなく「かたまり」で世界を見ている
この現象を確率の見方で解釈できるか、やってみましょう。
出発点は、AIが文章をどう受け取っているか、です。自分たちは文章を一文字ずつ読んでいるつもりですが、AIは文字単位ではなく、トークンと呼ばれる語の断片を単位にして文を区切ります。よく出てくる語はまるごと一つのかたまりになり、めったに出てこない綴りは細かく砕かれて、いくつもの小さなかけらに分かれます。
そしてAIは、学習のあいだに読んだ膨大な文章から、「このかたまりの次には、どのかたまりが来やすいか」をひたすら覚えてきました。よく見た並びなら、次に来る候補をかなり自信を持って絞り込めます。ところが、めったに出てこない綴りや記号では、つまずき方が二通りあります。ひとつは、なじみのない文字列が細かく砕かれて、見慣れないかけらの寄せ集めになってしまう場合。もうひとつは、かたまり自体は一語ぶんとして用意されているのに、学習中にほとんど出てこなかったせいで、そのかたまりから先を予測する手がかりが育っていない場合です。有名な例に「SolidGoldMagikarp」という文字列があります。あるユーザー名に由来するこの語は、GPT-3系のモデルに投げると無関係な単語にすり替えて答えてしまう挙動が報告されました(このしくみを体系的に調べた研究として Land & Bartolo, “Fishing for Magikarp” (2024) があります)。どちらの場合も、ふだん頼りにしている手がかりが、その一点だけごっそり抜け落ちる、という点は同じです。
この「学習でよく見た範囲」を分布、そこから外れた入力を分布の外と呼びます。崩れやすいのは、入力がこの分布の外に落ちたときだと考えられます。
同じことは、数字や記号でも起きる
同じ見方をすると、崩れやすい場所がだいたい予想できるようになります。
たとえば、やたらと桁の長い数字、見慣れない特殊記号の羅列、半角と全角がまじった変な空白。どれも「日常の文章にはあまり出てこない並び」という点で共通しています。つまり、分布の外に落ちやすい入力です。逆に、ありふれた言い回しならまず崩れない。苦手なのは難しさではなく、珍しさのほうだった、と読み替えられます。
AIが次の一語を確率で選び続けているという話は以前にも書きました。今回の崩れは、その選ぶ土台そのものが揺らぐ場合、と言えます。
式で見ると、崩れる場所が読める
では、この揺らぎを式に書き直してみると、どう読めるでしょうか。
AIが次のトークンを選ぶとき、内側で見ているのは次の確率です。
$$P(w_t \mid w_1, w_2, \ldots, w_{t-1})$$
記号をそのまま日常語にほどきます。$w_1$ から $w_{t-1}$ までが、いまここまでに並んでいるトークンの列。$w_t$ がこれから選ぶ次のトークン。縦棒は「これまでの並びを前提にしたとき」という意味です。全体で「ここまでの文脈をふまえて、次が $w_t$ である確からしさ」を表しているだけです。
学習でよく見た文脈なら、この確率の配り方は、その場にふさわしい形にきれいに整います。ところが分布の外に落ちると、この配り方が崩れます。崩れ方は一様ではありません。どの候補も似たり寄ったりで決め手を欠く方向に散ることもあれば、逆に見当違いの一語へ極端に張りついてしまうこともある。どちらも「学習でうまく整えた配り方から外れた」という点では同じで、その結果、意味の通らない繰り返しや脱線が出やすくなる、と読めます。
配り方がどれくらい偏っているか、あるいは散らばっているかは、情報量で測れます。
$$H = -\sum_i p_i \log p_i$$
$p_i$ が各候補の確率、$H$ がその不確かさの大きさ(エントロピー)です。ある候補の確率がほぼ1なら $H$ はほぼ0で、迷いなく一択。逆に候補が横並びだと $H$ は大きくなります。分布の外で起きているのは、この $H$ が本来あるべき値からずれてしまうこと、と言えます。大きくふくらんで行き先を決めきれないこともあれば、不自然に小さくなって同じ語に張りつくこともある。拠りどころを失ったまま無理に一語を絞り出すから、崩れ方が極端に見えるわけです。
ちなみに、この $H$ の大きさは狙って動かすこともできて、絞れば返事は無難に、広げれば攻めた案が出やすくなります。同じ散らばりの目盛りを、今度は意図して調整する側から見た話も書きました。

だとすると、避けられるかもしれない
こうして見ると、AIが特定の入力で壊れるのは、知能が足りないからではなく、入力がふだん見ている分布の外に落ちて、確率の配り方が乱れるからだ、と整理できます。
だとすると、対処の方向も見えてきます。珍しい綴りや記号の塊をそのまま投げず、ありふれた言葉で言い換えたり、前後に文脈を足して「見慣れた並び」に寄せてやれば、配り方は本来の形に戻りやすくなる。壊れやすい場所をあらかじめ避けて通れる、ということです。AIをつくる側も、トークナイザを更新しています。実際、「 SolidGoldMagikarp」はGPT-3系の語彙ではひとつのトークンでしたが、GPT-4系のトークナイザでは「 Solid」「Gold」「Mag」「ik」「arp」の5つに分かれます。少なくとも、ほぼ未学習の一語へ入力全体が乗る古い壊れ方は、そのままでは起きません。
次にChatGPTが妙な壊れ方をしたら、それは相手が急に馬鹿になったのではなく、地図の外に一歩踏み出した瞬間を見ているのかもしれません。そう思って一言ぶんだけ言い換えてやるだけで、案外あっさり元に戻せたりするかもしれませんね?
あわせて読みたい関連記事。



