Aller au contenu
Français

EBench Docs

Challenge

La challenge EBench prend en charge la soumission en ligne des resultats de benchmark. Suivez les etapes ci-dessous pour preparer une execution valide et la soumettre au service de classement.

Avant de soumettre en ligne, assurez-vous de pouvoir executer le benchmark en local :

Vous devez verifier que votre execution locale se termine correctement et produit un dossier de resultats complet avant de tenter une soumission en ligne.

Le flux en ligne comporte trois etapes : creer une tache en ligne, attendre l’endpoint d’evaluation, puis executer les workers d’evaluation sur cet endpoint.

Ouvrez la page d’accueil de la plateforme :

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

Ensuite :

  1. Connectez-vous a la plateforme.
  2. Ouvrez la page de gestion des API keys ou des secrets.
  3. Creez une nouvelle API key et copiez la valeur du token.
Fenêtre de terminal
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 .

Utilisez gmp online submit pour demander une tache d’evaluation distante :

Fenêtre de terminal
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
ParamètreTypeExempleDescription
task_idstringT2025123100001Optionnel, peut inclure le task_id précédent pour ré-exécution de tâche
model_namestringinternVLANom du modèle
model_typestringVLAType de modèle
benchmark_setstringEBenchType d’ensemble de benchmark, actuellement seulement ebench_generalist est autorisé
submitter_namestringSHlabNom d’organisation/développeur
submitter_homepagestringhttp://example.comPage d’accueil du soumissionnaire
is_publicint0Si public
0 Non
1 Oui

Une fois la tache backend prete, la commande renvoie des champs comme ceux-ci :

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"
}
}
}

Conservez ces deux valeurs :

  • task_id : utilisez-le comme run_id lors de l’execution de l’evaluation.
  • endpoint : utilisez-le comme URL d’evaluation distante.

Demo : extraire automatiquement endpoint et task_id

Section intitulée « Demo : extraire automatiquement endpoint et task_id »

L’exemple suivant utilise un script Python simplifie pour executer gmp online submit et extraire endpoint ainsi que task_id a partir de la sortie renvoyee :

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

Une fois le script execute, endpoint et task_id sont affiches directement. Vous pouvez ensuite les reutiliser dans l’appel du worker d’evaluation.

Executez l’evaluateur sur l’endpoint renvoye. Ceci est une evaluation de test. Suivez la documentation pour creer votre propre evaluation de modele.

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:
# Generer des actions pour le chunk entier
action_chunk = model.get_action_chunk(obs)
# Le serveur execute le chunk en interne; retourne obs au prochain point de re-inference
obs, done = client.step(action_chunk)
finally:
client.close()

Vous pouvez demarrer plusieurs eval clients avec des IDs differents. Par exemple:

client = EvalClient(
base_url=endpoint,
token=os.environ['EBENCH_SUBMIT_TOKEN'],
run_id=task_id,
worker_ids=["1"]
)
...

Le serveur prend en charge jusqu’à 16 travailleurs simultanés par exécution. Les connexions seront terminées après dix minutes d’inactivité. Vous pouvez redémarrer une soumission d’évaluation échouée en utilisant le même task_id.

Fenêtre de terminal
# redémarrer la tâche ci-dessus
gmp online submit \
--base_url https://internrobotics.shlab.org.cn/eval \
--token "$EBENCH_SUBMIT_TOKEN" \
--task_id 9ea5fb6ae980430da626958c4433ea18 \
# ...

Si vous rencontrez des délais d’attente de connexion, redémarrez le client pour récupérer. La progression sera sauvegardée sur le serveur.

Une fois la tache en ligne creee, la page de la plateforme affichera la tache correspondante. Les sorties finales de l’evaluation sont ecrites dans le meme enregistrement de tache distante.

Vous pouvez egalement verifier l’etat du serveur et la progression de la tache a partir du terminal.

Fenêtre de terminal
gmp status \
--url "$EBENCH_ONLINE_ENDPOINT" \
--token "$EBENCH_SUBMIT_TOKEN" \
--run_id "$EBENCH_TASK_ID"

Arrêtez une session d’évaluation avec :

gmp online stop \
--url "$EBENCH_ONLINE_ENDPOINT" \
--token "$EBENCH_SUBMIT_TOKEN" \
--run_id "$EBENCH_TASK_ID" \
--user_id "$USER_ID" # obtenir depuis le site web, votre page de compte

Creez les taches via l’URL de base officielle de la plateforme :

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

Apres gmp online submit, utilisez l’endpoint renvoye pour cette tache afin d’effectuer l’evaluation :

https://internverse.shlab.org.cn/evalserver/<task-endpoint>
  • Chaque episode evalue produit un score de tache compris entre 0.0 et 1.0.
  • Une tache obtient le score maximal lorsque la condition d’objectif requise est remplie au cours de l’episode ; sinon, elle obtient 0.0.
  • Le score du classement est la moyenne des scores de tache sur les episodes evalues dans l’ensemble de benchmark soumis.
  • Pour la semantique de reussite specifique a chaque tache, consultez Vitrine des taches, ou chaque tache inclut sa description Location, Instruction et Score.
  • Baseline ou modele personnalise execute en local
  • Track et split corrects selectionnes
  • Token de soumission configure
  • URL de soumission en ligne confirmee
  • Fichiers de resultats prets pour l’envoi