Что такое токен
Токен — базовая единица, которой оперирует LLM. Один токен примерно соответствует 4 символам латиницы или 2–3 символам кириллицы. Слово «чат-бот» — это 2–3 токена. Одна страница A4 плотного текста — около 600–700 токенов. Контекстное окно измеряется в токенах и включает и входящий текст (промпт + история диалога), и генерируемый ответ.
Лимиты контекстного окна у разных моделей
GPT-4o — 128 000 токенов (около 200 страниц A4). Claude 3.5 Sonnet — 200 000 токенов. YandexGPT Pro — 32 000 токенов. GigaChat Max — 32 000 токенов. Для большинства диалоговых ботов достаточно 8 000–16 000 токенов: это покрывает 30–50 сообщений в одной сессии плюс системный промпт плюс RAG-контекст.
Важный нюанс: стоимость API-вызова пропорциональна числу токенов. Если в каждый запрос передавать полную историю диалога из 30 сообщений, стоимость одного обращения вырастает в 5–10 раз по сравнению с оптимизированной передачей только последних 5–10 сообщений.
Управление памятью диалога
Есть три стратегии: (1) Скользящее окно — передавать только последние N сообщений. Просто, но модель забывает данные, названные в начале. (2) Суммаризация — при приближении к лимиту сжимать старую часть диалога в краткое резюме. Требует дополнительного вызова LLM. (3) Persistent memory — хранить ключевые факты о пользователе в отдельной базе и подгружать их в контекст. Лучший баланс памяти и стоимости.
Связанные термины
- LLM — модель с конкретным лимитом контекстного окна
- RAG — как документы вставляются в контекстное окно
- Промпт-инжиниринг — как системный промпт занимает часть окна
- Чат-бот — управление историей диалога в рамках окна
Хотите оптимизировать работу бота с памятью диалога? Обсудим задачу.
Связаться с нами