AI・機械学習
中級

Tiktoken(OpenAIトークナイザー)(ティックトークンオープンエーアイトークナイザー)

OpenAIが開発・公開したByte Pair Encodingベースのトークナイザーライブラリ。Rustで実装された高速な実行性能が特徴で、GPT-3.5/4/4o・Llama-3で採用されている。cl100k_base(100,256 vocab)とo200k_base(200,019 vocab)の2種類が主要バリアント。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
tokenization
tiktoken
openai
bpe
rust
gpt-4

Tiktoken(OpenAIトークナイザー)

TiktokenはOpenAIが2023年にオープンソース公開したBPEトークナイザーライブラリ(github.com/openai/tiktoken)。RustでBPEアルゴリズムを実装し、Pythonバインディングを通じて高速なトークン化を提供する。GPT-3.5/4/4o系モデルのトークナイザーとして使用されており、APIコスト事前計算のデファクトスタンダードツールとしても広く普及している。

主要エンコーディングバリアント

エンコーディングvocab size使用モデル特徴
r50k_base50,257GPT-2, GPT-3 初期レガシー
p50k_base50,281Codex系コード向け
cl100k_base100,256GPT-3.5, GPT-4, GPT-4o多言語強化
o200k_base200,019GPT-4o(新版), o1, o3最大語彙

cl100k_baseはr50k_base比でCJK(中日韓)文字・多言語テキストのトークン効率が大幅に向上。日本語テキストをr50k_baseの約1/3のトークン数で表現できる。

Python APIの使い方

import tiktoken

# GPT-4用エンコーダー取得
enc = tiktoken.get_encoding("cl100k_base")
# または推奨: モデル名から自動選択
enc = tiktoken.encoding_for_model("gpt-4o")

# トークナイズ
text = "東京の自作PCショップを探しています"
tokens = enc.encode(text)
print(f"トークン数: {len(tokens)}")
print(f"デコード: {enc.decode(tokens)}")  # 原文復元

# バッチ処理
batch_texts = ["text1", "text2", "text3"]
batch_tokens = enc.encode_batch(batch_texts)  # 並列処理

APIコスト管理への応用

OpenAI APIはトークン単位で課金されるため、送信前のトークンカウントはコスト管理の要。tiktokenを使ってAPIコールの前にトークン数を計算し、コンテキスト長制限の確認や料金見積もりが可能。GPT-4oの料金は入力$5/1Mトークン、出力$15/1Mトークン(2025年時点)で、長い会話履歴を送る前にトークンカウントで制御するのが実務的なコスト管理方法だ。

Llama-3とのtiktoken互換

Meta LLaMA-3はtiktoken形式のトークナイザー(o200k_baseベース)を採用し、llama-2のSentencePieceから切り替えた。これによりLLaMA-3のトークン化はOpenAI系モデルと高い互換性を持ち、tiktoken経由でLLaMA-3のトークン数を正確に計算できる。

Rustによる高速実装

tiktokenのRustコアはPure Pythonの前身実装と比較して約6倍の速度向上を実現。100万トークンのエンコードが数秒で完了し、大量テキストの事前処理パイプラインでボトルネックにならない設計になっている。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/6