跳转到内容
简体中文

EBench Docs

挑战赛

EBench 挑战 支持在线提交 benchmark 结果。请按照以下步骤准备有效运行,并提交到排行榜服务。

在进行在线提交前,请先确保你可以在本地跑通 benchmark:

建议先确认本地运行能够正常结束,并生成完整的结果目录,再进行在线提交。

在线提交流程分为三个阶段:创建在线任务、等待评测 endpoint 就绪,以及让评测 worker 连接该 endpoint 运行。

打开平台首页:

https://internrobotics.shlab.org.cn/eval/landing-page

然后:

  1. 登录平台。
  2. 打开 API key 或密钥管理页面。
  3. 创建新的 API key,并复制 token。
Terminal window
git clone https://gitee.pjlab.org.cn/L2/MultimodalVLA/GenManip-Client.git
cd GenManip-Client
conda create -n client python=3.11 -y
conda activate client
pip install -e .

使用 gmp online submit 请求一个远端评测任务:

Terminal window
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_idstringT2025123100001选填,任务重新执行可带入上一次task_id
model_namestringinternVLA模型名称
model_typestringVLA模型类型
benchmark_setstringebench_generalist评测集类型,目前只允许填 ebench_generalist
submitter_namestringSHlab机构/开发者名称
submitter_homepagestringhttp://example.com提交者主页
is_publicint0是否公开
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 使用。

下面的示例使用一个简化的 Python 脚本来执行 gmp online submit,并从返回输出中提取 endpointtask_id

import os
import json
import 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

脚本运行后会直接打印出 endpointtask_id,后续调用评测 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重新启动失败的评估提交。

Terminal window
# 重新启动上述任务
gmp online submit \
--base_url https://internrobotics.shlab.org.cn/eval \
--token "$EBENCH_SUBMIT_TOKEN" \
--task_id 9ea5fb6ae980430da626958c4433ea18 \
# ...

如果遇到连接超时问题,请重启客户端以恢复连接。进度将保存在服务器上。

在线任务创建完成后,平台页面会显示对应任务。最终评测输出会写入同一个远端任务记录。

你也可以从终端检查服务器状态和任务进度。

Terminal window
gmp status \
--url "$EBENCH_ONLINE_ENDPOINT" \
--token "$EBENCH_SUBMIT_TOKEN" \
--run_id "$EBENCH_TASK_ID"

停止评测会话:

gmp online stop \
--url "$EBENCH_ONLINE_ENDPOINT" \
--token "$EBENCH_SUBMIT_TOKEN" \
--run_id "$EBENCH_TASK_ID" \
--user_id "$USER_ID" # 从网站获取,你的账户页面

通过官方平台 base URL 创建任务:

https://internrobotics.shlab.org.cn/eval

执行 gmp online submit 后,使用返回的任务专属 endpoint 进行评测:

https://internverse.shlab.org.cn/evalserver/<task-endpoint>
  • 每个评测 episode 都会产生一个 0.01.0 之间的任务得分。
  • 若该 episode 在规定时间内完成了要求的目标条件,则该任务记为满分;否则记为 0.0
  • 榜单分数是所提交 benchmark 集合中所有评测 episode 任务得分的平均值。
  • 更具体的任务成功定义可参考 任务展示,其中为每个任务补充了 LocationInstructionScore 说明。
  • Baseline 或自定义模型已在本地跑通
  • 已选择正确的 benchmark 赛道和 split
  • 已配置提交 token
  • 已确认在线提交 URL
  • 结果文件已准备完成