AI大模型“中文税”:为什么中文比英文更费Token?

作者:汤一涛、出典:极客公园

Opus 4.7 がリリースされた数日間、X(旧Twitter)上では不満の声が絶えなかった。誰かは一度の対話でセッションの上限を使い果たしたと言い、誰かは同じコードの実行コストが先週の倍以上になったと語り、また別の人は200ドルのMaxサブスクリプションで2時間も経たずに上限に達したスクリーンショットを晒した。

独立系開発者のBridgeMindは、Claudeは世界最高のモデルだと認めつつも、同時に最も高価なモデルでもあると述べた。彼のMaxサブスクリプションは2時間も経たずに上限に達したが、幸いなことに—彼は2つ購入していた。|画像出典:X@bridgemindai

Anthropicの公式価格は変わらず、入力トークン100万あたり5ドル、出力は25ドルのままだ。しかしこのバージョンでは新しいトークナイザーが導入され、Claude Codeはデフォルトのeffortをhighからxhighに引き上げた。これら二つの変更の結果、同じ作業に必要なトークン数は従来の2倍から2.7倍に増加した。

これらの議論の中で、私が見かけた中国語に関する二つの見解がある。一つは:新しいトークナイザー下では中国語はほとんど値上がりしておらず、中国語ユーザーはこの値上げを免れたというもの。もう一つは、より面白い:古文は現代漢語よりも少ないトークンで済むため、文言文でAIと対話すればコストを節約できるというものだ。

最初の見解は、Claudeが中国語に何らかの最適化を施したことを示唆しているようだが、Anthropicのリリースドキュメントには中国語に関する調整についての記述は見当たらない。

二つ目の見解は、説明が難しい。古文は明らかに現代漢語よりも理解しづらいはずだ。人間にとって複雑な文章が、AIにとってはより容易だというのはどういうことだろうか?

そこで私は実験を行った。平行テキスト22段(ビジネスニュース、技術文書、古文、日常会話など多様な内容を含む)を用意し、5つのトークナイザー(Claude 4.6、4.7、GPT-4o、Qwen 3.6、DeepSeek-V3)に同時に入力し、それぞれのモデルでのトークン数を計測し横比較した。

【テスト用テキスト例】

  1. 日常会話(英語・中国語:旅行、フォーラムの質問、執筆依頼)
  2. 技術文書(英語・中国語:Pythonドキュメント、Anthropicの資料)
  3. ニュース(英語・中国語:NYTの政治・経済ニュース、Appleの公式声明)
  4. 文学断章(英語・古漢語:出師表・道徳経)

結果、二つの見解の一部は検証されたが、実情は噂よりも複雑だった。

一、中国語の税金

結論から先に述べると:

  1. ClaudeとGPTでは、常に中国語のコストが英語より高い
  2. QwenとDeepSeekでは逆に中国語の方が安い
  3. Opus 4.7のトークナイザーアップグレードによるインフレは、ほぼ英語だけに起きており、中国語はほとんど変化なし

具体的な数字を見ると、Claudeの全モデル(Opus 4.6、Sonnet、Haikuを含む)は同一のトークナイザーを使用している。このトークナイザー下では、中国語のトークン消費は英語と比べて常に高く、cn/en比は1.11倍から1.64倍の範囲だった。

最も極端な例はNYTスタイルのビジネスニュース。内容は同じでも、中国語版はトークン消費が64%多く、料金も同じ比率で高くなる。

【図示】
Opus 4.6以前のClaudeモデル(赤枠)では、中国語のトークン消費が他モデルより顕著に高い(例:NYT風のビジネスニュース、緑枠)。
GPT-4oのo200kトークナイザーは改善されており、cn/en比はほとんど1.0〜1.35倍、場合によっては1未満もある。全体的に中国語は高価だが、Claudeより差は小さい。

