Практический разбор: генерировать synthetic test set для RAG: single-hop, multi-hop, personas, hard negatives, validation, leakage и смешивание с production queries.
Коротко о главном
Она быстро покрывает новый corpus и редкие сценарии, но отражает bias генератора. Её используют для расширения, а не вместо реальных запросов и экспертной разметки. Отчёт разделяет synthetic, curated и production-derived cohorts. Regression set остаётся стабильным, свежая выборка ловит drift.
Зачем нужна синтетика
Она быстро покрывает новый corpus и редкие сценарии, но отражает bias генератора. Её используют для расширения, а не вместо реальных запросов и экспертной разметки.
Единица теста
Храните query, reference contexts, reference answer, query type, difficulty, persona, generator version и validation status. Source spans должны существовать в конкретной версии корпуса.
Разнообразие сценариев
Генерируйте specific/abstract, single/multi-hop, короткие и разговорные запросы, опечатки, отрицательные и permission cases. Контролируйте распределение, а не просите «сделай 100 вопросов».
Hard negatives
Добавляйте похожие, но неверные chunks: другой период, tenant, версия или сущность. Они выявляют systems, которые выигрывают на лёгких совпадениях.
Валидация
Дедуплицируйте queries, проверяйте answerability и grounding, затем вручную смотрите stratified sample. Не допускайте, чтобы judge видел скрытый label в prompt.
Смешанный benchmark
Отчёт разделяет synthetic, curated и production-derived cohorts. Regression set остаётся стабильным, свежая выборка ловит drift.
Какой первый шаг?
Зафиксировать корпус, реальные запросы и baseline; без версий сравнение невоспроизводимо.
Что измерять?
Retrieval relevance, grounded correctness, p95 latency, стоимость и ошибки по сегментам.
Можно ли доверить оценку одной LLM?
Нет. LLM judge полезен как сигнал, но критические выборки требуют детерминированных проверок и экспертной разметки.
Как обновлять систему?
Через новую версию, offline eval, shadow, canary и заранее подготовленный rollback.
Что делать с чувствительными данными?
Минимизировать, ограничивать доступ, применять ACL до retrieval и задавать retention для traces и eval-наборов.
Как избежать каннибализации экспериментов?
Менять один слой за раз и хранить control, candidate, corpus version и сегментированные результаты.
← Все статьи блога