任务、Trial 与 Job
Runner 定义执行入口,Task 是 Dataset 中的评测题目,Trial 记录一次执行,Job 组织一个固定 Dataset 的多次任务执行。 CLI / SDK 是客户端,平台负责校验、冻结输入、执行、评分与产物管理。
| 概念 | 含义 | 使用方式 |
|---|---|---|
| Runner | runner.toml 与 main.py / main.sh 组成的可复用执行包 | 两文件目录或 runner="envhub/harbor" |
| Task | Dataset 中包含指令、环境、参考解答和 verifier 的评测题目 | dataset={"name": "org/bench", "task_id": "org/task"} |
| Trial | 一个固定 Task 的一次执行,有 trial_id | el task status TRIAL_ID |
| Dataset | 版本化任务集合;选择 config / split 后冻结成员 | el job submit --dataset NAME |
| Job | 一次集合执行,有 job_id,组织成员 Trial 和 attempts | client.jobs.submit(...) |
| Profile | 执行参数模板;提交后保存快照,不是运行资源 | profile={...} 或命名 Profile |
| Artifact | stdout / stderr 之外的输出文件及哈希 | client.tasks.result(...) |
State and score
Trial 等待终态为 succeeded、failed、cancelled。Job 等待终态为 completed、failed、cancelled;Job completed 表示集合执行结束,仍应检查各 Trial 和评分结果。
执行成功不等于评测成功:benchmark 的 verifier reward 独立记录。未产生评分不能推断为 0 或 1,也不要从 stdout 猜分。Job 的聚合结果应通过 jobs.result() 读取。
Frozen inputs and retries
平台首次接受提交时冻结任务内容、Dataset 选择与参数。重用 request_id 是重试原请求,返回首次提交的执行,不更新其输入。改变参数、有意重跑时使用新 request_id;未提供时 SDK 自动生成。
省略 Dataset version 由平台按其固定来源和默认规则解析,不能理解为客户端自动选择 latest。可复现运行应记录响应中的版本、来源快照、Profile、依赖环境及产物哈希。
Local and remote
远程模式连接已有平台,关闭客户端不会停止服务器或已提交工作。本地模式创建进程内服务,关闭时等待已接受工作结束;本地 Task 直接执行可信脚本,不是安全隔离沙箱。
未绑定 repository 的本地状态只存在于当前服务实例。绑定 repository 的已完成回执可由新客户端读取;运行中状态不会跨进程恢复。
Training boundary
Train Job 是独立训练资源,使用 train_job_id,不属于 Agent Job / Task / Trial。源码 CLI 通过远程 API 提供 el train submit/status,支持独立 Train Job 的提交与状态查询;Client 仍无 client.train 入口,envloop 尚未直接集成 Tinker SDK。真实 GPU 训练尚未验收。支持情况见 Resources。