Token
トークンがAIにおける情報の基本単位として機能する仕組みを解説します。NLP、コンピュータビジョン、YOLO26によるオープンボキャブラリ検出における役割を紹介します。
現代の人工知能における高度なアーキテクチャでは、トークンはモデルが処理する情報の基本的かつ原子的な単位を表します。アルゴリズムが文を解釈したり、ソフトウェアスクリプトを分析したり、画像内の物体を認識したりする前に、生の入力データをこれらの個別の標準化された要素へ分解する必要があります。この分割はデータ前処理における重要なステップであり、構造化されていない入力を、ニューラルネットワークが効率的に計算できる数値形式へ変換します。人間は言語を連続した思考の流れとして、また画像を切れ目のない視覚的な場面として認識しますが、計算モデルがパターン認識や意味解析などの処理を実行するには、これらの細粒度の構成要素が必要です。
トークンとトークン化#
機械学習の仕組みを理解するには、データ単位と、それを作成するために使用されるプロセスを区別することが重要です。この区別により、データパイプラインを設計したり、Ultralytics Platformでトレーニング素材を準備したりする際の混乱を防げます。
- トークン化: これは、生のデータを複数の断片に分割するアルゴリズム処理(動詞)です。テキストの場合は、自然言語ツールキット (NLTK)のようなライブラリを使用して、ある単位の終わりと次の単位の始まりを特定することがあります。
- トークン: これは、処理の結果として得られる出力(名詞)です。最終的に埋め込みと呼ばれる数値ベクトルにマッピングされる、単語、サブワード、画像パッチなどの実際のデータチャンクです。
さまざまなAI領域におけるトークン#
トークンの性質は、処理対象のデータモダリティによって大きく異なり、特にテキスト領域と視覚領域では違いがあります。
NLPにおけるテキストトークン#
自然言語処理 (NLP)の分野では、トークンは大規模言語モデル (LLM)への入力です。初期のアプローチでは厳密に単語全体へマッピングしていましたが、現代のアーキテクチャではバイトペアエンコーディング (BPE)のようなサブワードアルゴリズムが利用されています。この手法により、モデルは単語を意味のある音節に分割して、語彙サイズと意味のカバレッジのバランスを取りながら、まれな単語にも対応できます。たとえば、"unhappiness"という単語は、"un"、"happi"、"ness"にトークン化されることがあります。
コンピュータビジョンにおけるビジュアルトークン#
トークン化の概念は、Vision Transformer (ViT)の登場によりコンピュータビジョンにも広がりました。ピクセルをスライディングウィンドウで処理する従来の畳み込みネットワークとは異なり、Transformerは画像を固定サイズのパッチ(例: 16x16ピクセル)のグリッドに分割します。各パッチはフラット化され、個別のビジュアルトークンとして扱われます。このアプローチにより、モデルはセルフアテンション機構を使用して、画像内の離れた部分同士の関係を理解できます。これは、Google Researchが当初Transformerをテキストに適用した方法に類似しています。
実世界での利用例#
トークンは、無数のアプリケーションにおいて、人間のデータと機械知能をつなぐ橋渡し役を果たします。
-
オープンボキャブラリー物体検出: YOLO-Worldのような高度なモデルは、テキストトークンが視覚的特徴と相互作用するマルチモーダルアプローチを使用します。ユーザーはカスタムテキストプロンプト(例: "blue helmet")を入力でき、モデルはそれをトークン化して画像内の物体と照合します。これによりゼロショット学習が可能になり、モデルが明示的にトレーニングされていない物体も検出できます。
-
生成AI: チャットボットなどのテキスト生成システムでは、AIはシーケンス内の次のトークンの確率を予測することで動作します。最も可能性の高い後続トークンを反復的に選択することで、システムは一貫性のある文や段落を構成し、自動カスタマーサポートからバーチャルアシスタントまで、さまざまなツールを支えます。
Pythonの例: 検出にテキストトークンを使用する#
次のコードスニペットでは、ultralyticsパッケージがテキストトークンを使用して物体検出をガイドする方法を示します。最先端のYOLO26は高速な固定クラス推論に推奨されますが、YOLO-Worldアーキテクチャでは、ユーザーが実行時にクラスをテキストトークンとして定義できます。
from ultralytics import YOLO
# Load a pre-trained YOLO-World model capable of understanding text tokens
model = YOLO("yolov8s-world.pt")
# Define specific classes; these text strings are tokenized internally
# The model will look specifically for these "tokens" in the visual data
model.set_classes(["bus", "backpack"])
# Run prediction on an image using the defined tokens
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results showing only the tokenized classes
results[0].show()トークンを理解することは、生成AIと高度な分析の領域を把握するうえで基本となります。チャットボットが流暢に会話できるようにしたり、ビジョンシステムが微妙に異なる物体クラスを識別できるようにしたりする場合でも、トークンはPyTorchやTensorFlowなどのフレームワークで使用される、機械知能に不可欠な通貨であり続けます。









