Tokenization
トークン化が未処理のテキストや画像をAI対応データへ変換する仕組みを探ります。Ultralytics YOLO26のようなモデルで使用されるNLPやコンピュータビジョンの手法について学びましょう。
トークン化(Tokenization)とは、テキスト、画像、音声などの生データのストリームを、トークンと呼ばれる小さく管理しやすい単位に分解するアルゴリズムのプロセスです。この変換は、data preprocessingパイプラインにおいて重要な架け橋として機能し、構造化されていない入力を、artificial intelligence (AI)システムが解釈できる数値形式に変換します。コンピュータは本来、人間の言語や視覚的なシーンを理解することができないため、計算を実行するために数値表現を必要とします。データをトークンに分割することで、エンジニアはneural networksがこれらの単位を、意味的意味を捉えるベクトル表現であるembeddingsにマッピングできるようになります。この基礎的なステップがなければ、machine learningモデルはパターンを特定したり、文脈を学習したり、現代のトレーニングに必要な膨大なdatasetsを処理したりすることができなくなります。
トークン化とトークンの違い#
deep learningの議論では、これらの用語が一緒に聞かれることがよくありますが、ワークフローを理解するためには、手法と結果を区別すると役立ちます。
- **Tokenization**はプロセス(動詞)です。これは、データを分割するために使用される特定のルールまたはアルゴリズムのセットを指します。テキストの場合、これはNLTKやspaCyなどのライブラリを使用して、ある単位が終わり、別の単位が始まるところを決定することを含みます。
- **Token**は出力(名詞)です。これは、単一の単語、サブワード、文字、ピクセルのパッチなど、プロセスによって生成される個々の単位です。
各ドメインにおける手法#
トークン化の戦略は、データのモダリティによって大きく異なり、foundation modelが世界をどのように認識するかに影響を与えます。
NLPにおけるテキストのトークン化#
Natural Language Processing (NLP)では、意味を維持しながらテキストをセグメント化することが目標です。初期の手法は、スペースで単語を区切ったり、stop wordsを削除したりするような単純な技術に依存していました。しかし、現代のLarge Language Models (LLMs)は、Byte Pair Encoding (BPE)やWordPieceなどの、より洗練されたサブワードアルゴリズムを利用しています。これらのアルゴリズムは、最も頻度の高い文字のペアを反復的にマージし、モデルがまれな単語をよく知られたサブコンポーネントに分解できるようにします(例:「smartphones」は「smart」+「phones」になります)。このアプローチは、語彙のサイズと、複雑な言語を表現する能力のバランスを取ります。
コンピュータビジョンにおける視覚的トークン化#
従来、CNNのようなcomputer vision (CV)モデルは、スライディングウィンドウを使用してピクセルを処理していました。Vision Transformer (ViT)の導入により、画像にトークン化を適用することで、このパラダイムが変化しました。画像は固定サイズのパッチ(例:16x16ピクセル)にスライスされ、それらが平坦化されて線形射影されます。これらの「ビジュアルトークン」により、モデルはTransformerが文を処理する方法と同様に、self-attentionメカニズムを利用して画像全体のグローバルな関係を学習することができます。
実社会での応用#
トークン化は、今日のプロダクション環境で使用されている多くのAIアプリケーションを支える目に見えないエンジンです。
-
オープンボキャブラリー物体検出:YOLO-Worldのような高度なアーキテクチャは、multi-modal modelアプローチを採用しています。ユーザーが「赤い帽子をかぶった人」のようなプロンプトを入力すると、システムはこのテキストをトークン化し、視覚データと同じ特徴空間にマッピングします。これにより、zero-shot learningが可能になり、テキストトークンを視覚的特徴に一致させることで、明示的にトレーニングされていないオブジェクトをモデルが検出できるようになります。
-
生成アートとデザイン:text-to-image生成では、拡散プロセスをガイドするためにユーザープロンプトがトークン化されます。モデルはこれらのトークンを使用して生成を条件付けし、結果の画像がトークン化フェーズで抽出された意味的概念(例:「夕日」、「ビーチ」)と一致するようにします。
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()モデルパフォーマンスへの影響#
トークン化戦略の選択は、accuracyと計算効率に直接影響します。非効率なトークン化は、NLPでの「語彙外」エラーや、画像分析における細かい詳細の損失につながる可能性があります。PyTorchやTensorFlowなどのフレームワークは、このステップを最適化するための柔軟なツールを提供します。最先端のYOLO26などのアーキテクチャが進化するにつれて、効率的なデータ処理により、強力なクラウドGPUからエッジデバイスまで、さまざまなハードウェアでモデルがreal-time inferenceを実行できるようになります。これらの複雑なデータワークフローを管理するチームは、データセットのアノテーション、model training、デプロイを効率化するためにUltralytics Platformを頻繁に利用しています。






