エージェントに指示を書いていると、誤字脱字も変換ミスも混ざります。それでも、たいてい正しく解釈されます。 使う人が送信したあとで変換ミスに気づいても、返ってくるものは合っている。
ただし、ここには2種類の別のことが混ざっています。 見分けておくと、何が起きているのかが追えます。
- 誤字脱字(英語では typo。カタカナで**「タイポ」と書かれることもあり、この記事で挙げる論文もこの呼び名を使っています)——
theと打つつもりで指の順が入れ替わってteh。ローマ字入力なら、konnichihaのnを一つ落として「こにちは」**。綴りそのものが、辞書に無い形に壊れます - 変換ミス(同音異義語を取り違えた)——「変換してください」が「返還してください」。綴りは一文字も壊れていません
後者は、日本語として完全に正しい語です。「返還」は辞書にある語で、ごく普通に使われます。壊れていないものを、どうやって「おかしい」と判断するのか。 ここが、誤字脱字とはまったく別の問題になります。
誤字脱字に反応するニューロンは、10通りのLLMで特定されている
誤字脱字のほうは、モデルの中のどの部分が反応しているかまで測った研究があります(arXiv 2502.19669)。
調べたモデルは10通り——Gemma 2の2B・9B・27B、Llama 3.2の1B・3B、Llama 3.1の8B、Qwen 2.5の3B・7B・14B・32Bです(数字はパラメータの個数で、Bは10億)。
課題は、語の定義を渡して、その語を当てさせるもの。WordNet(英語の語とその意味を整理した辞書データ)から62,643組の「語と定義」を取り出し、各モデルが正しく答えられた上位1,000〜5,000組を使っています。そこに誤字脱字を人工的に加えます——重要な位置のトークンに、ランダムな1文字か1数字を差し込む形です。
そして、誤字脱字(タイポ)が混ざったときだけ強く反応する部分を探しました。見つかった部分には、論文が「typo neurons」「typo heads」という名前を付けています。
- ニューロン(LLMの中で数値を受け取って次へ渡す、小さな計算の単位。→『LLMの中でやっていることは2つだけ。語を数値の並びに変え、その並びを何十回も書き換えている』)は、反応の差が大きい上位0.5%を「typo neurons」として抜き出した
- Attentionヘッド(語と語が互いを見る仕組みの1単位。→『AttentionとTransformer』)は、注意の配り方の偏りの変化から「typo heads」を抜き出した
4つの発見のうち、いちばん大きいのは「専用ではない」ということ
論文が報告したのは4点です。原文を添えて並べます。
- 早い層か遅い層、どちらかのtypo neuronsが働けば、近くの文脈で誤字脱字を直せる(もう一方が働かなくても)
“LLMs can fix typos with local contexts when the typo neurons in either the early or late layers are activated, even if those in the other are not”
- 中間の層のtypo neuronsが、広い文脈を使った誤字脱字の修正の中核になっている
“Typo neurons in the middle layers are responsible for the core of typo-fixing with global contexts”
- typo headsは、特定のトークンに集中せず、文脈を広く見て誤字脱字を直している
“Typo heads fix typos by widely considering the context not focusing on specific tokens”
- typo neuronsとtypo headsは、誤字脱字の修正のためだけでなく、普段の文脈理解にも働いている
“Typo neurons and typo heads work not only for typo-fixing but also for understanding general contexts”
4番目が、いちばん大きい発見です。 「誤りを見つける係」がいて、その係が「正しい候補を探す係」に渡す——そういう作りにはなっていません。文脈を読むのに使っている部分が、誤字脱字のときにもそのまま働いている。
3番目も同じ方向を指しています。壊れた語の周辺をピンポイントで見張っているのではなく、文脈を広く見ている。 そして2番目が、近くだけで足りる場合と、広い文脈が要る場合が分かれることを示しています。
つまり、直しているというより、文脈から読んでいるということになります。
日本語の誤変換には、綴りの側に手がかりが残らない
ここで冒頭の区別に戻ります。上の研究が扱ったのは綴りが壊れる誤字脱字です。teh や「こにちは」には「こんな綴りの語は無い」という手がかりが、語そのものの中にあります。
誤変換には、それがありません。
「ファイルを返還してください」の「返還」は、正しい綴りで、正しいトークンに分かれ、正しい語として存在します。語だけを見ている限り、何一つ異常がない。 噛み合わないのは、周りの語との関係だけです。
だから、誤変換の回復は、誤字脱字の回復より文脈に強く頼ることになります。 上の論文の言い方に合わせると、「近くの文脈で足りる」ほうではなく、「広い文脈が要る」ほうの仕事です。ただし、この論文は誤変換を測っていません。 英語の綴りの壊れだけを扱っています。同音異義語の取り違えを同じ方法で調べた研究は、見つけられませんでした。
同音異義語の候補リストは、モデルの中に無い
「別の正しい同音異義語を探しに行っているのではないか」という筋書きは、自然に思い浮かびます。ただし、探しに行く先がありません。
このサイトで測った結果が、そこに関係します。『「犬」と「いぬ」は、別の語として扱われている——表記を変えるだけで、意味ベクトルは遠くなった』では、漢字とひらがなで書き分けるだけで、意味ベクトル(語の意味を数値の並びで表したもの)の近さが0.42まで落ちました。 同じ語を指しているのに、です。
表記が変われば、別の語になります。 ということは、「返還」と「変換」も、モデルの中では近い場所にありません。音が同じだから近い、という手当ては備わっていない。 「ごにゅうりょく」から「誤入力」と「御入力」を取り出せるような、読みから辿れる表がモデルの中に無いということです。
では何が起きているのか。 モデルは入力を書き直していません。「ファイルを返還してください」に続けて自然な語を生成しているだけです。その文脈で続けるなら、ファイルを変換した結果を返すのが自然になる。訂正という手順を踏まずに、結果として合ってしまう。
これは、モデルが誤変換に気づいたかどうかとは別の話です。指摘を頼めば指摘しますが、それは「モデルが気づいたから直した」の証拠にはなりません。同じ構図は『ChatGPTにジョークを1008回頼むと、9割が同じ25個だった』にも現れます——説明を要求されれば、説明の形をした文が生成される、という話です。
「気にしないで進んでいい」は使う人の体感としては合うが、測ると精度は落ちる
誤字脱字や変換ミスを気にせず進んでよい、という付き合い方は、使う人の側では実際うまくいく場面が多い。 ただし、測ると精度は落ちています。
11のモデルを8言語(日本語を含む)で調べた研究では、入力に手を加えた条件で、平均の成績が94.32から85.51へ、8.81ポイント下がりました(arXiv 2601.06341)。ここは範囲を限る必要があります——この条件は綴りの誤りだけでなく、空白・句読点・大文字小文字・言い換え・語調の変更をまとめた平均です。綴りだけを切り出した数字ではありません。
キーボードで生じる誤字脱字と語の置き換えに絞った研究もあります(Scientific Reports 2025)。6つのモデル(GPT-4o、Llama3.3 70B、Llama3.2 4B、Gemma3 20B、Gemma3 4B、Phi 3B)で、Amazonのレビュー4,920件とIMDbのレビュー3,000件を使った測定です。結論は、LLMは入力の乱れに敏感で、出力が変わる。 大きいモデルのほうが耐えるものの、どれも頑健とは言えないという評価でした。
体感と測定が食い違って見えるのは、条件が違うからだと考えられます。 日常の依頼文は言葉数が多く、前後の文が解釈を強く縛ります。上の論文が「近くの文脈で足りる場合」と「広い文脈が要る場合」を分けていたのは、まさにここです。文脈が薄い課題ほど、乱れがそのまま結果に残ります。
測っていないこと
この記事で答えられていないことを、先に書いておきます。
- 日本語の誤変換そのものを、内部から調べた研究は見つけられませんでした。 上の論文は英語の綴りの壊れを扱っています
- 「日常の依頼文では文脈が強いから直りやすい」は、この記事では測っていません。 論文が近い文脈と広い文脈を分けたことから筋は通りますが、日常のやり取りで測った数字ではありません
- どの程度の誤変換までなら大丈夫か、線を定められません。 8.81ポイントという数字も、綴りだけを切り出したものではありません
分かっているのはここまでです。 誤字脱字のときに強く反応しているのは、文脈を読むのと同じ部分だった。誤変換には綴りの側に手がかりが無いので、文脈だけが頼りになる。そして読みから辿れる同音異義語の表は、モデルの中に無い。