トークナイゼーション とーくないぜーしょん
トークンサブワードBPE形態素解析自然言語処理テキスト前処理
トークナイゼーションについて教えて
簡単に言うとこんな感じ!
「文章をAIが理解できる小さな部品に分解する」処理だよ!例えば「ChatGPTはすごい」という文章を「Chat」「G」「PT」「は」「すごい」みたいに分割するんだ。料理で言えば「食材を下ごしらえする」工程。この分割の仕方でAIの性能が大きく変わるんだよ!
トークナイゼーションとは
トークナイゼーション(Tokenization) とは、テキスト(文字列)を トークン(Token) と呼ぶ小さな単位に分割する処理です。コンピューターは文字をそのままは扱えないため、テキストを数値(ベクトル)に変換する必要があり、その前準備として「どの単位に分割するか」を決めるのがトークナイゼーションです。
分割の単位は 文字・単語・サブワード・文 など様々です。現在の大規模言語モデル(GPTやBERTなど)では、単語よりも小さい サブワード単位 での分割が主流です。「Tokenization」なら「Token」「ization」のように、意味を持つ最小単位に近いレベルで分けます。これにより未知語(学習データに出てこなかった単語)への対応力が上がります。
ビジネス的に重要なのは、LLMの利用料金がトークン数で課金される 点です。OpenAIのAPIは「入力トークン数×単価」が課金基準です。日本語は英語と比べてトークン効率が低い(同じ文字数でも多くのトークンを使う)ため、長文を処理する場合はコスト計算に注意が必要です。
トークン分割の種類
主なトークナイザーの比較
| アルゴリズム | 仕組み | 採用モデル |
|---|---|---|
| BPE(Byte Pair Encoding) | 頻出文字ペアを繰り返しマージ | GPT-2/3/4、Llama |
| WordPiece | 語彙の可能性を最大化するよう分割 | BERT、RoBERTa |
| SentencePiece | 言語非依存のサブワード分割 | T5、mBERT、日本語モデル |
| 形態素解析(MeCab等) | 日本語の品詞・語幹で分割 | 日本語専用モデル |
歴史と背景
- 1986年 — Philip RissanenがMDL原理を提案。圧縮ベースのトークン化の基盤
- 2015年 — SennrichらがBPE(Byte Pair Encoding) を機械翻訳に適用して注目
- 2018年 — GoogleがSentencePiece をオープンソースで公開
- 2018年 — BERTでWordPiece トークナイザーが広く採用
- 2020年代 — LLMの普及でトークン数=コストという認識が一般に広まる
- 現在 — tiktoken(OpenAI製)など高速トークナイザーが標準ツールに
LLMのトークン数とコスト(目安)
| 日本語テキスト量 | 目安トークン数 |
|---|---|
| A4用紙1枚(約800字) | 約600〜1,000トークン |
| 10ページ資料 | 約6,000〜10,000トークン |
| 書籍1冊(約10万字) | 約75,000〜120,000トークン |
※日本語は英語の約1.5〜2倍のトークン数が必要になることが多い
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| Unicode Standard | 多言語文字コードの基盤規格 |
関連用語
- 自然言語処理(NLP) — テキストデータを扱う技術分野の総称
- 単語埋め込み — トークンを数値ベクトルに変換する技術
- BERT — WordPieceトークナイザーを使う言語理解モデル
- GPT — BPEトークナイザーを使う文章生成モデル
- 大規模言語モデル(LLM) — 大規模なテキスト生成AIモデル
- プロンプトエンジニアリング — LLMへの指示文を設計する技術
- Transformer — 現代NLPの基盤アーキテクチャ