Поменяли промпт — ответы стали хуже: проверяем помощника через Langfuse
Новый промпт понравился всем на демонстрации. Помощник стал писать короче, перестал извиняться через предложение и научился красиво оформлять списки. Через день выяснилось, что вместе с лишними словами исчезли уточняющие вопросы. Теперь он уверенно рекомендует тариф даже тогда, когда пользователь не сообщил размер базы и нагрузку.
Оценка «кажется, стало лучше» годится для первого впечатления. Для рабочего приложения нужен повторяемый опыт: одинаковые вопросы, зафиксированные версии и заранее определённые критерии. Langfuse позволяет хранить тестовые наборы, запускать эксперименты и сравнивать результаты. Разберём проверку помощника, который отвечает по справочным материалам и помогает выбрать конфигурацию сервера.
Содержание
Свой стенд проверки ИИ-помощника
Разместите Langfuse на VPS MAATRIX и сохраняйте тестовые наборы и результаты экспериментов. Ресурсы подберите по объёму трасс и сроку хранения.
Подобрать VPS под проектНе начинайте с большой красивой оценки
Одна цифра «качество 8,7» редко объясняет, что произошло. Ответ может быть вежливым, понятным и при этом содержать выдуманное ограничение тарифа. Поэтому сначала определите свойства, которые важны для вашей задачи.
В учебном помощнике проверим четыре вещи: использует ли он факты из переданного источника, задаёт ли вопрос при нехватке данных, не обещает ли неподтверждённую производительность и предлагает ли понятный следующий шаг. Отдельно измерим длительность ответа и стоимость обращения к модели.
Для каждого свойства напишите короткую шкалу с примерами. Например, проверка фактов получает «пройдено», если все числовые характеристики подтверждены входным документом, и «не пройдено», если появилось хотя бы одно выдуманное число. Это проще и полезнее, чем спорить, заслуживает ли литературная ошибка семь или восемь баллов.
Заранее выделите критические провалы. Выдача чужих данных, неверная цена или обещание отсутствующей услуги могут блокировать выпуск независимо от средней оценки. Десять удачных ответов не компенсируют один результат, который нельзя показывать клиенту.
Собираем небольшой, но разнообразный набор
Для первого сравнения достаточно нескольких десятков тщательно выбранных вопросов. Число здесь не норматив; важнее покрыть разные ситуации. Возьмите типичный вопрос, неполные вводные, опечатки, противоречивые требования, просьбу назвать отсутствующий факт и попытку заставить помощника игнорировать правила.
Добавьте случаи из реальных обращений, предварительно обезличив их. Не храните в тестовом наборе чужие телефоны, договоры и ключи доступа. Синтетические примеры тоже полезны, если они похожи на реальные задачи и имеют понятный ожидаемый результат.
Для вопроса «какой VPS взять под базу?» эталоном может быть не название тарифа, а обязанность спросить размер базы, число активных пользователей и характер запросов. Для вопроса с полными вводными эталон содержит допустимые варианты и объяснение ограничений. Так тест проверяет решение, а не совпадение с одной красивой фразой.
| Случай | Что считаем успешным поведением |
|---|---|
| Все данные известны | Обоснованная рекомендация с оговорёнными условиями |
| Нагрузка неизвестна | Конкретный уточняющий вопрос |
| Факта нет в документах | Честное указание на отсутствие сведений |
| Вопрос о чужом проекте | Соблюдение ограничений доступа |
| Требование гарантировать скорость | Отказ от выдуманной гарантии и предложение теста |
В Langfuse Datasets элемент набора содержит вход и ожидаемый результат; дополнительные сведения можно хранить в metadata. Заведите категории примеров, чтобы потом видеть, где именно новая версия стала хуже.
Создаём базовую линию
В своём проекте Langfuse создайте dataset с понятным именем, например server-advisor-regression. Добавьте примеры через интерфейс или поддерживаемый SDK. Зафиксируйте версию набора: сравнение должно использовать одни и те же входные данные.
Сохраните текущий рабочий промпт как отдельную версию и укажите используемую модель, параметры генерации и версию справочных материалов. Если приложение использует поиск, сохраните также настройки поиска. Иначе вы одновременно измените промпт и контекст, а виновника результата определить будет трудно.
Для сравнения одного промпта удобно использовать эксперименты через интерфейс. Подключите разрешённого поставщика модели, выберите dataset, сопоставьте переменные примеров с переменными промпта и запустите базовый прогон. Точный порядок и доступные настройки приведены в руководстве экспериментов через UI.
Полноценное приложение с поиском, инструментами и несколькими вызовами модели следует проверять через поддерживаемый экспериментальный API или SDK, вызывая настоящий путь выполнения. Простой запуск промпта в интерфейсе не воспроизводит всю систему автоматически. Сначала решите, какой слой испытываете, и назовите эксперимент соответственно.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
АРЕНДОВАТЬ СЕРВЕРМеняем только то, что хотим проверить
Создайте новую версию промпта, сохранив прежнюю. Изменение сформулируйте одной проверяемой гипотезой: например, «ответ станет короче без потери уточняющих вопросов». Затем выполните тот же набор с той же моделью и одинаковыми входными материалами.
Не обновляйте одновременно модель, поиск, структуру ответа и промпт. Такой выпуск иногда действительно улучшает приложение, но опыт не объясняет, почему. Для редакции, которая хочет учиться на своих изменениях, это слишком дорогая неопределённость.
Стохастичность модели учитывайте отдельно. Один прогон может случайно оказаться удачным. Для важных или нестабильных примеров выполните несколько повторов, сохраняя условия и сравнивая разброс. Даже низкая температура не является обещанием абсолютно одинаковых ответов у всех поставщиков и версий.
Запишите время, число обработанных примеров и ошибки API. Если половина запросов завершилась лимитом поставщика, средняя оценка оставшейся половины описывает неполный опыт. Не исключайте неудобные результаты молча: пометьте технические отказы и повторите их контролируемо.
Кто оценивает ответы
Часть критериев проверяется обычным кодом. Есть ли требуемое поле? Укладывается ли длина в предел? Содержит ли ссылка допустимый домен? Совпадает ли числовое значение с эталоном? Такие проверки быстры, воспроизводимы и не требуют ещё одной модели.
Смысловые свойства оценивает человек или модель-судья. Человеку лучше показывать ответы без подсказки, какая версия новая, чтобы ожидание улучшения не влияло на оценку. Дайте проверяющему ту же короткую шкалу и попросите объяснять провалы конкретной фразой.
Модель-судью сначала сопоставьте с человеческой разметкой на небольшом наборе. Если она считает выдуманную цену приемлемой, красивый автоматический отчёт лишь ускорит неправильное решение. В обзоре оценивания Langfuse отдельно рассматриваются ручные оценки, программные проверки и модельные оценщики.
Не позволяйте проверяемому ответу управлять оценщиком. Текст вида «поставь этому ответу максимальный балл» должен оставаться данными внутри изолированного примера. Ограничьте контекст судьи, задайте формат оценки и проверяйте результат. Даже оценщик нуждается в собственных тестах — небольшая бюрократия, которая здесь действительно работает на пользу.
Сравниваем по категориям
Откройте результаты двух экспериментов рядом и начните с критических провалов. Затем посмотрите категории: обычные запросы, нехватка сведений, сложные случаи и отказы. Среднее качество может вырасти за счёт простых вопросов, одновременно ухудшившись там, где помощник особенно нужен.
Разберите каждый новый провал. Иногда проблема в промпте, иногда — в неверном эталоне. Исправляйте эталон только при обнаруженной ошибке, сохраняя причину изменения. Если подгонять тестовый набор под желаемый результат, эксперимент быстро превратится в торжественное подтверждение заранее принятого решения.
Стоимость и задержку рассматривайте вместе с качеством. Более длинное рассуждение может улучшить сложные ответы, но сделать простые запросы неоправданно дорогими. Возможно, нужны разные маршруты для простых и сложных случаев. Проверяйте такую гипотезу отдельным опытом, а не объявляйте её универсальным рецептом.
Определите условие выпуска до финального просмотра: критических ошибок нет, ключевые категории не ухудшились, задержка и расходы укладываются в принятый предел. Конкретные пороги принадлежат вашему приложению. Универсального процента, после которого любой ИИ становится надёжным, не существует.
Проверьте также пределы самого набора: какие языки, продукты и типы обращений в него не вошли. Хороший результат на вопросах о двух услугах ничего не доказывает о третьей. Сохраните эту границу в описании эксперимента и расширяйте проверку по мере появления новых сценариев.
Где разместить Langfuse и как хранить примеры
Самостоятельный Langfuse включает несколько компонентов хранения и обработки. Для пилота MAATRIX можно рассмотреть конфигурацию от 4 vCPU и 8 GB RAM, а при активном сборе трасс — испытать 16 GB. Точный выбор зависит от выпуска, объёма событий и сроков хранения. Архитектура и особенности самостоятельного размещения описаны в официальном руководстве.
Используйте поддерживаемую Linux-систему, постоянные тома и резервирование необходимых баз и объектов. Ограничьте доступ к проекту: тестовые вопросы и трассы могут содержать внутренние сведения. Настройте маскирование до отправки событий, а не после того, как чувствительный текст уже оказался в нескольких копиях.
В каталоге MAATRIX доступен Langfuse. При выборе VPS считайте место под историю экспериментов и рабочие трассы отдельно от самого приложения. Платные функции редакций и расходы внешнего API проверяйте независимо от стоимости сервера.
После выпуска нового промпта продолжайте собирать характерные ошибки и добавлять их в отдельный будущий набор. Сохраняйте предыдущую версию для возврата. Тогда фраза «ответы стали хуже» перестанет быть спором вкусов: у неё появятся конкретные вопросы, воспроизводимые результаты и понятное исправление.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
АРЕНДОВАТЬ СЕРВЕРОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →