コンテンツにスキップ
日本語

EBench Docs

チャレンジ

EBench Challenge では benchmark 結果のオンライン提出をサポートしています。以下の手順に従って有効な実行を準備し、リーダーボードサービスに提出してください。

オンライン提出の前に、まず benchmark をローカルで実行できることを確認してください。

オンライン提出を行う前に、ローカル実行が正常に終了し、完全な結果ディレクトリが生成されることを確認してください。

オンラインのワークフローは 3 段階です。オンラインタスクを作成し、評価 endpoint の準備完了を待ち、その endpoint に対して評価 worker を実行します。

プラットフォームのランディングページを開きます。

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

その後:

  1. プラットフォームにサインインします。
  2. API key または secret 管理ページを開きます。
  3. 新しい API key を作成し、token の値をコピーします。

2. クライアント環境を準備する

Section titled “2. クライアント環境を準備する”
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 .

3. オンライン評価タスクを作成する

Section titled “3. オンライン評価タスクを作成する”

gmp online submit を使ってリモート評価ジョブをリクエストします。

Terminal window
gmp online submit \
--base_url https://internrobotics.shlab.org.cn/eval \
--token "$EBENCH_SUBMIT_TOKEN" \
--task_id "$PREVIOUS_TASK" \ # optional: continue with a 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ベンチマークセットタイプ、現在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"
}
}
}

次の 2 つの値を記録してください。

  • task_id: 評価実行時に run_id として使用します。
  • endpoint: リモート評価 URL として使用します。

Demo: endpointtask_id を自動抽出する

Section titled “Demo: endpoint と task_id を自動抽出する”

次の例では、簡略化した 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 に対して evaluator を実行します。これはテスト評価です。ドキュメントに従ってあなた自身のモデル評価を作成してください。

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:
# チャンク全体のアクションを生成
action_chunk = model.get_action_chunk(obs)
# サーバーがチャンクを内部的に実行; 次の再推論ポイントで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の同時ワーカーをサポートします。接続は10分の非アクティブ状態後に終了されます。同じ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.0 から 1.0 の範囲のタスクスコアを生成します。
  • 該当の episode 内で要求された目標条件を達成した場合、タスクは満点となります。それ以外の場合は 0.0 となります。
  • リーダーボードのスコアは、提出された benchmark セット内の評価された episode のタスクスコアの平均値です。
  • タスクごとの成功条件の詳細については タスクショーケース を参照してください。各タスクには LocationInstructionScore の説明が記載されています。
  • Baseline または独自モデルがローカルで動作する
  • 正しい benchmark track と split を選択している
  • 提出 token を設定済み
  • オンライン提出 URL を確認済み
  • 結果ファイルの準備が完了している