>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML
Jupyter

LIBERO : apprendre aux robots à ne pas oublier leurs anciens tours

1 987 étoiles

Imaginez que vous avez appris à un robot manipulateur à déposer délicatement un livre sur une étagère. Super ! Maintenant, vous lui demandez de poser une tasse sur la table, et... il oublie complètement comment manipuler les livres. Situation familière dans le monde de l'apprentissage automatique ? Ce phénomène, connu sous le nom d'« oubli catastrophique », est l'une des principales préoccupations des chercheurs en robotique. Un robot qui ne sait faire qu'une seule tâche est presque inutile dans le monde réel.

C'est exactement ce à quoi le projet LIBERO (Lifelong-Robot-Learning) a été créé pour répondre. Ce n'est pas juste du code, mais tout un framework et une référence pour développer et tester des robots capables d'« apprentissage tout au long de la vie » — c'est-à-dire accumuler des connaissances et des compétences sans perdre celles déjà acquises. Comprenons ce que cette créature est et pourquoi vous devriez y prêter attention.

Qu'est-ce que LIBERO et qui en a besoin ?

Si nous simplifions, LIBERO est une « salle de sport » et une « arène d'examen » pour l'intelligence artificielle robotique. Il fournit aux chercheurs et aux développeurs tout ce dont ils ont besoin pour apprendre à un agent IA à effectuer plusieurs tâches de manière séquentielle, en transférant les connaissances d'une tâche à l'autre.

Le projet sera particulièrement utile pour :

  • Chercheurs en IA/ML et en robotique : LIBERO offre un ensemble standardisé de tâches et de métriques pour comparer différentes approches d'apprentissage tout au long de la vie.
  • Étudiants et doctorants : C'est un bac à sable prêt à l'emploi pour apprendre et expérimenter avec des concepts avancés d'apprentissage robotique.
  • Ingénieurs praticiens : Ceux qui souhaitent tester leurs propres algorithmes dans des conditions réalistes où le robot doit constamment s'adapter.

Au lieu de créer des environnements et des tâches à partir de zéro à chaque fois, vous obtenez une boîte à outils prête à l'emploi qui vous permet de vous concentrer sur ce qui compte le plus — les algorithmes d'apprentissage.

Diagramme du flux de travail LIBERO

Fonctionnalités clés : Qu'y a-t-il à l'intérieur ?

LIBERO n'est pas qu'une collection de scripts, mais une plateforme complète. Voici ses composants les plus intéressants.

1. Générateur de tâches infini

L'un des points forts du projet est la génération procédurale de tâches. Cela signifie que théoriquement, LIBERO peut créer un nombre infini de scénarios de manipulation uniques. Cela résout le problème de la « mémorisation de l'ensemble de données » : le modèle ne pourra pas simplement mémoriser les actions correctes pour un ensemble limité d'exemples. Il devra apprendre à généraliser.

2. Ensembles de tâches prêts à l'emploi

Pour plus de commodité, les auteurs ont regroupé 130 tâches en quatre ensembles thématiques :

  • LIBERO-Spatial : Tâches nécessitant la compréhension des relations spatiales (« mettre le cube sur la boîte », « pousser l'objet sous la table »).
  • LIBERO-Object : Axé sur l'interaction avec différents objets. Ici, le robot doit transférer les compétences du travail avec un type d'article à un autre.
  • LIBERO-Goal : Tâches où l'objectif final change tandis que les objets et l'environnement restent les mêmes.
  • LIBERO-100 : L'ensemble le plus difficile de 100 tâches diverses nécessitant un transfert de connaissances mixte. Il est ensuite divisé en LIBERO-90 pour le pré-entraînement et LIBERO-10 pour les tests finaux de la capacité d'apprentissage continu de l'agent.

Cette division permet de tester de manière ciblée comment un modèle transfère des types spécifiques de connaissances — procédurales (comment bouger) ou déclaratives (où se trouve quoi).

3. « Batteries incluses » : Algorithmes et architectures

Pour faciliter la prise en main des expériences, LIBERO intègre déjà des algorithmes de base et des architectures de réseaux de neurones :

  • Trois architectures vision-moteur : bc_rnn_policy, bc_transformer_policy, bc_vilt_policy. Ce sont des « cerveaux » prêts à l'emploi pour le robot qui transforment l'image de la caméra en actions du manipulateur.
  • Cinq algorithmes d'apprentissage : Y compris les approches de base (affinage séquentiel, apprentissage multi-tâches) et les méthodes plus avancées pour l'apprentissage continu (er, ewc, packnet).

Cela signifie que vous pouvez immédiatement commencer à comparer différentes approches sans perdre de temps à les implémenter à partir de zéro.

Comment cela fonctionne-t-il en pratique ?

Commencer avec LIBERO est assez simple. Après l'installation standard via conda et pip, vous avez accès à l'ensemble de la boîte à outils.

Par exemple, pour télécharger des ensembles de données avec des démonstrations humaines (oui, le projet se concentre sur l'apprentissage par imitation), il suffit d'exécuter un script. D'ailleurs, ils ont récemment ajouté la possibilité de les télécharger directement depuis HuggingFace — très pratique !

# Скачать все датасеты с HuggingFace
python benchmark_scripts/download_libero_datasets.py --use-huggingface

Et voici à quoi ressemble un exemple minimal de chargement et d'exécution d'une des tâches :

from libero.libero import benchmark
from libero.libero.envs import OffScreenRenderEnv

# Получаем список доступных наборов задач
benchmark_dict = benchmark.get_benchmark_dict()
task_suite_name = "libero_10"
task_suite = benchmark_dict[task_suite_name]()

# Выбираем конкретную задачу по её ID
task_id = 0
task = task_suite.get_task(task_id)
task_description = task.language

print(f"Загружена задача: {task_description}")

# Инициализируем окружение для симуляции
env_args = {
    "bddl_file_name": os.path.join(get_libero_path("bddl_files"), task.problem_folder, task.bddl_file),
    "camera_heights": 128,
    "camera_widths": 128
}
env = OffScreenRenderEnv(**env_args)
env.reset()

# Выполняем 10 шагов с пустым действием
for step in range(10):
    obs, reward, done, info = env.step([0.] * 7)
env.close()

Comme vous pouvez le voir, l'API est assez simple et intuitive. Vous pouvez facilement intégrer vos propres modèles et algorithmes dans ce pipeline.

Conclusions : Cela vaut-il la peine d'essayer ?

Absolument oui, si votre travail ou vos études sont liés d'une manière ou d'une autre à l'apprentissage robotique. LIBERO est un outil puissant et bien documenté qui résout un vrai problème dans ce domaine. Il n'apprend pas le robot à votre place, mais il fournit un excellent environnement pour les expériences.

À qui LIBERO conviendra-t-il particulièrement :

  • Chercheurs : Pour publier des résultats reproductibles et comparables.
  • Enthousiastes : Pour « mettre la main à la pâte » avec des approches de pointe en robotique.
  • Instructeurs : Comme plateforme pratique pour les cours d'apprentissage automatique et de robotique.

Le projet est en développement actif, et ses auteurs ont accompli un travail considérable en créant une norme unifiée pour l'un des domaines les plus complexes et les plus intéressants de l'IA. Donc, si vous voulez apprendre à un robot non seulement à poser des tasses mais aussi à ne pas oublier les livres, consultez le GitHub du projet. C'est un excellent point de départ.