[ PROMPT_NODE_22402 ]
execution-backends
[ SKILL_DOCUMENTATION ]
# 执行后端
NeMo Evaluator 支持三种执行后端:本地 (Docker)、Slurm (HPC) 和 Lepton (云)。每个后端实现相同的接口,但具有不同的配置要求。
## 后端架构
┌─────────────────────────────────────────────────────────────┐
│ nemo-evaluator-launcher │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ LocalExecutor │ │ SlurmExecutor │ │ LeptonExecutor│ │
│ │ (Docker) │ │ (SSH+sbatch)│ │ (Cloud API) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
└───────────┼────────────────┼─────────────────┼───────────────┘
│ │ │
▼ ▼ ▼
┌─────────┐ ┌───────────┐ ┌────────────┐
│ Docker │ │ Slurm │ │ Lepton AI │
│ Engine │ │ Cluster │ │ Platform │
└─────────┘ └───────────┘ └────────────┘
## 本地执行器 (Docker)
本地执行器使用 Docker 在您的本地机器上运行评估容器。
### 先决条件
- 已安装并运行 Docker
- PATH 中有 `docker` 命令
- 用于 GPU 任务的 GPU 驱动程序和 nvidia-container-toolkit
### 配置
yaml
defaults:
- execution: local
- deployment: none
- _self_
execution:
output_dir: ./results
mode: sequential # 或 parallel
# Docker 特定选项
docker_args:
- "--gpus=all"
- "--shm-size=16g"
# 容器资源限制
memory_limit: "64g"
cpus: 8
### 工作原理
1. 启动器读取 `mapping.toml` 以查找任务的容器镜像
2. 创建运行配置并挂载卷
3. 通过子进程执行 `docker run`
4. 监控阶段文件 (`stage.pre-start`, `stage.running`, `stage.exit`)
5. 从挂载的输出目录收集结果
### 使用示例
bash
# 简单的本地评估
nemo-evaluator-launcher run
--config-dir .
--config-name local_config
# 带 GPU 分配
nemo-evaluator-launcher run
--config-dir .
--config-name local_config
-o 'execution.docker_args=["--gpus=all"]'
### 状态跟踪
状态通过输出目录中的文件标记进行跟踪:
| 文件 | 含义 |
|------|---------|
| `stage.pre-start` | 容器启动中 |
| `stage.running` | 评估进行中 |