Tokenization
トークン化が生のテキストや画像をAI対応データに変換する仕組みを解説します。Ultralytics YOLO26のようなモデルで使用されるNLPとコンピュータビジョンの手法を紹介します。
トークン化とは、テキスト、画像、音声などの生データのストリームを、トークンと呼ばれる、より小さく扱いやすい単位に分割するアルゴリズム的なプロセスです。この変換は、データ前処理パイプラインにおける重要な橋渡しの役割を果たし、非構造化入力を人工知能 (AI)システムが解釈できる数値形式に変換します。コンピューターは、人間の言語や視覚的なシーンを本質的に理解できないため、計算を実行するには数値表現が必要です。データをトークンに分割することで、エンジニアはニューラルネットワークがこれらの単位を埋め込み—意味的な意味を捉えるベクトル表現—に対応付けられるようにします。この基本的なステップがなければ、機械学習モデルはパターンを識別し、文脈を学習し、現代のトレーニングに必要な膨大なデータセットを処理できません。
トークン化とトークンの違い#
ディープラーニングの議論ではこれらの用語が一緒に使われることが多いですが、ワークフローを理解するには、方法と結果を区別すると役立ちます。
- **トークン化**はプロセス(動詞)です。データを分割するために使用される具体的なルールやアルゴリズムを指します。テキストの場合、NLTKやspaCyなどのライブラリを使用して、ある単位がどこで終わり、別の単位がどこから始まるかを判断します。
- **トークン**は出力(名詞)です。これは、単語1つ、サブワード、文字、ピクセルのパッチなど、プロセスによって生成される個々の単位です。
異なるドメインにおける手法#
トークン化の方法はデータのモダリティによって大きく異なり、基盤モデルが世界をどのように認識するかに影響します。
NLPにおけるテキストのトークン化#
自然言語処理 (NLP)では、意味を維持しながらテキストを分割することが目標です。初期の手法では、単語をスペースで区切ったり、ストップワードを削除したりする単純な技術に依存していました。しかし、現代の大規模言語モデル (LLMs)では、バイトペアエンコーディング (BPE)やWordPieceなど、より高度なサブワードアルゴリズムが使用されています。これらのアルゴリズムは、出現頻度が最も高い文字ペアを反復的に結合することで、モデルがまれな単語を、よく知られたサブコンポーネントに分割して処理できるようにします(例:「smartphones」は「smart」+「phones」になります)。この方法により、語彙サイズと複雑な言語を表現する能力のバランスが取れます。
コンピュータビジョンにおけるビジュアルトークン化#
従来、コンピュータビジョン (CV)モデルは、CNNなどを使用してスライディングウィンドウでピクセルを処理していました。ビジョントランスフォーマー (ViT)の登場により、画像にトークン化を適用することで、このパラダイムが変わりました。画像は固定サイズのパッチ(例:16x16ピクセル)に分割され、その後フラット化されて線形射影されます。これらの「ビジュアルトークン」により、モデルは自己注意メカニズムを利用して、Transformerが文を処理する方法と同様に、画像全体にわたるグローバルな関係を学習できます。
実世界での利用例#
トークン化は、現在の本番環境で使用されている多くのAIアプリケーションを支える、目立たないエンジンです。
-
オープンボキャブラリー物体検出: YOLO-Worldのような高度なアーキテクチャは、マルチモーダルモデルのアプローチを採用しています。ユーザーが「赤い帽子をかぶった人」のようなプロンプトを入力すると、システムはこのテキストをトークン化し、視覚データと同じ特徴空間に対応付けます。これによりゼロショット学習が可能になり、テキストトークンと視覚的特徴を照合することで、モデルが明示的にトレーニングされていない物体も検出できます。
-
生成アートとデザイン: テキストから画像への生成では、ユーザープロンプトをトークン化して拡散プロセスを誘導します。モデルはこれらのトークンを使用して生成を条件付け、トークン化の段階で抽出された意味概念(例:「夕焼け」、「ビーチ」)に生成画像が確実に沿うようにします。
Pythonの例: トークンベースの検出#
次の例では、ultralyticsパッケージがYOLO-Worldのワークフロー内でテキストのトークン化を暗黙的に利用する方法を示します。カスタムクラスを定義することで、モデルはこれらの文字列をトークン化し、特定の物体を動的に検索します。
from ultralytics import YOLO
# Load a pre-trained YOLO-World model capable of text-based detection
model = YOLO("yolov8s-world.pt")
# Define custom classes; these are tokenized internally to guide the model
# The model will look for visual features matching these text tokens
model.set_classes(["backpack", "bus"])
# Run prediction on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Show results (only detects the tokenized classes defined above)
results[0].show()モデルのパフォーマンスへの影響#
トークン化戦略の選択は、精度と計算効率に直接影響します。非効率的なトークン化は、NLPにおける「語彙外」エラーや、画像分析における細粒度の詳細の損失につながる可能性があります。PyTorchやTensorFlowなどのフレームワークは、このステップを最適化するための柔軟なツールを提供します。最先端のYOLO26など、アーキテクチャが進化する中で、効率的なデータ処理により、強力なクラウドGPUからエッジデバイスまで、多様なハードウェア上でモデルがリアルタイム推論を実行できるようになります。こうした複雑なデータワークフローを管理するチームは、データセットのアノテーション、モデルのトレーニング、デプロイを効率化するために、Ultralytics Platformに依存することがよくあります。









