Как сократить промпт ради экономии и случайно увеличить счёт на 40%
Есть инженерные идеи, которые звучат так логично, что их хочется внедрить ещё до обеда.
Промпт большой? Сократим.Токенов станет меньше? Счёт снизится.Что тут может пойти не так?
Кэш.
Кэш в работе с языковыми моделями похож на скидку за повторное использование. Если у вас раз за разом повторяется большой кусок промпта: правила, описание инструментов, схема данных, инструкции, сервис считает его дешевле.
Но есть ловушка.
Если перед каждым запросом по-новому сокращать этот общий кусок, кэш перестаёт его узнавать. Для системы это уже новый текст. Скидка сгорает.
В итоге вы экономите токены на бумаге, а в конце месяца смотрите на счёт с выражением человека, который сам купил себе проблему.
Авторы свежего препринта проверили это на Sonnet 4.6. Они обнаружили, что кэш работает не идеально: около 3500 токенов есть заметный порог, а в серии повторных запросов кэш срабатывал примерно в 83% случаев, а не всегда.
Дальше стало веселее.
На публичном тесте самый «умный» вариант, где промпт отдельно сокращали под каждый конкретный запрос, оказался на 40,1% дороже обычного варианта без оптимизации.
То есть вы провели оптимизацию, написали о ней в отчёте, а потом заплатили больше. Очень технологично.
Авторы предлагают другой порядок:
- Отделить постоянную часть промпта от переменной.
- Один раз сократить постоянную часть: правила, схемы, описания инструментов.
- Не переписывать её под каждый запрос.
- Настроить кэш и только потом бороться за каждый токен.
В их тестах этот подход оказался самым дешёвым во всех 16 конфигурациях. Авторы заявляют среднюю экономию 49% против одного кэширования, 64% против сжатия под каждый запрос и 90% против варианта без оптимизаций.
Главная мысль скучная. А скучные мысли часто хорошо экономят деньги.
Перед тем как «оптимизировать промпты», проверьте:
- какая часть текста повторяется в каждом запросе;
- сколько раз кэш реально срабатывает;
- не меняется ли общий префикс от запроса к запросу;
- что происходит с итоговым счётом, а не только с числом токенов.
Потому что «мы сократили промпт» и «мы стали платить меньше» - две разные новости.
Это пока свежий препринт, не универсальный закон для всех моделей и провайдеров. Но направление ясное: сначала берегите кэш, потом героически режьте токены.
В Telegram-канале разбираю такие исследования до того, как из них сделают бодрый заголовок и дорогую рекомендацию для всей компании.
Источник: препринт на arXiv