Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Token

Токен — это единица входных данных, которую обрабатывает модель, например часть слова или фрагмент изображения. Как токенизаторы делят текст, что такое визуальные токены и сколько они стоят.

Токен — базовая единица входных и выходных данных, которую обрабатывает модель ИИ: слово, часть слова, символ или байт в тексте либо фрагмент пикселей изображения. Прежде чем трансформер сможет прочитать предложение или изображение, токенизатор разбивает входные данные на токены и сопоставляет каждому целочисленный ID, а модель ищет соответствующий эмбеддинг. Количество токенов определяет и объём данных, с которым может работать модель, и стоимость обработки: контекстное окно измеряется в токенах, большие языковые модели (LLMs) генерируют текст по одному токену за раз, а коммерческие API взимают плату за входные и выходные токены.

  • Токенизация: процесс разбиения исходных данных на токены. Токен — одна единица результата этого процесса.
  • Словарь и ID токенов: словарь токенизатора — фиксированный набор известных ему токенов, каждому из которых назначен целочисленный ID. В BERT используется 30,522 токена, в GPT-2 — 50,257, в Llama 3 — 128,256, а в Gemma 3 — около 262,000.
  • Специальные токены: маркеры структуры последовательности, например токены начала и конца текста и заполнения, а также токен [CLS], итоговый эмбеддинг которого BERT использует для классификации.
  • Эмбеддинги: обучаемые векторы, которые первый слой модели получает по ID каждого токена и которые передают значение токена в сеть.

Текстовые токены#

Словарь, состоящий из целых слов, не может охватить все имена, опечатки и новые термины, а последовательности из отдельных символов становятся слишком длинными. Поэтому современные токенизаторы используют подслова: частые слова становятся отдельными токенами, а редкие разбиваются на повторно используемые части. Кодирование пар байтов (BPE), адаптированное Sennrich и коллегами для нейронного машинного перевода в 2016 году, начинает с отдельных символов и многократно объединяет самую частую соседнюю пару, пока словарь не достигнет нужного размера. Модели GPT применяют BPE к байтам, поэтому можно кодировать любой текст, в том числе код и эмодзи. WordPiece (используемый в BERT) и модель Unigram из SentencePiece — родственные методы разбиения на подслова. Токенизатор BPE из CLIP, загруженный отсюда, из Hugging Face Hub, показывает, как слова разбиваются на части:

from transformers import AutoTokenizer

# Load CLIP's byte-pair-encoding (BPE) tokenizer from the Hugging Face Hub
tokenizer = AutoTokenizer.from_pretrained("openai/clip-vit-base-patch32")

for text in ["bus", "double-decker bus", "unhappiness", "Ultralytics"]:
    tokens = tokenizer.tokenize(text)
    print(f"{text!r} -> {tokens} -> {tokenizer.convert_tokens_to_ids(tokens)}")

«bus» — это один токен с ID 2840, слово «unhappiness» разбивается на un и happiness, а редкое слово «Ultralytics» — на три части: ultr, aly и tics. Суффикс </w> обозначает конец слова в словаре CLIP из 49,408 токенов, а текстовый энкодер CLIP обрабатывает не более 77 токенов в запросе.

Визуальные токены#

Визуальный трансформер (ViT), представленный в статье An Image Is Worth 16x16 Words, разбивает изображение на патчи фиксированного размера — 16 × 16 пикселей в ViT-B/16 — и преобразует каждый патч в эмбеддинг. Поэтому изображение размером 224 × 224 превращается в 196 токенов. Позиционные эмбеддинги указывают, откуда взят каждый патч, а дополнительный токен класса собирает информацию для классификации. Обычно это преобразование реализуется с помощью свёртки, шаг которой равен размеру её ядра:

import torch

# ViT-B/16 patch embedding: a 16x16 convolution with stride 16 turns each patch into one 768-dim token
patch_embed = torch.nn.Conv2d(3, 768, kernel_size=16, stride=16)

for size in (224, 448):
    image = torch.rand(1, 3, size, size)
    tokens = patch_embed(image).flatten(2).transpose(1, 2)  # (batch, tokens, dims)
    print(f"{size}x{size} image -> {tuple(tokens.shape)}")

Изображение размером 224 × 224 даёт 196 токенов по 768 значений, а увеличение его сторон до 448 пикселей даёт 784 токена — в четыре раза больше. Самовнимание сравнивает каждый токен со всеми остальными, поэтому увеличение числа токенов вчетверо означает примерно шестнадцатикратный рост вычислительных затрат на внимание. Именно поэтому модели высокого разрешения используют внимание в окнах, как в Swin Transformer, или объединяют похожие токены с помощью слияния токенов.

Модели компьютерного зрения и языка передают визуальные токены из энкодера изображений в LLM вместе с текстовыми токенами. Так один трансформер обрабатывает оба типа токенов и выдаёт ответ по одному текстовому токену за раз:

Почему важно количество токенов#

  • Ограничения контекста: запрос, найденные документы или изображения и сгенерированный ответ должны помещаться в контекстное окно модели.
  • Стоимость и задержка: API отдельно оценивают входные и выходные токены, а время генерации увеличивается с количеством выходных токенов, поскольку для декодирования каждого токена нужен отдельный шаг, считывающий KV-кэш модели.
  • Языки и форматы: токенизаторы, обученные преимущественно на английском языке, разбивают другие языки, код и длинные числа на большее количество токенов на слово. Поэтому обработка того же содержимого стоит дороже и быстрее заполняет контекстное окно.
  • Задачи на уровне символов: модель видит подсловные токены, поэтому ей сложнее, чем кажется, выполнять задачи, зависящие от отдельных букв, например считать буквы в слове или переставлять их в обратном порядке.

Примеры применения в реальных условиях#

  • Генерация текста: LLM присваивает вероятность каждому токену своего словаря, выбирает один из них, добавляет его в последовательность и повторяет процесс. Методы выборки, например ядерная выборка, помогают выбирать из наиболее вероятных токенов.
  • Генерация изображений: авторегрессионные модели изображений предсказывают дискретные визуальные токены из обучаемого кодбука, созданного с помощью векторного квантования, так же, как LLM предсказывает слова.
  • Детекция с открытым словарём: YOLOE-26 — версия YOLOE Университета Цинхуа на основе YOLO26 в пакете Ultralytics — находит объекты по названиям классов, введённым текстом. Метод set_classes() токенизирует каждое название с помощью токенизатора BPE из CLIP, текстовый энкодер MobileCLIP2 от Apple преобразует токены в эмбеддинг, а модель сопоставляет эти эмбеддинги с областями изображения. Поэтому она может обнаружить по одному лишь текстовому описанию «двухэтажный автобус» — класс, которого нет в наборе данных COCO.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения