casel

ノート技術5

あなたの言語は、私の言語より多くのトークンを食うかもしれない

トークナイズはラテン文字に合わせて作られました。その代金を、それ以外の全員が待ち時間と文脈とお金で払っています。

トークナイズは、英語優先という前提が思想の話でなくなる場所です。 トークナイザーは、いちばん多く見たものをもとに文字列の切り方を学びます。ラテン文字寄りのコーパスで学べば、英単語には長くて効率のよい断片を、それ以外には短く割の悪い断片を覚えます。デーヴァナーガリー、タイ文字、ハングルなどは、同じ一文でもずっと多くのトークンに砕けます。

三つの帰結。どれも抽象論ではありません

  • 費用:課金はトークン単位なので、同じ要求でも言語によって高くつきます。
  • 文脈:固定長の文脈枠に入る中身が減り、長い文書ほど早く切り落とされます。
  • 待ち時間:生成するトークンが増えれば応答は遅くなります。もともと遅い回線でこそ、なおさら。

やっかいなのは、払っている本人にこれが見えないことです。「あなたの文字は考えるのに高くつきます」という明細は出てきません。ただ、なんとなく出来のよくない道具だと感じ、その理由は言えないままになります。

実際にできること

一部は私たちの手の内にあり、一部はありません。 フロンティアのモデルを訓練しているわけではないので、そのトークナイザーは書き換えられません。できるのは、問題をこれ以上悪くしないことです。プロンプトは利用者の言語で短く保ち、英語の足場で膨らませない。構造の単位で積極的にキャッシュし、同じレイアウトを毎回導出し直さない。モデルを使わなくて済む処理はコード側で片づける。

測ってもいます。対応する言語ごとにビルドあたりのトークン数と初回描画までの時間を記録し、平均ではなく、いちばん良い言語といちばん悪い言語の差を見ます。平均こそが、ロングテールを見えなくする仕組みだからです。

自分の言語で差がおかしいと感じたら、実際に打った文を送ってください。その報告はベンチマークより価値があります。実在の人がほんとうに書きたかった一文が、そのまま付いてくるからです。