Что такое токен
Что такое токен и как его считать?¶
Токен – это минимальная единица текста, которую ИИ-модель (например, YandexGPT) обрабатывает. Это может быть:
- Одно слово (например, "привет" = 1 токен)
- Часть слова (например, "подводный" → "под" + "вод" + "ный" = 3 токена)
- Символы пунктуации, цифры, эмодзи (каждый может считаться отдельно)
Как считать токены в популярных GPT чатах?¶
Существует несколько способов подсчета токенов и в разных моделях используются различные алгоритмы. Каждый алгоритм направлен для достижения конкретной цели с максимальной эффективностью.
Рассмотрим основные алгоритмы, которые вам будут интересны и полезны при использовании приложения GPT24 в Битрикс24.
flowchart TD
A[Привет, как дела?] --> B(SentencePiece-токенизатор)
B --> C[Токены:]
C --> D1[Привет]
C --> D2[,]
C --> D3[как]
C --> D4[дела]
C --> D5[?]
Пояснение:¶
- SentencePiece (модель YandexGPT) анализирует текст без предварительной очистки (учитывает пунктуацию, регистр и морфологию).
- Пример разбивки:
"Привет"
→ 1 токен (частотное слово).","
→ отдельный токен."как"
и"дела"
→ по 1 токену (короткие слова)."?"
→ отдельный токен.
Сравнение с BPE (например, в DeepSeek):¶
flowchart TD
A[Текст: Подводный] --> B(BPE-токенизатор)
B --> C["Токены:"]
C --> D1[Под]
C --> D2[вод]
C --> D3[ный]
Отличие моделей:
- SentencePiece (YandexGPT) чаще сохраняет целые слова (если они есть в словаре),
- BPE (DeepSeek/GPT) агрессивнее дробит сложные слова.
Подробнее о моделях токенизации запросов¶
1. BPE (Byte Pair Encoding)¶
- Как работает:
- Разбивает текст на часто встречающиеся подстроки (субтокены).
- Например, слово "подводный" → "под" + "вод" + "ный".
- Где используется:
- OpenAI (GPT-3, GPT-4), DeepSeek, LLaMA, Falcon.
2. WordPiece (используется в BERT)¶
- Как работает:
- Похож на BPE, но выбирает символы, которые максимизируют вероятность данных.
- Лучше работает с редкими словами.
- Где используется:
- Google BERT, большинство моделей от Google.
3. Unigram Language Model Tokenization¶
- Как работает:
- Оценивает вероятность каждого возможного разбиения и выбирает оптимальное.
- Может удалять маловероятные токены.
- Где используется:
- SentencePiece (используется в ALBERT, T5).
4. SentencePiece (универсальный метод)¶
- Как работает:
- Поддерживает BPE и Unigram, работает напрямую с raw-текстом (без предварительной очистки).
- Подходит для многоязычных моделей.
- Где используется:
- YandexLLM (YandexGPT), некоторые версии Mistral, Sber GigaChat.
5. Классическая токенизация (по словам/пробелам)¶
- Как работает:
- Разделяет текст по пробелам (простейший способ).
- Плохо работает с агглютинативными языками (например, финский, турецкий).
- Где используется:
- Устаревшие NLP-модели (например, Word2Vec в базовой реализации).
Как происходит разделение текста на токены¶
1. Для русского и английского языка¶
- В среднем 1 токен ≈ 1 слово (но длинные слова разбиваются).
- Примеры:
- "Привет, как дела?" → 5 токенов ("Привет", ",", "как", "дела", "?")
- "Hello, how are you?" → 6 токенов ("Hello", ",", "how", "are", "you", "?")
2. Как точно посчитать токены?¶
- Онлайн-инструменты:
- Tokenizer от OpenAI (аналогично для DeepSeek)
- HuggingFace Tokenizer
- API Yandex Cloud (Для моделей YandexGPT и GigaChat)
3. Сколько токенов в одном запросе?¶
- Зависит от длины текста. Примерные оценки:
- Короткий запрос ("Напиши план статьи") → 3-5 токенов
- Средний запрос ("Объясни, как работает ИИ в CRM") → 10-15 токенов
- Длинный запрос (на 100+ слов) → 150+ токенов
4. Разница между русским и английским¶
- Английский обычно более компактный (меньше токенов).
- Русский может требовать на 10-30% больше токенов из-за морфологии.
Почему важно считать токены?¶
- Лимиты моделей (например, DeepSeek может обрабатывать до 128K токенов).
- Экономия бюджета (в платных API тарификация часто идёт за токены).
- Оптимизация запросов (слишком длинные могут ухудшить ответ).