name: metaworld
description: Benchmark de robotique pour l'apprentissage multi-tâche et méta-renforcement (Meta-World). Benchmark standardisé de contrôle continu construit sur Gymnasium avec les suites multi-tâche MT1, MT10, MT50 et les suites méta-apprentissage ML1, ML10, ML45. Supporte l'exécution vectorisée synchrone et asynchrone. À utiliser pour l'évaluation de la manipulation robotique, l'apprentissage par renforcement multi-tâche, l'adaptation méta-RL et l'évaluation de la généralisation entre tâches et objectifs.
license: MIT license
tags: [robotic-manipulation, multi-task-rl, meta-rl, continuous-control, metaworld]
metadata:
skill-author: K-Dense Inc.
--------|---------|------|
| MT1 | Apprentissage multi-tâche sur une famille de tâches sélectionnée | 1 tâche |
| MT10 | Apprentissage multi-tâche sur 10 tâches de manipulation | 10 tâches |
| MT50 | Benchmark multi-tâche large | 50 tâches |
| ML1-train/test | Méta-apprentissage avec variation d'objectif dans une famille de tâches | 1 famille |
| ML10-train/test | Méta-apprentissage avec séparation train/test entre tâches | 10 train + 5 test |
| ML45-train/test | Séparation méta-apprentissage à grande échelle | 45 train + 5 test |
4. Benchmarks multi-tâche
MT1:
import gymnasium as gym
import metaworld
env = gym.make("Meta-World/MT1", env_name="reach-v3", seed=42)
obs, info = env.reset()
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
MT10 vectorisé synchrone:
import gymnasium as gym
import metaworld
envs = gym.make_vec("Meta-World/MT10", vector_strategy="sync", seed=42)
obs, info = envs.reset()
actions = envs.action_space.sample()
obs, rewards, terminations, truncations, infos = envs.step(actions)
MT10 vectorisé asynchrone:
envs = gym.make_vec("Meta-World/MT10", vector_strategy="async", seed=42)
MT50:
envs = gym.make_vec("Meta-World/MT50", vector_strategy="sync", seed=42)
5. Benchmarks méta-apprentissage
ML1:
import gymnasium as gym
import metaworld
train_env = gym.make("Meta-World/ML1-train", env_name="reach-v3", seed=42)
test_env = gym.make("Meta-World/ML1-test", env_name="reach-v3", seed=42)
ML10 / ML45:
train_envs = gym.make_vec("Meta-World/ML10-train", vector_strategy="sync", seed=42)
test_envs = gym.make_vec("Meta-World/ML10-test", vector_strategy="sync", seed=42)
train_envs = gym.make_vec("Meta-World/ML45-train", vector_strategy="async", seed=42)
test_envs = gym.make_vec("Meta-World/ML45-test", vector_strategy="async", seed=42)
6. Benchmarks personnalisés
Créez votre propre benchmark multi-tâche ou méta-apprentissage :
import gymnasium as gym
import metaworld
envs = gym.make_vec(
"Meta-World/custom-mt-envs",
vector_strategy="sync",
envs_list=["reach-v3", "push-v3", "drawer-open-v3"],
seed=42,
)
meta_envs = gym.make_vec(
"Meta-World/custom-ml-envs",
vector_strategy="async",
envs_list=["reach-v3", "push-v3", "window-open-v3"],
seed=42,
)
7. Sémantique des observations
- Les environnements multi-tâche ajoutent des identifiants de tâche one-hot pour les politiques conditionnées par tâche.
- Les environnements méta-apprentissage sont partiellement observables pour forcer l'adaptation.
- Les espaces d'action sont à contrôle continu, adaptés aux algorithmes de type PPO/SAC/TD3.
8. Motifs d'entraînement typiques
SAC / PPO mono-tâche:
env = gym.make("Meta-World/MT1", env_name="drawer-open-v3")
# Entraîner avec SAC/PPO Stable-Baselines3 ou PPO continu CleanRL
Politique multi-tâche conditionnée par tâche:
envs = gym.make_vec("Meta-World/MT10", vector_strategy="sync")
# Utiliser un réseau de politique avec l'ID de tâche ajouté à l'observation
# L'approche commune est un backbone partagé + têtes policy/value conditionnées par tâche
Boucle méta-RL:
# Entraîner sur ML10-train, évaluer l'adaptation rapide sur ML10-test
# Mesurer la récompense après K épisodes/étapes de gradient d'adaptation
9. Recommandations d'évaluation
- Rapportez le taux de succès moyen et le rendement moyen, pas seulement la récompense.
- Séparez les performances des tâches d'entraînement et des tâches test hors-distribution pour la méta-RL.
- Fixez les seeds et la version du benchmark pour la comparabilité.
- Utilisez le mode sync pour une utilisation réduite des ressources ; async pour un meilleur débit.
- Documentez les sous-ensembles de tâches si vous utilisez des benchmarks personnalisés.
10. Notes d'intégration
- L'API suit Gymnasium exactement.
- Fonctionne naturellement avec les algorithmes SB3 à contrôle continu et les boucles PyTorch personnalisées.
- Souvent associé à SAC, PPO, PEARL, méta-RL de type MAML et transformers conditionnés par tâche.
Motifs clés
- Utilisez
MT10/MT50pour le RL multi-tâche etML10/ML45pour la méta-RL. - Les IDs de tâche dans les benchmarks MT sont importants — exploitez-les dans votre architecture de politique.
- Les benchmarks méta-apprentissage nécessitent des environnements train/test séparés par conception.
- La vectorisation asynchrone améliore le débit mais augmente la surcharge des processus.
- Les sous-ensembles de benchmark personnalisés sont précieux pour des ablations ciblées.