Token
トークンがAIにおける基本的な情報単位として機能する仕組みを学びます。NLP、コンピュータビジョン、そしてYOLO26を用いたオープンボキャブラリー検出におけるトークンの役割を探りましょう。
近代的な人工知能の洗練されたアーキテクチャにおいて、トークンはモデルが処理する情報の基本的かつアトミックな単位を表します。アルゴリズムが文章を解釈したり、ソフトウェアのスクリプトを分析したり、画像内のオブジェクトを認識したりする前に、生入力データはこれらの離散的で標準化された要素に分解される必要があります。このセグメンテーションはデータ前処理における極めて重要なステップであり、非構造化入力をニューラルネットワークが効率的に計算できる数値形式に変換します。人間は言語を思考の連続的な流れとして、あるいは画像をシームレスな視覚的シーンとして認識しますが、計算モデルがパターン認識や意味解析などの処理を実行するには、これらのかみ砕かれた構成要素が必要です。
トークンとトークン化#
機械学習のメカニズムを把握するためには、データ単位とそれを生成するために使用されるプロセスの違いを区別することが不可欠です。この区別により、データパイプラインを設計し、Ultralytics Platform上でトレーニング素材を準備する際の混乱を防ぐことができます。
- トークン化: これは、生データを複数の断片に分割するアルゴリズムプロセス(動詞)です。テキストの場合、これはNatural Language Toolkit (NLTK)のようなライブラリを使用して、1つの単位がどこで終わり、次の単位がどこから始まるかを決定することを含みます。
- トークン: これは結果として得られる出力(名詞)です。これは、最終的に埋め込みとして知られる数値ベクトルにマッピングされる、単語、サブワード、画像パッチなどの実際のデータのかたまりです。
異なるAI領域におけるトークン#
トークンの性質は、処理されるデータのモダリティ、特にテキスト領域と視覚領域の間で大幅に異なります。
NLPにおけるテキストトークン#
自然言語処理 (NLP)の分野では、トークンは大規模言語モデル (LLMs)への入力となります。初期のアプローチでは完全な単語に厳密にマッピングしていましたが、現代のアーキテクチャではByte Pair Encoding (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などのフレームワークで使用される機械知能の不可欠な通貨であり続けます。






