用途:RAG-Perf 用于对已部署、网络可达的 NVIDIA RAG Blueprint 服务器做一次性性能基准测试,由单个 YAML 配置完全驱动,命令行仅支持 rag-perf -c <config> 及 --help / --version。它先跑服务端 profiling 逐阶段计时、评估引用质量并推断瓶颈,再可选执行 aiperf 负载测试,统计 TTFT、端到端时延、Token 与请求吞吐以及错误率,最后写出统一报告。
主要能力:提供三个预设配置——quick_profile.yaml(仅 profiling,约 30 秒,跳过负载测试)、single_run.yaml(单一并发级别,profiling 加 aiperf,约 2 分钟)、sweep.yaml(多轴扫描,load.concurrency、rag.vdb_top_k、rag.reranker_top_k 取值可为 int 或 list[int],列表会形成笛卡尔积扫描轴)。每次运行按序打印启动横幅、单行摘要、完整解析后的配置 YAML、逐网格点进度、每点汇总表与最终对比表。产物写入 output.dir/run_<ts>/,单点多迭代时嵌套在 iter_<i>/<point>/ 下。
使用方式:需先克隆仓库并从仓库根目录执行;需要 Python 3.11+ 和 uv,先运行 uv sync --project scripts/rag-perf 安装到独立虚拟环境,跑单元测试需加 --extra dev。运行前必须把配置中的 rag.collection_names 占位符替换为部署 ingestor 上真实存在的集合。aiperf 阶段需安装随附的 nvidia_rag 端点插件:pip install -e ./scripts/rag-perf。合成查询需要一个 OpenAI 兼容的 chat-completions 端点。典型运行命令:uv run --project scripts/rag-perf rag-perf -c scripts/rag-perf/configs/single_run.yaml。
限制:CLI 只接受配置,参数变化须改 YAML 或复制预设;input.file 与 input.synthetic 互斥;文件输入仅识别 .jsonl 和 .csv 后缀;load.concurrency 等列表值不允许重复;warmup_requests 最小为 1;合成查询遇到首个 LLM 错误会快速失败但保留部分 JSONL;推理模型需保持 synthetic.disable_thinking: true。此外该工具不评估答案准确性(应使用 rag-eval),不负责部署修复与配置(应使用 rag-blueprint),也不做生产监控告警。其余细节暂未提供。