トークンとは?LLMのテキスト処理の基本単位を理解する

LLMのトークンとは?トークナイザーの仕組みとAPI料金の考え方

AIを知りたい

先生、LLMの料金で「トークン」っていう単位が出てくるんですが、文字数とは違うんですか?

AIエンジニア

いい質問だね。トークンは、LLMがテキストを処理する際の最小単位なんだ。英語では1トークンがだいたい0.75単語に相当するけど、日本語では1文字が1〜3トークンになることが多い。だから日本語はAPI料金が英語より高くなりがちなんだよ。

AIを知りたい

えっ、日本語だと割高になるんですか?なぜそうなるんですか?

AIエンジニア

トークナイザーという変換ツールが、テキストをトークンに分割するんだけど、多くのトークナイザーは英語中心で設計されているからね。「人工知能」は英語で「AI」の1トークンだけど、日本語では3〜4トークンになることがある。ただ、GPT-4oのトークナイザーは日本語の効率が大幅に改善されているよ。

トークンとは。

人工知能に関わる言葉である「トークン」について説明します。大規模言語モデル(LLM)がテキストを処理する際の最小単位で、単語・サブワード・文字などに分割されたテキストの断片です。API利用料金の課金単位としても使われ、入力・出力のトークン数に応じて料金が計算されます。

トークンとは

トークンは、LLMがテキストを処理する際の最小単位です。人間は文章を「文字」や「単語」で認識しますが、LLMは「トークン」という独自の単位でテキストを処理します。トークンは単語そのものではなく、単語、単語の一部(サブワード)、句読点、空白などに分割されたテキストの断片です。

例えば、英語の「tokenization」は「token」と「ization」の2トークンに分割されることがあります。一般的に、英語では1トークン≒0.75単語(4文字)に相当します。1,000トークンは約750英単語です。

日本語は英語と比べてトークン効率が低く、1文字が1〜3トークンに対応することが多いです。特にGPT-3.5以前のトークナイザーでは、日本語の処理効率が非常に低く、同じ内容を伝えるのに英語の2〜3倍のトークンが必要でした。GPT-4oではトークナイザーが改善され、日本語のトークン効率が大幅に向上しています。

トークナイザーの仕組み

トークナイザー(Tokenizer)は、テキストをトークンに変換するプログラムです。主要なトークナイゼーションアルゴリズムにはいくつかの種類があります。

BPE(Byte Pair Encoding)は、GPTシリーズで使われている手法です。最も頻出する文字ペアを順次統合していくことで、頻度の高い単語は1トークンで表現し、珍しい単語は複数のサブワードに分割します。これにより、未知の単語にも対応できます。

WordPieceは、BERTで使われている手法で、BPEと似ていますが統合の基準が異なります。尤度(もっともらしさ)を最大化するようにペアを選択します。

SentencePieceは、言語に依存しないトークナイザーで、空白を特別扱いしません。日本語のように単語間に空白がない言語にも適しており、LlamaやT5で採用されています。

アルゴリズム 使用モデル 特徴
BPE GPTシリーズ 頻出ペアを統合、サブワード分割
WordPiece BERT 尤度ベースの統合
SentencePiece Llama, T5 言語非依存、空白を特別扱いしない
tiktoken GPT-4o OpenAI独自、高速BPE実装

API料金とトークン数の計算

LLMのAPI利用料金は、入力トークン数と出力トークン数に基づいて計算されます。多くのAPIでは出力トークンの方が入力トークンより高額に設定されています。

例えば、GPT-4oの料金は入力$5/100万トークン、出力$15/100万トークンです。1回の質問で入力1,000トークン、出力500トークンを使った場合、コストは約$0.0125(約1.9円)です。日本語の場合はトークン効率が低いため、同じ文字数でも英語より20〜50%ほど高くなる傾向があります。

コスト最適化のためには、プロンプトの簡潔化、システムプロンプトの共通化、キャッシュの活用、適切なモデルの選択(簡単なタスクにはGPT-4o-miniを使うなど)が重要です。

モデル 入力料金/1Mトークン 出力料金/1Mトークン
GPT-4o $5.00 $15.00
GPT-4o-mini $0.15 $0.60
Claude 3.5 Sonnet $3.00 $15.00
Gemini 1.5 Pro $3.50 $10.50

コンテキストウィンドウとの関係

コンテキストウィンドウは、LLMが一度に処理できるトークンの最大量です。入力プロンプト+出力の合計がこの制限を超えることはできません。

GPT-4oは128Kトークン、Claude 3.5 Sonnetは200Kトークン、Gemini 1.5 Proは200万トークンのコンテキストウィンドウを持っています。日本語の場合、128Kトークンは約6〜8万文字に相当し、書籍1冊分程度のテキストを一度に処理できます。

コンテキストウィンドウの制限を超える長文を処理する場合は、テキストをチャンクに分割して処理するか、RAG(検索拡張生成)を使って必要な部分のみを入力する工夫が必要です。

まとめ

トークンは、LLMのテキスト処理とAPI料金の基本単位です。トークナイザーの種類によってトークン分割の結果が異なり、特に日本語はトークン効率が低い傾向があります。API利用コストの見積もりやプロンプトの最適化のために、トークンの概念を理解しておくことは、LLMを活用する上で重要な基礎知識です。

項目 説明
定義 LLMのテキスト処理の最小単位
英語の目安 1トークン≒0.75単語(4文字)
日本語の目安 1文字≒1〜3トークン
主要アルゴリズム BPE, WordPiece, SentencePiece
API料金 入力・出力トークン数に基づく従量課金

関連記事