Токены в языковых моделях: что это и как с ними работать
Токены – фундаментальная единица обработки информации в языковых моделях. Понимание токенизации критично для эффективного использования AI: это влияет на стоимость запросов, лимиты контекста и качество промптов. Разберемся, что такое токены и как оптимизировать работу с ними.
Что такое токены
Токен – это базовая единица текста, которую обрабатывает языковая модель. Это не всегда слово – токеном может быть часть слова, целое слово или символ. Языковые модели не работают напрямую с текстом; они конвертируют текст в последовательность токенов перед обработкой1.
Представьте токены как "атомы" языка для AI. Так же как мы разбиваем речь на слова для понимания, модель разбивает текст на токены для обработки. Процесс преобразования текста в токены называется токенизацией.
Примеры токенизации
| Текст | Токены | Количество токенов |
|---|---|---|
| "Hello world" | ["Hello", " world"] | 2 |
| "ChatGPT is amazing" | ["Chat", "GPT", " is", " amazing"] | 4 |
| "Искусственный интеллект" | ["Иск", "усствен", "ный", " интелл", "ект"] | 5 |
| "2024" | ["202", "4"] | 2 |
Как работает токенизация
Современные языковые модели используют алгоритмы subword tokenization, наиболее популярные – Byte Pair Encoding (BPE) и SentencePiece2. Эти методы балансируют между эффективностью и гибкостью.
Принципы токенизации
- Частотность: Распространенные слова становятся отдельными токенами, редкие разбиваются на части
- Языковая специфика: Английский текст обычно более эффективно токенизируется, чем русский или китайский
- Специальные символы: Пробелы, знаки пунктуации, эмодзи обрабатываются особым образом
- Числа и код: Могут разбиваться непредсказуемо, особенно длинные числа
Почему не используются просто слова
Разбиение на слова кажется интуитивным, но имеет серьезные ограничения:
- Огромный словарь (миллионы слов) сделал бы модель неэффективной
- Невозможность обработки новых слов (out-of-vocabulary problem)
- Плохая работа с морфологически богатыми языками
- Проблемы с опечатками и вариациями написания
Subword токенизация решает эти проблемы, используя словарь из 50,000-100,000 токенов, покрывающий практически любой текст.
Различия токенизации между моделями
Разные модели используют разные токенизаторы, что приводит к различиям в подсчете токенов для одного и того же текста.
| Модель | Токенизатор | Размер словаря | Особенности |
|---|---|---|---|
| GPT-4/5 | cl100k_base | ~100K токенов | Эффективен для английского, улучшенная поддержка кода |
| Claude | Собственный | ~100K токенов | Оптимизирован для безопасности и понимания контекста |
| Gemini | SentencePiece | ~256K токенов | Расширенный словарь, лучше для мультиязычности |
Практический пример различий
Текст: "Искусственный интеллект трансформирует индустрию"
- GPT токенизатор: ~8-10 токенов (русский менее эффективен)
- Gemini токенизатор: ~6-8 токенов (лучше для русского)
- Английский эквивалент: ~6 токенов (любой токенизатор)
Почему токены важны: три ключевые причины
1. Стоимость использования
Ценообразование API языковых моделей основано на токенах. Вы платите отдельно за input tokens (ваш запрос) и output tokens (ответ модели)3.
| Модель | Input (за 1M токенов) | Output (за 1M токенов) |
|---|---|---|
| GPT-5 | $5 | $15 |
| GPT-4.1 | $2.50 | $10 |
| Claude 4.5 Sonnet | $3 | $15 |
| Claude 4.5 Haiku | $0.25 | $1.25 |
| Gemini 2.5 Flash | $0.15 | $0.60 |
Пример расчета: Промпт на 500 токенов + ответ на 1500 токенов в GPT-5 = (500 × $5 / 1M) + (1500 × $15 / 1M) = $0.0025 + $0.0225 = $0.025 за запрос. При 10,000 запросах в месяц = $250.
2. Лимиты контекстного окна
Каждая модель имеет максимальное количество токенов, которое может обработать за раз – контекстное окно. Это включает и ваш промпт, и ответ модели, и историю диалога.
| Размер контекста | В токенах | Примерный объем текста |
|---|---|---|
| Маленький | 4K-8K | 3-6 страниц текста |
| Средний | 32K-64K | 24-48 страниц |
| Большой | 128K | ~96 страниц, небольшая книга |
| Огромный | 200K+ | Целая книга или большая кодовая база |
3. Качество промптов и ответов
Понимание токенизации помогает писать более эффективные промпты. Избыточность увеличивает стоимость без повышения качества, а недостаток контекста может ухудшить результат.
Как подсчитать токены
Приблизительные правила
Для быстрой оценки без специальных инструментов:
- Английский текст: 1 токен ≈ 4 символа или 0.75 слова
- Русский текст: 1 токен ≈ 2.5-3 символа (менее эффективно)
- Код: Зависит от языка, но примерно 1 токен ≈ 3-4 символа
Примеры:
- 100 слов английского текста ≈ 130-150 токенов
- 100 слов русского текста ≈ 180-220 токенов
- 1000 символов кода ≈ 250-350 токенов
Точные инструменты
Для точного подсчета используйте официальные токенизаторы:
- OpenAI Tokenizer: Веб-интерфейс или библиотека tiktoken для Python
- Anthropic: API возвращает количество использованных токенов
- Google: Gemini API также предоставляет метрики токенов
Оптимизация использования токенов
Стратегии экономии токенов
| Техника | Как применять | Экономия |
|---|---|---|
| Краткость | Удаляйте избыточные слова и повторы | 20-30% |
| Системный промпт | Используйте system message вместо повторения контекста | 30-40% |
| Управление историей | Удаляйте старые сообщения из диалога | Зависит от длины диалога |
| Суммаризация | Сжимайте длинный контекст перед использованием | 50-70% |
Практические примеры оптимизации
Неоптимальный промпт (150 токенов):
"Я хотел бы попросить тебя написать для меня короткое резюме о том, что такое машинное обучение. Пожалуйста, объясни это простыми словами, чтобы новичок мог понять. Включи основные концепции и примеры. Спасибо."
Оптимизированный промпт (60 токенов):
"Объясни машинное обучение простым языком для новичка. Включи основные концепции и 2-3 примера."
Экономия: 90 токенов (60% снижение) без потери качества.
Стратегии для длинных диалогов
- Скользящее окно: Сохраняйте только последние N сообщений
- Суммаризация истории: Периодически сжимайте старые сообщения
- Извлечение ключевых фактов: Храните только критичную информацию из истории
- Сегментация диалога: Разбивайте длинные диалоги на логические сессии
Токены и мультиязычность
Важно понимать, что не все языки токенизируются одинаково эффективно. Это влияет на стоимость и доступный контекст4.
Эффективность токенизации по языкам
| Язык | Эффективность | Токенов на 100 слов | Рекомендации |
|---|---|---|---|
| Английский | Отличная | ~130 | Базовая линия |
| Французский, испанский | Хорошая | ~150 | +15% токенов |
| Русский | Средняя | ~200 | +50% токенов, используйте Gemini для экономии |
| Китайский, японский | Низкая | ~250-300 | +100%+ токенов, выбирайте модели с большим словарем |
Оптимизация для русского языка
- Избегайте избыточных вводных слов ("пожалуйста", "хотел бы попросить")
- Используйте краткие синонимы где возможно
- Рассмотрите использование английского для технических терминов
- Выбирайте модели с лучшей поддержкой русского (Gemini, newer GPT versions)
Специальные токены и форматирование
Кроме обычного текста, модели используют специальные токены для управления поведением и структурированием контекста.
Типы специальных токенов
- Разделители: Отмечают границы между сообщениями и ролями
- Маркеры начала/конца: Указывают на начало и конец последовательности
- Padding токены: Используются для выравнивания длины в batch обработке
- System tokens: Управляют поведением модели
Эти токены невидимы пользователю, но учитываются в лимитах и стоимости.
Частые проблемы и их решения
Превышение лимита контекста
Проблема: "This model's maximum context length is 128,000 tokens"
Решения:
- Сократите промпт, удалив избыточную информацию
- Разбейте задачу на несколько последовательных запросов
- Используйте суммаризацию для сжатия длинного контекста
- Переключитесь на модель с большим контекстным окном
Неожиданно высокая стоимость
Причины:
- Накопление истории диалога без очистки
- Избыточно длинные промпты
- Многократное включение одинакового контекста
- Неэффективная токенизация для вашего языка
Решение: Мониторинг токенов на каждом запросе, оптимизация промптов, использование кэширования для повторяющегося контекста.
Ключевые выводы
- Токены – базовые единицы обработки текста в языковых моделях, обычно части слов
- Стоимость API и лимиты контекста измеряются в токенах, поэтому их оптимизация критична
- Разные модели по-разному токенизируют текст; русский язык менее эффективен чем английский
- Простые стратегии оптимизации могут снизить расход токенов на 30-60%
- Используйте официальные токенизаторы для точного подсчета перед деплоем
Примечания и источники
- Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. ACL. ↑
- Kudo, T., & Richardson, J. (2018). SentencePiece: A simple and language independent approach to subword tokenization. EMNLP. ↑
- OpenAI (2025). API Pricing Documentation. ↑
- Rust, P., et al. (2021). How Good is Your Tokenizer? On the Monolingual Performance of Multilingual Language Models. ACL. ↑