{"id":"nemo-evaluator","name":"nemo-evaluator-sdk","summary":"18+ハーネス(MMLU、HumanEval、GSM8K、セーフティ、VLM)から100+ベンチマークにわたるLLMをマルチバックエンド実行で評価します。","body":"# NeMo Evaluator SDK - Enterprise LLM Benchmarking\n\n## Quick Start\n\nNeMo Evaluator SDK evaluates LLMs across 100+ benchmarks from 18+ harnesses using containerized, reproducible evaluation with multi-backend execution (local Docker, Slurm HPC, Lepton cloud).\n\n**Installation**:\n```bash\npip install nemo-evaluator-launcher\n```\n\n**Set API key and run evaluation**:\n```bash\nexport NGC_API_KEY=nvapi-your-key-here\n\n# Create minimal config\ncat > config.yaml << 'EOF'\ndefaults:\n  - execution: local\n  - deployment: none\n  - _self_\n\nexecution:\n  output_dir: ./results\n\ntarget:\n  api_endpoint:\n    model_id: meta/llama-3.1-8b-instruct\n    url: https://integrate.api.nvidia.com/v1/chat/completions\n    api_key_name: NGC_API_KEY\n\nevaluation:\n  tasks:\n    - name: ifeval\nEOF\n\n# Run evaluation\nnemo-evaluator-launcher run --config-dir . --config-name config\n```\n\n**View available tasks**:\n```bash\nnemo-evaluator-launcher ls tasks\n```\n\n## Common Workflows\n\n### Workflow 1: Evaluate Model on Standard Benchmarks\n\nRun core academic benchmarks (MMLU, GSM8K, IFEval) on any OpenAI-compatible endpoint.\n\n**Checklist**:\n```\nStandard Evaluation:\n- [ ] Step 1: Configure API endpoint\n- [ ] Step 2: Select benchmarks\n- [ ] Step 3: Run evaluation\n- [ ] Step 4: Check results\n```\n\n**Step 1: Configure API endpoint**\n\n```yaml\n# config.yaml\ndefaults:\n  - execution: local\n  - deployment: none\n  - _self_\n\nexecution:\n  output_dir: ./results\n\ntarget:\n  api_endpoint:\n    model_id: meta/llama-3.1-8b-instruct\n    url: https://integrate.api.nvidia.com/v1/chat/completions\n    api_key_name: NGC_API_KEY\n```\n\nFor self-hosted endpoints (vLLM, TRT-LLM):\n```yaml\ntarget:\n  api_endpoint:\n    model_id: my-model\n    url: http://localhost:8000/v1/chat/completions\n    api_key_name: \"\"  # No key needed for local\n```\n\n**Step 2: Select benchmarks**\n\nAdd tasks to your config:\n```yaml\nevaluation:\n  tasks:\n    - name: ifeval           # Instruction following\n    - name: gpqa_diamond     # Graduate-level QA\n      env_vars:\n        HF_TOKEN: HF_TOKEN   # Some tasks need HF token\n    - name: gsm8k_cot_instruct  # Math reasoning\n    - name: humaneval        # Code generation\n```\n\n**Step 3: Run evaluation**\n\n```bash\n# Run with config file\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name config\n\n# Override output directory\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name config \\\n  -o execution.output_dir=./my_results\n\n# Limit samples for quick testing\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name config \\\n  -o +evaluation.nemo_evaluator_config.config.params.limit_samples=10\n```\n\n**Step 4: Check results**\n\n```bash\n# Check job status\nnemo-evaluator-launcher status <invocation_id>\n\n# List all runs\nnemo-evaluator-launcher ls runs\n\n# View results\ncat results/<invocation_id>/<task>/artifacts/results.yml\n```\n\n### Workflow 2: Run Evaluation on Slurm HPC Cluster\n\nExecute large-scale evaluation on HPC infrastructure.\n\n**Checklist**:\n```\nSlurm Evaluation:\n- [ ] Step 1: Configure Slurm settings\n- [ ] Step 2: Set up model deployment\n- [ ] Step 3: Launch evaluation\n- [ ] Step 4: Monitor job status\n```\n\n**Step 1: Configure Slurm settings**\n\n```yaml\n# slurm_config.yaml\ndefaults:\n  - execution: slurm\n  - deployment: vllm\n  - _self_\n\nexecution:\n  hostname: cluster.example.com\n  account: my_slurm_account\n  partition: gpu\n  output_dir: /shared/results\n  walltime: \"04:00:00\"\n  nodes: 1\n  gpus_per_node: 8\n```\n\n**Step 2: Set up model deployment**\n\n```yaml\ndeployment:\n  checkpoint_path: /shared/models/llama-3.1-8b\n  tensor_parallel_size: 2\n  data_parallel_size: 4\n  max_model_len: 4096\n\ntarget:\n  api_endpoint:\n    model_id: llama-3.1-8b\n    # URL auto-generated by deployment\n```\n\n**Step 3: Launch evaluation**\n\n```bash\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name slurm_config\n```\n\n**Step 4: Monitor job status**\n\n```bash\n# Check status (queries sacct)\nnemo-evaluator-launcher status <invocation_id>\n\n# View detailed info\nnemo-evaluator-launcher info <invocation_id>\n\n# Kill if needed\nnemo-evaluator-launcher kill <invocation_id>\n```\n\n### Workflow 3: Compare Multiple Models\n\nBenchmark multiple models on the same tasks for comparison.\n\n**Checklist**:\n```\nModel Comparison:\n- [ ] Step 1: Create base config\n- [ ] Step 2: Run evaluations with overrides\n- [ ] Step 3: Export and compare results\n```\n\n**Step 1: Create base config**\n\n```yaml\n# base_eval.yaml\ndefaults:\n  - execution: local\n  - deployment: none\n  - _self_\n\nexecution:\n  output_dir: ./comparison_results\n\nevaluation:\n  nemo_evaluator_config:\n    config:\n      params:\n        temperature: 0.01\n        parallelism: 4\n  tasks:\n    - name: mmlu_pro\n    - name: gsm8k_cot_instruct\n    - name: ifeval\n```\n\n**Step 2: Run evaluations with model overrides**\n\n```bash\n# Evaluate Llama 3.1 8B\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name base_eval \\\n  -o target.api_endpoint.model_id=meta/llama-3.1-8b-instruct \\\n  -o target.api_endpoint.url=https://integrate.api.nvidia.com/v1/chat/completions\n\n# Evaluate Mistral 7B\nnemo-evaluator-launcher run \\\n  --config-dir . \\\n  --config-name base_eval \\\n  -o target.api_endpoint.model_id=mistralai/mistral-7b-instruct-v0.3 \\\n  -o target.api_endpoint.url=https://integrate.api.nvidia.com/v1/chat/completions\n```\n\n**Step 3: Export and compare**\n\n```bash\n# Export to MLflow\nnemo-evaluator-launcher export <invocation_id_1> --dest mlflow\nnemo-evaluator-launcher export <invocation_id_2> --dest mlflow\n\n# Export to local JSON\nnemo-evaluator-launcher export <invocation_id> --dest local --format json\n\n# Export to Weights & Biases\nnemo-evaluator-launcher export <invocation_id> --dest wandb\n```\n\n### Workflow 4: Safety and Vision-Language Evaluation\n\nEvaluate models on safety benchmarks and VLM tasks.\n\n**Checklist**:\n```\nSafety/VLM Evaluation:\n- [ ] Step 1: Configure safety tasks\n- [ ] Step 2: Set up VLM tasks (if applicable)\n- [ ] Step 3: Run evaluation\n```\n\n**Step 1: Configure safety tasks**\n\n```yaml\nevaluation:\n  tasks:\n    - name: aegis              # Safety harness\n    - name: wildguard          # Safety classification\n    - name: garak              # Security probing\n```\n\n**Step 2: Configure VLM tasks**\n\n```yaml\n# For vision-language models\ntarget:\n  api_endpoint:\n    type: vlm  # Vision-language endpoint\n    model_id: nvidia/llama-3.2-90b-vision-instruct\n    url: https://integrate.api.nvidia.com/v1/chat/completions\n\nevaluation:\n  tasks:\n    - name: ocrbench           # OCR evaluation\n    - name: chartqa            # Chart understanding\n    - name: mmmu               # Multimodal understanding\n```\n\n## When to Use vs Alternatives\n\n**Use NeMo Evaluator when:**\n- Need **100+ benchmarks** from 18+ harnesses in one platform\n- Running evaluations on **Slurm HPC clusters** or cloud\n- Requiring **reproducible** containerized evaluation\n- Evaluating against **OpenAI-compatible APIs** (vLLM, TRT-LLM, NIMs)\n- Need **enterprise-grade** evaluation with result export (MLflow, W&B)\n\n**Use alternatives instead:**\n- **lm-evaluation-harness**: Simpler setup for quick local evaluation\n- **bigcode-evaluation-harness**: Focused only on code benchmarks\n- **HELM**: Stanford's broader evaluation (fairness, efficiency)\n- **Custom scripts**: Highly specialized domain evaluation\n\n## Supported Harnesses and Tasks\n\n| Harness | Task Count | Categories |\n|---------|-----------|------------|\n| `lm-evaluation-harness` | 60+ | MMLU, GSM8K, HellaSwag, ARC |\n| `simple-evals` | 20+ | GPQA, MATH, AIME |\n| `bigcode-evaluation-harness` | 25+ | HumanEval, MBPP, MultiPL-E |\n| `safety-harness` | 3 | Aegis, WildGuard |\n| `garak` | 1 | Security probing |\n| `vlmevalkit` | 6+ | OCRBench, ChartQA, MMMU |\n| `bfcl` | 6 | Function calling v2/v3 |\n| `mtbench` | 2 | Multi-turn conversation |\n| `livecodebench` | 10+ | Live coding evaluation |\n| `helm` | 15 | Medical domain |\n| `nemo-skills` | 8 | Math, science, agentic |\n\n## Common Issues\n\n**Issue: Container pull fails**\n\nEnsure NGC credentials are configured:\n```bash\ndocker login nvcr.io -u '$oauthtoken' -p $NGC_API_KEY\n```\n\n**Issue: Task requires environment variable**\n\nSome tasks need HF_TOKEN or JUDGE_API_KEY:\n```yaml\nevaluation:\n  tasks:\n    - name: gpqa_diamond\n      env_vars:\n        HF_TOKEN: HF_TOKEN  # Maps env var name to env var\n```\n\n**Issue: Evaluation timeout**\n\nIncrease parallelism or reduce samples:\n```bash\n-o +evaluation.nemo_evaluator_config.config.params.parallelism=8\n-o +evaluation.nemo_evaluator_config.config.params.limit_samples=100\n```\n\n**Issue: Slurm job not starting**\n\nCheck Slurm account and partition:\n```yaml\nexecution:\n  account: correct_account\n  partition: gpu\n  qos: normal  # May need specific QOS\n```\n\n**Issue: Different results than expected**\n\nVerify configuration matches reported settings:\n```yaml\nevaluation:\n  nemo_evaluator_config:\n    config:\n      params:\n        temperature: 0.0  # Deterministic\n        num_fewshot: 5    # Check paper's fewshot count\n```\n\n## CLI Reference\n\n| Command | Description |\n|---------|-------------|\n| `run` | Execute evaluation with config |\n| `status <id>` | Check job status |\n| `info <id>` | View detailed job info |\n| `ls tasks` | List available benchmarks |\n| `ls runs` | List all invocations |\n| `export <id>` | Export results (mlflow/wandb/local) |\n| `kill <id>` | Terminate running job |\n\n## Configuration Override Examples\n\n```bash\n# Override model endpoint\n-o target.api_endpoint.model_id=my-model\n-o target.api_endpoint.url=http://localhost:8000/v1/chat/completions\n\n# Add evaluation parameters\n-o +evaluation.nemo_evaluator_config.config.params.temperature=0.5\n-o +evaluation.nemo_evaluator_config.config.params.parallelism=8\n-o +evaluation.nemo_evaluator_config.config.params.limit_samples=50\n\n# Change execution settings\n-o execution.output_dir=/custom/path\n-o execution.mode=parallel\n\n# Dynamically set tasks\n-o 'evaluation.tasks=[{name: ifeval}, {name: gsm8k}]'\n```\n\n## Python API Usage\n\nFor programmatic evaluation without the CLI:\n\n```python\nfrom nemo_evaluator.core.evaluate import evaluate\nfrom nemo_evaluator.api.api_dataclasses import (\n    EvaluationConfig,\n    EvaluationTarget,\n    ApiEndpoint,\n    EndpointType,\n    ConfigParams\n)\n\n# Configure evaluation\neval_config = EvaluationConfig(\n    type=\"mmlu_pro\",\n    output_dir=\"./results\",\n    params=ConfigParams(\n        limit_samples=10,\n        temperature=0.0,\n        max_new_tokens=1024,\n        parallelism=4\n    )\n)\n\n# Configure target endpoint\ntarget_config = EvaluationTarget(\n    api_endpoint=ApiEndpoint(\n        model_id=\"meta/llama-3.1-8b-instruct\",\n        url=\"https://integrate.api.nvidia.com/v1/chat/completions\",\n        type=EndpointType.CHAT,\n        api_key=\"nvapi-your-key-here\"\n    )\n)\n\n# Run evaluation\nresult = evaluate(eval_cfg=eval_config, target_cfg=target_config)\n```\n\n## Advanced Topics\n\n**Multi-backend execution**: See [references/execution-backends.md](references/execution-backends.md)\n**Configuration deep-dive**: See [references/configuration.md](references/configuration.md)\n**Adapter and interceptor system**: See [references/adapter-system.md](references/adapter-system.md)\n**Custom benchmark integration**: See [references/custom-benchmarks.md](references/custom-benchmarks.md)\n\n## Requirements\n\n- **Python**: 3.10-3.13\n- **Docker**: Required for local execution\n- **NGC API Key**: For pulling containers and using NVIDIA Build\n- **HF_TOKEN**: Required for some benchmarks (GPQA, MMLU)\n\n## Resources\n\n- **GitHub**: https://github.com/NVIDIA-NeMo/Evaluator\n- **NGC Containers**: nvcr.io/nvidia/eval-factory/\n- **NVIDIA Build**: https://build.nvidia.com (free hosted models)\n- **Documentation**: https://github.com/NVIDIA-NeMo/Evaluator/tree/main/docs","author":"@Orchestra-Research","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/Orchestra-Research/AI-Research-SKILLs/tree/main/11-evaluation/nemo-evaluator","license":"MIT","category":"devops","lang":"en","tokens":3156,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"references/adapter-system.md","size":9468,"sha256":"b28d7df8c090c7ce6061b16b0e436640945e6cf7a84e2e0e6a06ba4d18845b0a"},{"path":"references/configuration.md","size":9567,"sha256":"36e716ee8b988acf67d781940a8346ea4204591601714504a003e95dd674f45e"},{"path":"references/custom-benchmarks.md","size":7101,"sha256":"f20a0d0006f5aba39328eaf528fe3e4cfb1a1d23143a6d0fe90f7c2d890620a3"},{"path":"references/execution-backends.md","size":9351,"sha256":"9b4a6fd37c72bb0d983c2e01387a3e9584e7fe5af5f50d467cbe255a175aa03d"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":["api.lepton.ai","build.nvidia.com","integrate.api.nvidia.com"]}}