一方、国内モデルのQwen 3.6とDeepSeek-V3は逆の傾向を示す。cn/en比は多くのケースで1未満、つまり同じ内容でも中国語版の方がトークン数少なく済む。DeepSeekは最低0.65倍まで下がり、同じ文章の中国語版は英語版の3分の1のコストに

Opus 4.7の新トークナイザーによるインフレは、ほぼ英語だけに限定されている。英語のトークン数は1.24倍〜1.63倍に膨らむ一方、中国語はほぼ変わらず1.000倍付近を維持。これにより、英語の開発者の請求書は揺れたが、中国語ユーザーは実感していない可能性が高い。理由は、旧版では中国語が既に単字レベルに切り分けられていたため、拡張の余地が少なかったからだ。


Opus 4.7と4.6を比較すると、英語のトークン消費は増加したが、中国語はほぼ変わらず。

また、私が気づいたのは、トークン消費の差は請求だけにとどまらず、作業空間の大きさにも直結することだ。同じ200kのコンテキストウィンドウを使っても、旧Claudeのトークナイザーでは中国語資料を詰め込める量は英語の40〜70%にとどまる。

同じ作業、例えば長文分析や会議記録の要約などでは、中国語の資料が少なくなり、モデルが参照できるコンテキストも短くなる。結果的に、より多くのコストを払っても、得られる作業空間は狭まる。

これらのデータを総合すると、次の疑問が浮かび上がる。

なぜ同じ内容でも言語を変えるとトークン数が変わるのか?なぜClaudeとGPTの中国語は高く、QwenとDeepSeekの中国語は安いのか?

答えは、上記で何度も触れた「トークナイザー(分詞器)」の概念に隠されている。

二、一つの漢字は何ブロックに分割されるのか?

モデルは文字を読む前に、トークナイザーを通じて入力を一つ一つのトークンに分割する。これを「積み木切り分け機」と想像してほしい。入力文を渡すと、それを標準化された積み木(トークン)に分解する役割を持つ。AIモデルは文字そのものを認識せず、積み木の番号だけを見ている。使った積み木の数に応じて料金が決まる。

英語の場合は直感的だ。例えば「intelligence」はほぼ一つのトークン、「information」も一つのトークン。単語ごとに課金単位が決まる。

しかし中国語になると話は変わる。同じ文章「人工智能正在重塑全球的信息基础设施」を、GPT-4のcl100kトークナイザーとQwen 2.5のトークナイザーに通すと、結果は全く異なる。

GPT-4はほぼすべての漢字を一つのトークンに分割する。一方、Qwenは語句を一つのトークンとして認識し、「人工智能」などの熟語は一つのトークンにまとめる。

【例】
同じ16文字の文章をトークナイズすると、GPT-4は19トークン、Qwenは6トークンに分割される。

なぜこうなるのか?その理由はBPE(Byte Pair Encoding)というアルゴリズムにある。

BPEは、訓練コーパス内で頻繁に出現する文字の組み合わせを統計的に抽出し、それらを高頻度の組み合わせとしてマージし、辞書に登録していく方式だ。

GPT-2時代の訓練コーパスは英語が圧倒的に多く、thやing、tionといった文字列は頻繁に出現し、すぐに一つのトークンに統合された。一方、中国語の文字は出現頻度が低いため、辞書に登録されず、UTF-8のバイト列のまま処理される。漢字一文字は3バイトなので、3つのバイトが3つのトークンになる。

【図示】
訓練コーパス内の文字頻度に基づき、英語は高頻度の文字列が合併されやすい。中国語のUTF-8バイトは合併されず、1文字ごとに分割される。

後にGPT-4のcl100kの語彙表は拡張され、常用漢字が辞書に入り、1文字あたり1〜2トークンに縮小されたが、英語に比べて効率は劣るままだった。

GPT-4oのo200k語彙表では、中国語の効率はさらに向上し、最適化が進んだ。これが、最初のデータでGPT-4oのcn/en比がClaudeより低い理由だ。

