なぜ最新のAIが「strawberryのrの数」を間違えるのか

賢いと評判のモデルに「strawberryにrはいくつ?」と聞くと、平然と「2つ」と答えることがある。知識が足りないわけでも、油断したわけでもない。これはモデルの設計そのものに根ざした、わりと深い話だ。
モデルは「文字」を見ていない
LLMは文章をそのまま読んでいない。入力はまず「トークン」という単位に分解される。多くの場合トークンは1文字ではなく、頻出する文字のかたまり(サブワード)だ。英語なら “straw” と “berry” のように、ありふれた綴りの塊にまとめられる。日本語でも数文字単位でまとまることが多い。
モデルが受け取るのは、このかたまりに割り振られた番号の列でしかない。つまりモデルは “strawberry” を「rを3つ含む10文字の語」としてではなく、「2〜3個の記号の並び」として見ている。文字は記号の内側に畳み込まれ、見えなくなっている。人間が単語を一目で意味として捉え、いちいち綴りを意識しないのに少し似ている。
だから何が苦手か
この構造から、苦手分野はきれいに予測できる。文字数を数える、特定の文字を抜き出す、しりとりや韻、文字列の逆順、回文判定——どれも「記号の内側にある一文字一文字」を操作する作業だ。モデルにとっては、封筒の中身を見ずに便箋の枚数を当てるようなものになる。数字も同様で、桁ごとの繰り上がりが必要な筆算はトークン化の都合で崩れやすい。
逆に、意味や文脈を扱う要約・翻訳・分類・言い換えは得意だ。記号のかたまりのまま処理できる仕事は強く、かたまりを割って中をいじる仕事は弱い、と覚えておくとよい。
実務での線引き
だから判断はシンプルになる。文字単位・桁単位の正確さが要る作業は、モデルに直接やらせない。文字数や置換ならコードを書かせて実行させる、計算はツール呼び出しに回す、綴りを確認したいなら「一文字ずつスペースで区切って」と頼む——これだけで誤答はぐっと減る。
最新モデルでこの種の失敗が目立たなくなったとしても、それは弱点が消えたのではなく、訓練やツール連携で覆い隠されている場合が多い。AIの得手不得手は、賢さの量ではなく、世界をどんな単位で見ているかで決まる。そこを押さえておくと、任せ方を間違えなくなる。
お役立ち情報
- 📄 Qiita - LLMが文字数を数えられない理由とトークナイザーについて
- LLMが文字をどのように認識しているかをトークン化(BPEなど)の観点から図解した分かりやすい日本語解説記事。
- 🛠️ OpenAI Tokenizer
- OpenAI公式のトークン化シミュレーター。入力したテキストがどのようにトークンに分解されるかを視覚的に確認・体験できます。
- 📺 YouTube - Let’s build the GPT Tokenizer (Andrej Karpathy)
- 元OpenAIのAI研究者Andrej Karpathyによる、トークン化の最も丁寧な技術的解説講義(英語)。