AI / LLM
LLM-evals: собери eval-набор и CI-гейт
Читать про evals — не то же самое, что иметь гейт, блокирующий твою собственную регрессию. Возьми одну реальную LLM-фичу, собери golden set, скорь честно, откалибруй judge и сведи CI-гейт, валящий билд при падении качества, — затем докажи, что он ловит регрессию, которую ты намеренно внедрил.
Преврати модель юнита в рабочий пайплайн: golden set из реального ввода, программный + откалиброванный-judge скоринг, offline regression gate в CI с измеримыми порогами и online-проверку дрейфа — проверенные регрессией, которую гейт реально блокирует.
Выбери одну LLM-фичу (RAG Q&A эндпоинт, классификатор, structured-extraction вызов или суммаризатор) и выкати для неё eval-набор плюс CI regression gate так, чтобы намеренно внедрённая регрессия качества валила билд, — и докажи каждое утверждение числами.
- Задокументированный golden set из 50+ категоризированных кейсов с происхождением плюс per-dimension определение «достаточно хорошо».
- Отчётное число калибровки judge (согласие с человеческими метками), превышающее заявленный порог, с показанной проверкой position bias; если порог не пройден, judge не используется как гейт и это решение задокументировано.
- Прогон CI, который ПРОХОДИТ на baseline, и отдельный прогон CI, который ВАЛИТСЯ на ветке с внедрённой регрессией, где вывод гейта показывает per-category дельту, вызвавшую падение (а не только агрегат).
- Короткий разбор: какой скорер выбран на каждое измерение и почему, по какому порогу гейтил, и как online-семпл всплыл бы регрессию, которую offline-гейт структурно не может.
- Добавь алерт дрейфа embedding-распределения на online-семпле: помечай, когда продакшн-ввод приземляется значимо далеко от всего в golden set, и возвращай эти кейсы в набор.
- Прогони A/B-тест: подавай кандидат-промпт срезу трафика, скорь обе ветки набором и свяжи дельту качества с одной бизнес-метрикой (доля решений, доля эскалаций и т.д.).
- Добавь harness устойчивости judge, прогоняющий каждый судимый кейс в обоих порядках ответов и отчитывающийся долей position bias, валя CI при превышении порога.
- Сделай так, чтобы гейт расширялся автоматически: скрипт, превращающий каждый новый залогированный продакшн-сбой в golden-кейс (с тегом категории) как часть incident-воркфлоу.
Это цикл, который ты запускаешь для каждой реальной LLM-фичи: определи контракт качества, собери golden set из реального трафика, скорь самым дешёвым честным методом (программно до откалиброванного judge), гейти offline в CI по per-category дельтам — не по среднему — и семплируй online для дрейфа, который offline не видит. Доказательство — не зелёный набор, а набор, который краснеет на регрессии, которую ты внедрил. Собери это однажды на одной фиче, и продакшн-версия станет мышечной памятью.