>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML
Jupyter

LIBERO: Enseñar a los Robots a No Olvidar Trucos Antiguos

1987 estrellas

Imagina que has enseñado a un robot manipulador a colocar cuidadosamente un libro en un estante. ¡Genial! Ahora le pides que ponga una taza en la mesa, y... olvida completamente cómo manejar libros. ¿Situación familiar en el mundo del aprendizaje automático? Este fenómeno, conocido como "olvido catastrófico", es una de las principales preocupaciones para los investigadores en robótica. Un robot que solo es bueno en una tarea es casi inútil en el mundo real.

Esto es exactamente lo que el proyecto LIBERO (Lifelong-Robot-Learning) fue creado para resolver. No es solo código, sino un framework y benchmark completo para desarrollar y probar robots capaces de "aprendizaje continuo" — es decir, acumular conocimiento y habilidades sin perder las existentes. Averigüemos qué es esta criatura y por qué deberías prestarle atención.

¿Qué es LIBERO y quién lo necesita?

Si lo simplificamos, LIBERO es un "gimnasio" y "arena de exámenes" para la inteligencia artificial robótica. Proporciona a investigadores y desarrolladores todo lo necesario para enseñar a un agente de IA a realizar múltiples tareas secuencialmente, transfiriendo conocimiento de una a otra.

El proyecto será especialmente útil para:

  • Investigadores de IA/ML y robótica: LIBERO ofrece un conjunto estandarizado de tareas y métricas para comparar diferentes enfoques de aprendizaje continuo.
  • Estudiantes y posgraduados: Es un sandbox listo para usar para aprender y experimentar con conceptos avanzados de aprendizaje robótico.
  • Ingenieros practicantes: Aquellos que quieren probar sus propios algoritmos en condiciones realistas donde el robot necesita adaptarse constantemente.

En lugar de crear entornos y tareas desde cero cada vez, obtienes un toolkit listo para usar que te permite enfocarte en lo que más importa: los algoritmos de aprendizaje.

Diagrama del flujo de trabajo de LIBERO

Características clave: ¿Qué hay dentro?

LIBERO no es solo una colección de scripts, sino una plataforma integral. Aquí están sus componentes más interesantes.

1. Generador infinito de tareas

Una de las principales características destacadas del proyecto es la generación procedural de tareas. Esto significa que, teóricamente, LIBERO puede crear un número infinito de escenarios de manipulación únicos. Esto resuelve el problema de "memorización del conjunto de datos": el modelo no podrá simplemente memorizar las acciones correctas para un conjunto limitado de ejemplos. Tendrá que aprender a generalizar.

2. Conjuntos de tareas listos para usar

Para mayor comodidad, los autores agruparon 130 tareas en cuatro conjuntos temáticos:

  • LIBERO-Spatial: Tareas que requieren comprensión de relaciones espaciales ("pon el cubo sobre la caja", "empuja el objeto bajo la mesa").
  • LIBERO-Object: Se enfoca en la interacción con diferentes objetos. Aquí el robot necesita transferir habilidades de trabajar con un tipo de artículo a otro.
  • LIBERO-Goal: Tareas donde el objetivo final cambia mientras que los objetos y el entorno permanecen iguales.
  • LIBERO-100: El conjunto más desafiante de 100 tareas diversas que requieren transferencia de conocimiento mixta. Se divide además en LIBERO-90 para preentrenamiento y LIBERO-10 para pruebas finales de la capacidad de aprendizaje continuo del agente.

Esta división permite pruebas específicas de cómo un modelo transfiere tipos específicos de conocimiento — procedimental (cómo moverse) o declarativo (qué está dónde).

3. "Baterías incluidas": Algoritmos y arquitecturas

Para facilitar el inicio de los experimentos, LIBERO ya tiene integrados algoritmos básicos y arquitecturas de redes neuronales:

  • Tres arquitecturas visión-motor: bc_rnn_policy, bc_transformer_policy, bc_vilt_policy. Estas son "cerebros" listos para usar para el robot que transforman la imagen de la cámara en acciones del manipulador.
  • Cinco algoritmos de aprendizaje: Incluyendo enfoques básicos (fine-tuning secuencial, aprendizaje multitarea) y métodos más avanzados para aprendizaje continuo (er, ewc, packnet).

Esto significa que puedes comenzar inmediatamente a comparar diferentes enfoques sin invertir tiempo en implementarlos desde cero.

¿Cómo funciona en la práctica?

Comenzar con LIBERO es bastante simple. Después de la instalación estándar a través de conda y pip, obtienes acceso a todo el toolkit.

Por ejemplo, para descargar conjuntos de datos con demostraciones humanas (sí, el proyecto se enfoca en aprendizaje por imitación), solo necesitas ejecutar un script. Por cierto, recientemente agregaron la capacidad de descargarlos directamente desde HuggingFace — ¡muy conveniente!

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

Y aquí hay un ejemplo mínimo de cómo cargar y ejecutar una de las tareas:

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()

Como puedes ver, la API es bastante simple e intuitiva. Puedes integrar fácilmente tus propios modelos y algoritmos en este pipeline.

Conclusiones: ¿Vale la pena probar?

Absolutamente sí, si tu trabajo o estudios están relacionados de alguna manera con el aprendizaje robótico. LIBERO es una herramienta potente y bien documentada que resuelve un problema real en este campo. No te enseña el robot por ti, pero proporciona un excelente entorno para experimentos.

A quién le vendrá especialmente bien LIBERO:

  • Investigadores: Para publicar resultados reproducibles y comparables.
  • Entusiastas: Para "ensuciarse las manos" con enfoques de vanguardia en robótica.
  • Instructores: Como plataforma práctica para cursos de aprendizaje automático y robótica.

El proyecto se está desarrollando activamente, y sus autores han realizado un trabajo tremendo creando un estándar unificado para una de las áreas más complejas e interesantes de la IA. Así que, si quieres enseñar a un robot no solo a poner tazas sino también a no olvidar los libros, échale un vistazo al GitHub del proyecto. Es un excelente punto de partida.