Каскад моделей через один адрес: дешёвая обрабатывает поток
Самый большой выигрыш в расходе даёт не выбор модели подешевле, а отказ от одинакового обращения ко всем запросам. Часть из них простая, часть сложная, и обрабатывать их одинаково незачем.
Как это работает
Первый уровень — лёгкая модель. Она обрабатывает весь поток и вместе с ответом сообщает, уверена ли в нём. Ответы, прошедшие проверку, уходят пользователю. Остальные передаются на второй уровень.
Второй уровень — дорогая модель, которая видит только сложные случаи. Их доля обычно невелика, а качество для пользователя остаётся прежним.
Схема требует единого интерфейса к обеим моделям. Без него переключение превращается во вторую интеграцию, которую никто не тестирует.
По каким признакам передавать дальше
Четыре признака, и они дополняют друг друга.
Самооценка модели — самый простой в реализации и самый ненадёжный: модели склонны быть уверенными в неверных ответах.
Проверка кодом — самый надёжный. Сумма не сходится, обязательное поле пустое, артикул не существует в справочнике.
Отсутствие данных в базе знаний — если поиск не нашёл подходящих фрагментов, лёгкой модели просто не на чем отвечать.
Категория запроса — жалобы, возвраты и юридические вопросы имеет смысл сразу направлять на второй уровень.
Чего это стоит
Схема не бесплатна, и считать нужно честно.
Сложный запрос оплачивается дважды: сначала лёгкой моделью, потом дорогой. При большой доле передач экономия исчезает.
Задержка для сложных случаев складывается из двух обращений. Для чата это заметно.
Сопровождать нужно два промпта вместо одного, и оба требуют тестового набора.
Точка окупаемости считается просто: если доля передач на второй уровень превышает примерно треть, выигрыш становится сомнительным.
Когда схема не нужна
Если поток однороден и все запросы одинаково сложные, делить нечего.
Если объём небольшой. На сотне запросов в день разница в расходе не окупит день работы на внедрение.
Если цена ошибки высока в каждом случае. В юридических и медицинских сценариях экономить на первом уровне не стоит.
Внедряйте каскад после того, как сделано простое: почищен системный промпт, свёрнута история диалога, включён кеш повторов. Эти три вещи дешевле и часто дают сопоставимый эффект.
Как внедрять по шагам
- Соберите тестовый набор из реальных запросов с эталонными ответами.
- Прогоните его на дорогой модели и запишите результат как ориентир.
- Прогоните на лёгкой и посмотрите, какая доля ответов приемлема.
- Добавьте проверки кодом и посчитайте, сколько случаев они отсеивают.
- Соберите схему и прогоните набор целиком.
- Сравните две цифры: качество и расход. Решение принимается по обеим сразу.
Что логировать
Обязательно фиксируйте, каким уровнем обработан каждый запрос. Без этого вы не узнаете реальную долю передач, а значит, не сможете проверить, окупается ли схема.
Заведите уведомление на рост этой доли. Он означает либо изменение характера запросов, либо деградацию лёгкой модели после обновления версии.
Частая ошибка
Настроить признаки передачи один раз и забыть. Поток меняется: появляются новые сценарии, пользователи формулируют иначе, обновляются модели.
Раз в квартал просматривайте выборку из тех запросов, которые ушли на второй уровень, и тех, что остались на первом. Обычно обнаруживается, что часть простых случаев зря уходит наверх, а часть сложных зря остаётся внизу.
Вариант попроще
Полноценный каскад нужен не всем. Часто достаточно более простой схемы: разные сценарии сразу идут на разные модели, без всякой передачи между уровнями.
Классификация писем, простановка тегов, извлечение даты — на лёгкую модель. Подготовка ответа клиенту, разбор договора, сводка по длинной переписке — на дорогую. Решение принимается один раз в коде, по типу задачи, а не по уверенности модели.
Такая схема внедряется за час, не требует тестирования признаков передачи и даёт заметную часть выигрыша. С неё имеет смысл начинать, а к настоящему каскаду переходить, только если поток внутри одного сценария действительно неоднороден.
Как считать экономию
Честный расчёт выглядит так: берёте фактический расход за неделю до внедрения и после, на сопоставимом объёме запросов. Не по прикидкам, а по выгрузке.
Отдельно посчитайте долю запросов, прошедших второй уровень, и умножьте на стоимость двойной обработки. Эта величина — ваша плата за схему, и она должна быть заметно меньше выигрыша от первого уровня.
Если разница в пределах нескольких процентов, каскад не стоит сопровождения: два промпта, два тестовых набора и постоянное наблюдение обойдутся дороже сэкономленного.
Коротко
Каскад даёт наибольший эффект из всех приёмов оптимизации, но требует единого интерфейса, тестового набора и постоянного наблюдения. Считайте долю передач, проверяйте ответы кодом, а не самооценкой модели, и беритесь за схему только после того, как сделаны простые вещи.