QwenやDeepSeekは、最初から多くの漢字や高頻度語を一つの単語・一つのトークンとして登録しているため、1文字=1トークンの効率を実現している。結果、cn/en比は1未満となり、同じ内容でも中国語の方がトークン数が少なく済む。

【図示】
異なるトークナイザーによる分割例。
これにより、中国語の情報密度は英語より高いため、トークナイザーが漢字を分割しないと、自然と効率が良くなる。

この差異の根源は、モデルの能力ではなく、トークナイザーの辞書に中国語の語彙がどれだけ含まれているかにある。

Claudeや初期のGPTは英語を基準に作られ、中国語は後付けだった。一方、QwenやDeepSeekは最初から中国語を想定して設計されている。この違いが、トークン数や請求額、コンテキストの大きさに影響している。

三、古文は本当に安いのか?

次に、二つ目の噂:古文は現代漢語よりも少ないトークンで済む

データはこれを裏付けている。テスト結果、古文のcn/en比は全て1未満で、すべてのトークナイザーで一致した。同じ内容の古文版は、英訳よりもトークン数が少ない。

【理由】
古文は非常に凝縮された表現を用いる。例:「学而不思則罔,思而不学則殆」—12文字。現代漢語に訳すと、「ただ学ぶだけでは迷う、思うだけでは危うい」となるが、字数は倍以上になり、トークンも増える。

また、古文の常用漢字(之、也、者、而、不)は高頻度の文字であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は高い。

しかし、ここに落とし穴もある。

古文のトークン節約はエンコード側の話であり、推論の負担は軽減されていない
「罔」一字の意味は、「迷惑」「被蒙蔽」「ない」など多義だ。現代漢語では26文字で表現できる意味も、古文では一文字に圧縮されているため、モデルは文脈から判断しなければならない。古文は圧縮された分、推論のコストはむしろ増加し、理解の正確さも下がる可能性がある。

この例から、トークン数だけでは全てを語れないことを痛感した。さらに深掘りすると、見落としていたポイントがある。

前述の通り、GPT-2のトークナイザーは「人」一文字を3バイトのUTF-8トークンに分割していたが、GPT-4の語彙表拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうだろうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。例えば、「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-2のトークナイザーは「人」一文字を3バイトのバイト列に分割していたが、GPT-4の語彙拡張により、常用漢字は1文字=1トークンに縮小された。Qwenはさらに進化し、「人工智能」4文字を一つのトークンにまとめている。

直感的には、合併すればするほど効率は良くなるはずだ。理解も深まるだろう。

しかし、実際はどうか?
漢字は表意文字であり、80%以上は形声字だ。偏旁と部首の組み合わせで意味を伝える。
例:「氵」偏は液体、「木」偏は植物、「火」偏は熱を示す。偏旁は人類の識字の最も基本的な意味手掛かりであり、「焱」のような複合漢字も、偏旁から意味を推測できる。

人はまず構造から意味範疇を推測し、次に文脈から具体的な意味を理解する。

【例】
「焱」「炎」「灼」—いずれも火に関する漢字。
「焱」は三つの火を重ねた字で、意味は「燃え盛る火」だが、字数は多い。
翻訳すると、「燃え盛る火」→「激しい火」などに意訳できるが、字数は増え、トークンも増える。

また、古文の常用字(之、也、者、而、不)は高頻度であり、どのトークナイザーでも独立したトークンとして登録されているため、エンコード効率は良い。

【ポイント】
古文のトークン節約はエンコード側の話であり、モデルの推論負担は軽減されていない。
例:「罔」一字の意味は多義であり、モデルは文脈から判断しなければならない。
古文は圧縮された分、推論コストはむしろ増加し、理解の正確さも低下する可能性がある。

このことから、トークン数だけでは全てを語れないと気づいた。
さらに深く考えると、もう一つ重要なポイントがある。

上記の通り、GPT-

このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし