EBench Docs
挑战赛
EBench 挑战 支持在线提交 benchmark 结果。请按照以下步骤准备有效运行,并提交到排行榜服务。
Baseline 与快速开始
Section titled “Baseline 与快速开始”在进行在线提交前,请先确保你可以在本地跑通 benchmark:
- Set up the server and client environments in 环境配置.
- Prepare the required benchmark assets from 资产与数据集.
- Run a local benchmark first with 运行评测.
- If you use your own policy, follow 接入自定义模型.
建议先确认本地运行能够正常结束,并生成完整的结果目录,再进行在线提交。
在线提交步骤
Section titled “在线提交步骤”在线提交流程分为三个阶段:创建在线任务、等待评测 endpoint 就绪,以及让评测 worker 连接该 endpoint 运行。
1. 获取 token
Section titled “1. 获取 token”打开平台首页:
https://internrobotics.shlab.org.cn/eval/landing-page然后:
- 登录平台。
- 打开 API key 或密钥管理页面。
- 创建新的 API key,并复制 token。
2. 准备客户端环境
Section titled “2. 准备客户端环境”git clone https://gitee.pjlab.org.cn/L2/MultimodalVLA/GenManip-Client.gitcd GenManip-Clientconda create -n client python=3.11 -yconda activate clientpip install -e .3. 创建在线评测任务
Section titled “3. 创建在线评测任务”使用 gmp online submit 请求一个远端评测任务:
gmp online submit \ --base_url https://internrobotics.shlab.org.cn/eval \ --token "$EBENCH_SUBMIT_TOKEN" \ --task_id "$PREVIOUS_TASK" \ # 可选:继续使用之前的任务 --benchmark_set ebench_generalist \ --model_name internVLA \ --model_type VLA \ --submitter_name test \ --submitter_homepage test \ --is_public 0| 参数 | 类型 | 示例 | 说明 |
|---|---|---|---|
| task_id | string | T2025123100001 | 选填,任务重新执行可带入上一次task_id |
| model_name | string | internVLA | 模型名称 |
| model_type | string | VLA | 模型类型 |
| benchmark_set | string | ebench_generalist | 评测集类型,目前只允许填 ebench_generalist |
| submitter_name | string | SHlab | 机构/开发者名称 |
| submitter_homepage | string | http://example.com | 提交者主页 |
| is_public | int | 0 | 是否公开 0 否 1 是 |
后端任务准备完成后,命令会返回如下字段:
Waiting for available server (task_id=b5dddc6de60c4aec8236500b8e3dc0e1)...Still waiting... elapsed 0.1s. Next check in 5.0s.Still waiting... elapsed 5.3s. Next check in 5.0s.Ready after 10.4s. endpoint=https://internverse.shlab.org.cn/eval-server/2813aea1/api/predict/embodied_eval.genmanip_eas_1_master_prod{ "task_id": "b5dddc6de60c4aec8236500b8e3dc0e1", "endpoint": "https://internverse.shlab.org.cn/eval-server/2813aea1/api/predict/embodied_eval.genmanip_eas_1_master_prod", "response": { "code": 0, "msg": "success", "trace_id": "4a4136c66bdc80922ccc6485c44fa9e5", "data": { "ready": true, "endpoint": "https://internverse.shlab.org.cn/eval-server/2813aea1/api/predict/embodied_eval.genmanip_eas_1_master_prod" } }}请记录这两个值:
task_id:在运行评测时作为run_id使用。endpoint:作为远端评测 URL 使用。
Demo:自动提取 endpoint 和 task_id
Section titled “Demo:自动提取 endpoint 和 task_id”下面的示例使用一个简化的 Python 脚本来执行 gmp online submit,并从返回输出中提取 endpoint 和 task_id:
import osimport jsonimport subprocess
def submit_online_task() -> tuple[str, str]: cmd = [ 'gmp', 'online', 'submit', '--base_url', 'https://internrobotics.shlab.org.cn/eval', '--token', os.environ['EBENCH_SUBMIT_TOKEN'], '--benchmark_set', 'ebench_generalist', '--model_name', 'internVLA', '--model_type', 'VLA', '--submitter_name', 'test', '--submitter_homepage', 'test', '--is_public', '0', ]
result = subprocess.run(cmd, capture_output=True, text=True, check=True) output = result.stdout json_start = output.find('{') payload = json.loads(output[json_start:]) endpoint = payload['endpoint'] task_id = payload['task_id'] print('endpoint=' + endpoint) print('task_id=' + task_id) return endpoint, task_id脚本运行后会直接打印出 endpoint 和 task_id,后续调用评测 worker 时可以直接使用它们。
4. 启动评测 worker
Section titled “4. 启动评测 worker”让评测器连接返回的 endpoint 运行。这是一个测试评测。按照文档说明来创建你自己的模型评测。
endpoint, task_id = submit_online_task()
client = EvalClient( base_url=endpoint, token=os.environ['EBENCH_SUBMIT_TOKEN'], run_id=task_id, worker_ids=["0"])model = ModelClient(...)
try: obs = client.reset() done = False while not done: # 生成整个chunk的动作 action_chunk = model.get_action_chunk(obs) # 服务器在内部执行chunk; 在下一个重新推理点返回obs obs, done = client.step(action_chunk)finally: client.close()你可以启动多个不同 ID 的评测客户端。例如:
client = EvalClient( base_url=endpoint, token=os.environ['EBENCH_SUBMIT_TOKEN'], run_id=task_id, worker_ids=["1"])...服务器每个运行最多支持16个并发worker。连接在闲置十分钟后将被断开。您可以使用相同的task_id重新启动失败的评估提交。
# 重新启动上述任务gmp online submit \ --base_url https://internrobotics.shlab.org.cn/eval \ --token "$EBENCH_SUBMIT_TOKEN" \ --task_id 9ea5fb6ae980430da626958c4433ea18 \ # ...如果遇到连接超时问题,请重启客户端以恢复连接。进度将保存在服务器上。
5. 监控任务状态
Section titled “5. 监控任务状态”在线任务创建完成后,平台页面会显示对应任务。最终评测输出会写入同一个远端任务记录。
你也可以从终端检查服务器状态和任务进度。
gmp status \ --url "$EBENCH_ONLINE_ENDPOINT" \ --token "$EBENCH_SUBMIT_TOKEN" \ --run_id "$EBENCH_TASK_ID"6. 停止任务
Section titled “6. 停止任务”停止评测会话:
gmp online stop \ --url "$EBENCH_ONLINE_ENDPOINT" \ --token "$EBENCH_SUBMIT_TOKEN" \ --run_id "$EBENCH_TASK_ID" \ --user_id "$USER_ID" # 从网站获取,你的账户页面在线提交 URL
Section titled “在线提交 URL”通过官方平台 base URL 创建任务:
https://internrobotics.shlab.org.cn/eval执行 gmp online submit 后,使用返回的任务专属 endpoint 进行评测:
https://internverse.shlab.org.cn/evalserver/<task-endpoint>- 每个评测 episode 都会产生一个
0.0到1.0之间的任务得分。 - 若该 episode 在规定时间内完成了要求的目标条件,则该任务记为满分;否则记为
0.0。 - 榜单分数是所提交 benchmark 集合中所有评测 episode 任务得分的平均值。
- 更具体的任务成功定义可参考 任务展示,其中为每个任务补充了
Location、Instruction和Score说明。
示例检查清单
Section titled “示例检查清单”- Baseline 或自定义模型已在本地跑通
- 已选择正确的 benchmark 赛道和 split
- 已配置提交 token
- 已确认在线提交 URL
- 结果文件已准备完成