SuperAPI AI 工具集

nemo-evaluator-sdk

测试与质量

查看项目

更新于 10-21 16:18

技能介绍

NeMo Evaluator SDK 是 NVIDIA 推出的企业级大语言模型(LLM)评测工具,用于在容器化、可复现的环境中跨多个基准测试评估模型。

用途 该工具面向需要规模化、可复现 LLM 评测的场景,支持在 100 多个基准测试、18 个以上评测框架(harness)上运行评测,覆盖学术基准、代码生成、数学推理、安全评测以及视觉语言模型(VLM)任务。它支持多种执行后端,包括本地 Docker、Slurm HPC 集群和 Lepton 云。

主要能力

  • 多框架支持:集成 lm-evaluation-harness(60+ 任务,如 MMLU、GSM8K、HellaSwag、ARC)、simple-evals(20+,如 GPQA、MATH、AIME)、bigcode-evaluation-harness(25+,如 HumanEval、MBPP、MultiPL-E)、safety-harness(Aegis、WildGuard)、garak(安全探测)、vlmevalkit(OCRBench、ChartQA、MMMU)、bfcl(函数调用)、mtbench(多轮对话)、livecodebench、helm(医疗领域)、nemo-skills 等。
  • 多后端执行:支持本地 Docker、Slurm HPC 集群、Lepton 云。
  • 结果导出:可导出到 MLflow、Weights & Biases 或本地 JSON。
  • 配置覆盖:通过命令行参数覆盖模型端点、评测参数、执行设置和任务列表。
  • 提供 Python API(详见 references/python-api-usage.md)。

使用方式 安装:

pip install nemo-evaluator-launcher

设置 API 密钥:

export NGC_API_KEY=nvapi-your-key-here

创建最小配置 config.yaml:

defaults:
  - execution: local
  - deployment: none
  - _self_

execution:
  output_dir: ./results

target:
  api_endpoint:
    model_id: meta/llama-3.1-8b-instruct
    url: https://integrate.api.nvidia.com/v1/chat/completions
    api_key_name: NGC_API_KEY

evaluation:
  tasks:
    - name: ifeval

运行评测:

nemo-evaluator-launcher run --config-dir . --config-name config

查看可用任务:

nemo-evaluator-launcher ls tasks

常用 CLI 命令包括:run(执行评测)、status <id>(查看任务状态)、info <id>(查看详细信息)、ls tasks(列出基准)、ls runs(列出所有调用)、export <id>(导出结果到 mlflow/wandb/local)、kill <id>(终止任务)。

典型工作流

  1. 标准基准评测:配置 API 端点(支持 OpenAI 兼容接口,如 vLLM、TRT-LLM、NIM),选择基准(如 ifeval、gpqa_diamond、gsm8k_cot_instruct、humaneval),运行并查看结果。
  2. Slurm HPC 集群评测:配置 Slurm 主机名、账户、分区、输出目录、walltime、节点数和 GPU 数,设置模型部署(checkpoint 路径、张量并行、数据并行、最大模型长度),启动并监控任务。
  3. 多模型对比:创建基础配置,通过命令行覆盖模型 ID 和 URL 分别评测不同模型,再导出到 MLflow、W&B 或本地 JSON 进行对比。
  4. 安全与视觉语言评测:配置安全任务(aegis、wildguard、garak)或 VLM 任务(ocrbench、chartqa、mmmu),VLM 端点需设置 type: vlm。

适用场景

  • 需要在一个平台使用 100+ 基准、18+ 框架。
  • 在 Slurm HPC 集群或云上运行评测。
  • 需要可复现的容器化评测。
  • 评测 OpenAI 兼容 API(vLLM、TRT-LLM、NIM)。
  • 需要企业级评测并导出结果(MLflow、W&B)。

限制与替代方案 若只需快速本地评测,可考虑 lm-evaluation-harness;若仅关注代码基准,可考虑 bigcode-evaluation-harness;若需要更广泛的评测(公平性、效率),可考虑 HELM;高度专业化的领域评测可用自定义脚本。

环境要求

  • Python 3.10-3.13
  • Docker(本地执行需要)
  • NGC API Key(拉取容器和使用 NVIDIA Build)
  • HF_TOKEN(部分基准如 GPQA、MMLU 需要)

常见问题

  • 容器拉取失败:需配置 NGC 凭据,执行 docker login nvcr.io -u '$oauthtoken' -p $NGC_API_KEY。
  • 任务需要环境变量:部分任务需要 HF_TOKEN 或 JUDGE_API_KEY,可在任务下配置 env_vars。
  • 评测超时:可提高 parallelism 或减少样本数(limit_samples)。
  • Slurm 任务未启动:检查账户、分区和 QOS。
  • 结果与预期不符:核对配置中的 temperature、num_fewshot 等参数是否与报告设置一致。

资源

  • GitHub:https://github.com/NVIDIA-NeMo/Evaluator
  • NGC 容器:nvcr.io/nvidia/eval-factory/
  • NVIDIA Build:https://build.nvidia.com
  • 文档:https://github.com/NVIDIA-NeMo/Evaluator/tree/main/docs

相关技能:evaluating-llms-harness、evaluating-code-models、nextflow。