Практический разбор: трассировать RAG: query transforms, retrieval candidates, filters, reranking, context assembly, model call, citations, privacy и replay.
Коротко о главном
Нужен trace всей цепочки: original query, transformations, retrievers, candidates, filters, reranker, selected context, model version и output validation. Связывайте quality signals с p95 latency, cost, empty retrieval и fallback. Sampling сохраняет все ошибки и небольшую долю успехов.
Один лог ответа бесполезен
Нужен trace всей цепочки: original query, transformations, retrievers, candidates, filters, reranker, selected context, model version и output validation.
Span-модель
Каждый этап становится span с duration, status, input/output references и version. Общий trace ID проходит через gateway, search, model и tools.
Retrieval evidence
Храните IDs, ranks и scores, но учитывайте, что шкалы разных алгоритмов несопоставимы. Логируйте причины отбрасывания и permission decision ID.
Context manifest
Записывайте порядок chunks, token counts, truncation и deduplication. Для чувствительных данных сохраняйте references или hashes вместо полного payload.
Replay
Воспроизводимый replay фиксирует corpus snapshot, models, prompts и policies. Live replay по изменившемуся индексу отвечает на другой вопрос.
Дашборд и алерты
Связывайте quality signals с p95 latency, cost, empty retrieval и fallback. Sampling сохраняет все ошибки и небольшую долю успехов.
Какой первый шаг?
Зафиксировать корпус, реальные запросы и baseline; без версий сравнение невоспроизводимо.
Что измерять?
Retrieval relevance, grounded correctness, p95 latency, стоимость и ошибки по сегментам.
Можно ли доверить оценку одной LLM?
Нет. LLM judge полезен как сигнал, но критические выборки требуют детерминированных проверок и экспертной разметки.
Как обновлять систему?
Через новую версию, offline eval, shadow, canary и заранее подготовленный rollback.
Что делать с чувствительными данными?
Минимизировать, ограничивать доступ, применять ACL до retrieval и задавать retention для traces и eval-наборов.
Как избежать каннибализации экспериментов?
Менять один слой за раз и хранить control, candidate, corpus version и сегментированные результаты.
← Все статьи блога