RAG 性能基准测试
用单一 YAML 配置分析已部署 NVIDIA RAG Blueprint 服务的性能瓶颈。
技能明确说明目标服务器、合成查询端点、依赖和输出目录,并默认不保存完整响应;但允许 Bash、curl、Write、Edit,且可对部署服务发起负载测试,未要求用户确认、未说明敏感查询或凭据处理,也没有回滚方案,因此扣分。
文档提供配置校验规则、故障排查、部分失败行为和单元测试命令,关键路径描述较完整;但本次仅静态阅读,未提供覆盖关键路径的可核验测试结果,且依赖本地服务、uv、Python、aiperf 插件和正确工作目录,因此不超过静态上限并扣分。
用途、适用场景和非适用范围清楚,支持 profile-only、单点和 sweep;但要求已部署的 NVIDIA RAG 服务、特定运行环境及可达的 OpenAI 兼容端点,未说明中文查询支持或中国大陆网络可达性,触发边界证据也有限,因此扣分。
具备版本号、Apache-2.0 许可证、所有者、源代码位置、配置与输出参考文档、限制、故障排查和维护来源信息;但描述偏长,引用层级较深,BENCHMARK.md 记录了静态质量发现,且缺少明确的变更日志和面向用户的维护承诺,因此扣分。
目标输出、指标、工件布局、瓶颈分析和下一步实验建议都定义得较具体,核心任务理论上可直接执行;但未提供本次静态审查可验证的真实运行结果,且性能结论依赖外部部署、数据和端点,结果仍需用户解释与复核,因此按静态上限保守扣分。
技能列出驱动、schema、插件、测试路径,并包含结果字段来源、计算方式和复现命令;但提供的 BENCHMARK.md 明确称 Tier 3 证据不可用,未有实际执行日志或独立复核材料,因此仅给有限静态可审计分。
- 运行会对已部署服务产生实际负载;执行前应确认目标、集合、并发度、请求量和授权范围。
- 合成查询会发送到配置的 OpenAI 兼容端点;不要将敏感数据或凭据放入查询、配置或日志。
- 默认集合占位符会导致检索失败;静态材料未证明端点、依赖或 aiperf 插件在目标环境中可用。
- 未建立中文语言能力或中国大陆网络可达性;依赖外部端点时应先验证网络和认证。
这个 Skill 能做什么,适合哪些场景?
rag-perf 是 NVIDIA RAG Blueprint 的配置驱动性能基准测试技能。它先执行逐阶段服务端 profiling,可选再运行 aiperf 负载测试,并生成统一报告。输出包括 TTFT、端到端延迟、吞吐量、错误率、引用质量和瓶颈分析。它不负责 RAGAS 准确率评估、服务部署或生产监控。
读取 YAML 配置和文件或合成查询,调用可访问的 RAG 服务及可选的 OpenAI 兼容聊天完成端点;执行 profiling、并发或多轴 sweep,以及可选的 aiperf 负载测试;在标准输出打印解析后的配置、逐点进度、指标表和比较表,并写入 Markdown、JSON、CSV、profiling 与 aiperf 工件。
- RAG 工程师需要快速比较检索或 reranker 参数时,使用 profile-only 预设进行约 30 秒的快速迭代。
- 性能工程师需要检查单一并发级别的回归时,运行包含 profiling 和 aiperf 的 single_run 预设。
- 平台团队需要研究并发量、VDB top-k 与 reranker top-k 组合时,运行 Cartesian sweep。
- 运维人员需要定位 RAG 服务的阶段耗时、吞吐瓶颈或非零错误率时,分析生成的报告和结果文件。
这个 Skill 有哪些优点和局限?
- 单一 YAML 配置统一控制 profiling、负载测试和参数 sweep。
- 报告覆盖阶段耗时、TTFT、端到端延迟、吞吐量、错误率、引用质量与瓶颈推断。
- 支持文件查询和合成查询,并保存可复现的解析后配置与结构化结果。
- 提供 quick_profile、single_run 和 sweep 三种预设及单元测试命令。
- 必须连接已部署且可访问的 RAG 服务;它不负责部署、修复或配置服务。
- CLI 是 config-only,改变参数需要编辑或复制 YAML。
- 合成查询需要额外的 OpenAI 兼容端点,且该端点可能需要自身认证。
- 它是一次性基准测试工具,不提供生产监控或告警,也不进行准确率或 RAGAS 评分。
如何安装这个 Skill?
从 NVIDIA/skills 安装该技能:npx skills add nvidia/skills --skill rag-perf --yes。运行环境还需要在仓库根目录执行 uv sync --project scripts/rag-perf;aiperf 插件需要 rag-perf 的 editable 安装,文档给出的方式是 pip install -e ./scripts/rag-perf。
如何使用这个 Skill?
从仓库根目录先把配置中的 rag.collection_names 替换为真实集合,然后运行 uv run --project scripts/rag-perf rag-perf -c scripts/rag-perf/configs/single_run.yaml。可改用 quick_profile.yaml 或 sweep.yaml;命令行只接受必需的 -c/--config、--help 和 --version。
这个 Skill 与同类方案有什么区别?
与 rag-eval 的边界:rag-perf 关注性能、负载和瓶颈,准确率或 RAGAS 评分应使用 rag-eval。与 rag-blueprint 的边界:rag-perf 面向已部署服务的测试,不负责部署、修复或服务配置。