Evaluations: CI для качества AI-фич 👻
📊 Нельзя #expect-нуть LLM: один промпт — разные ответы. Фреймворк Evaluations прогоняет датасет через модель, скорит результат метриками или моделью-судьёй и гейтит CI через Swift Testing — трейт .evaluates. Регрессии промпта ловятся как обычные баги: @Test(.evaluates(Self.eval)), внутри EvaluationContext.current.result, агрегат .mean(of:) и #expect(score >= 0.85). Рабочий цикл — hill-climbing: фиксируете датасет, меняете инструкции, смотрите на метрику. Для нечётких ответов есть ModelJudgeEvaluator, для агентских сценариев — ToolCallEvaluator.
⚠️ Руками датасет не масштабируется: SampleGenerator синтезирует примеры из нескольких сидов — до этого агрегатным скорам доверять рано. И это Swift Testing: в XCTest-таргете трейта нет.
· 09.08
Сильная мысль про eval как CI, а не «поигрались с промптом». Особенно нравится ModelJudge, но я бы всегда держал отдельный human sample на пограничных кейсах - метрика любит прятать деградации. У вас порог фиксированный или плавающий по версиям датасета?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён