rag-eval
Официальный skill NVIDIA предназначен для оценки качества NVIDIA RAG Blueprint по файловому контракту. Он работает с каталогом corpus/ и файлом train.json, запускает scripts/eval/evaluate_rag.py и помогает разбирать JSON-результаты RAGAS. Это отдельный сценарий для сопоставления качества retrieval и generation; он не предназначен для production-мониторинга, проверки latency или throughput и не заменяет skill rag-perf для нагрузочных измерений. Также его не следует использовать для оценки API без структуры corpus/ и train.json или для общих ML-экспериментов, не связанных с этим evaluator. Перед запуском репозиторий должен быть склонирован, а команды нужно выполнять из его корня: пути и импорты evaluate_rag.py рассчитывают на такое расположение. Источник указывает Python 3.11+, uv и зависимости проекта scripts/eval, которые устанавливаются через uv sync --project scripts/eval. Для полного сценария нужны доступные RAG server и ingestor; в инструкции приведены типичные localhost-порты 8081 и 8082. Для RAGAS требуется NVIDIA_API_KEY, а RAG_EVAL_JUDGE_MODEL можно задать отдельно; если его не задавать, skill указывает значение по умолчанию для judge-модели. Каждый путь из --dataset-paths должен вести в набор, где присутствуют corpus/ и train.json. Рабочий цикл начинается с подготовки данных. Правила для train.json и преобразования входных документов вынесены в references/dataset-and-conversion.md. Если документы приходят по публичным ссылкам, их материализуют в corpus/; для мультимодального содержимого источник рекомендует предпочесть PDF, чтобы сохранить встроенные изображения. Затем evaluator запускают через uv run --project scripts/eval python scripts/eval/evaluate_rag.py, передавая --dataset-paths, --host и --port. При необходимости можно указать --ingestor_server_url, но значение должно быть базовым адресом вида http://host:port без суффикса /v1: программа сама добавляет нужный путь. Для сравнения конфигураций качества skill описывает параметры retrieval и generation. top_k и vdb_top_k меняют объём выбираемых результатов, а флаги reranker и query rewriting позволяют сравнить соответствующие варианты обработки запроса. Для генерации можно явно передать temperature, top-p и max-tokens. Такой sweep нужно интерпретировать как сравнение настроек на выбранном датасете, а не как универсальный рейтинг модели: результат зависит от retrieval, judge-модели и доступности NVIDIA_API_KEY. После прогона headline-метрики RAGAS читают из rag_*_evaluation_summary.json; для разбора отдельных ошибок используются result-analysis.md и файлы evaluation_data.json. Ошибки evaluator нужно отделять от пустых или слабых метрик. Немедленный выход с сообщением о NVIDIA_API_KEY указывает на отсутствующий или недействительный ключ. Сообщение train.json must be a JSON array означает, что верхний уровень файла имеет неправильную форму: источник ожидает массив объектов. Если в evaluation_data.json меньше строк, чем в train.json, нужно искать сетевые или stream JSON-ошибки в stderr и сверяться с таблицей сигналов в benchmark-execution.md. Пустые generated_contexts обычно требуют проверить collection, ingestion, top_k/vdb_top_k и URL ingestor. Если все контексты пусты, RAGAS оставляет только nv_accuracy, а остальные две метрики могут быть пустыми — это не означает успешную полную оценку. У skill есть практические границы, которые важны при чтении карточки. Выбор vector database и embedding следует настройкам развернутого ingestor и не переопределяется только CLI. Параметры --model и --llm_endpoint передаются без преобразований только при явной установке; если их не передавать, используется настроенная на сервере LLM. Старые коллекции сохраняются между запусками, поэтому для изолированных сравнений источник рекомендует уникальное имя через --collection и осторожно относиться к --force_ingestion. В результате карточка описывает воспроизводимую filesystem-оценку RAG: подготовить corpus и train.json, выполнить evaluator, сравнить retrieval/generation, прочитать RAGAS JSON и связать ошибки с конкретной настройкой или входными данными.
Для чего подходит
- Подготовка корпуса и train.json
- Запуск RAGAS-оценки качества
- Разбор ошибок retrieval и generation
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/NVIDIA/skills/tree/main/skills/rag-eval