1. トークンとは AIが言語を処理する単位
トークンとは、AIが文章を理解しやすくするために、テキストを細かく分割した単位のことです。人間が文章を単語や文節で認識するように、AIはテキストをトークンという単位で処理しています。
理由① 料金への影響
多くのAIサービスでは、処理するテキストの量、すなわち合計トークン数に応じて料金が設定されています。そのため、トークン数はコストに直接関係します。
理由② 扱える情報量
AIが一度に処理できる情報量(コンテキストウィンドウと呼ばれます)も、トークン数によって上限が定められています。この上限内で、より多くの情報を扱えます。
2. 分割の仕組み:主流は「サブワード」方式
テキストをトークンに分ける方法にはいくつか種類があります。かつては単語や文字単位での分割も試みられましたが、それぞれに課題がありました。現在では、単語の出現頻度に応じて柔軟に分割するサブワード方式が広く採用されています。
昔の方法
- 単語単位: 辞書にない言葉(未知語)に対応しにくい
- 文字単位: 文脈を捉えるために多くの処理が必要になる
現在の主流:サブワード
- よく使われる単語はそのまま1トークン(例: sky, apple, water)
- あまり使われない単語や長い単語は、意味のある部分に分割(例: token + ization)
3. 計算方法の違い AIサービスごとに独自方式
トークンの基本的な考え方は共通していますが、具体的な分割方法はAIサービスを提供する企業ごとに異なります。そのため、同じ文章でも利用するサービスによってトークン数が変わることがあります。
OpenAI (ChatGPTなど)
広く使われているTiktokenというライブラリを使用。英語の処理に最適化されていますが、多言語にも対応しています。
Google (Geminiなど)
多言語対応に優れたSentencePieceという方式を採用。特に日本語の扱いで効率的な分割が期待されます。
Anthropic (Claudeなど)
独自のトークナイザーを使用しており、特に長い文脈の処理能力に定評があります。他のサービスとは異なる分割がなされます。
4. 日本語の特性とトークン数
同じ内容を表現する場合でも、日本語は英語などの言語に比べてトークン数が多くなる傾向が見られます。これは「日本語のトークン問題」などと呼ばれることもあります。
理由① 単語の区切り
英語のように単語がスペースで区切られていないため、文のどこで区切るかの判断が複雑になり、結果として細かく分割されやすくなります。
理由② 文字種の多さ
ひらがな、カタカナ、そして多くの情報を含む漢字が混在しているため、一つの漢字が複数のトークンとして扱われることがあります。
5. まとめ
トークンは、AIが言語を処理するための基本的な単位です。
AIの利用料金や一度に扱える情報量は、このトークン数に基づいています。
日本語は他の言語よりトークン数が多くなる傾向があるため、この点を考慮することが大切です。
計算方法はサービス毎に異なるため、利用するAIの特性を理解することも重要です。