токен
Базовая единица обработки текста в LLM — субстрока, которой соответствует числовой идентификатор в словаре модели.
Что такое токен
Токен — минимальная единица, которой оперирует языковая модель. Это не обязательно слово: токен может быть словом, частью слова, символом пунктуации или даже пробелом с буквой. Каждый токен представлен числовым идентификатором (token_id) в словаре модели.
import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
enc.encode("Hello, world!")
# → [9906, 11, 1917, 0] — 4 токена
enc.encode("cloudcompute")
# → [77662, 9085, 1088] — 3 токена
Как считаются токены
Стоимость API, скорость генерации и длина контекста — всё измеряется в токенах, а не в словах или символах:
- 1 токен ≈ 4 символа для английского
- 1 токен ≈ 1.5–2 символа для русского (кириллица занимает больше)
- 100 токенов ≈ 75 слов (английский)
- 1000 токенов ≈ ~750 слов (английский), ~500 слов (русский)
Токены ввода и вывода
При работе с LLM API стоимость обычно считается раздельно:
- Input tokens (prompt + history): обрабатываются за один prefill-проход
- Output tokens (генерируемый ответ): создаются последовательно, каждый токен = один forward pass
Output tokens обычно дороже, так как генерация последовательная.
Context window в токенах
Контекстное окно — максимальное число токенов, которые модель может обработать за раз (input + output). Llama 3 8B поддерживает 128K токенов ≈ ~96 000 слов ≈ ~350 страниц текста.
Связанные термины
- токенизация — процесс разбивки текста на токены
- токенизатор — реализует словарь токенов
- BPE — алгоритм построения словаря токенов
- контекстное окно — лимит токенов на запрос
Готовы запустить GPU-задачу?
Запустить GPU-сервер