>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML
Jupyter

LIBERO: Ensinando Robôs a Não Esquecer Truques Antigos

1.987 estrelas

Imagine que você ensinou um robô manipulador a colocar cuidadosamente um livro em uma prateleira. Ótimo! Agora você pede para ele colocar uma xícara na mesa, e... ele esquece completamente como manusear livros. Situação familiar no mundo do aprendizado de máquina? Esse fenômeno, conhecido como "esquecimento catastrófico", é uma das principais dores de cabeça para pesquisadores em robótica. Um robô que é bom em apenas uma tarefa é quase inútil no mundo real.

É exatamente para resolver isso que o projeto LIBERO (Lifelong-Robot-Learning) foi criado. Não é apenas código, mas todo um framework e benchmark para desenvolver e testar robôs capazes de "aprendizado contínuo" — ou seja, acumular conhecimento e habilidades sem perder os existentes. Vamos entender o que essa criatura é e por que você deveria prestar atenção nela.

O que é o LIBERO e quem precisa dele?

Se simplificarmos, o LIBERO é uma "academia" e "arena de provas" para inteligência artificial robótica. Ele fornece aos pesquisadores e desenvolvedores tudo o que precisam para ensinar um agente de IA a executar múltiplas tarefas sequencialmente, transferindo conhecimento de uma para outra.

O projeto será especialmente útil para:

  • Pesquisadores de IA/ML e robótica: O LIBERO oferece um conjunto padronizado de tarefas e métricas para comparar diferentes abordagens de aprendizado contínuo.
  • Estudantes e graduandos: É uma sandbox pronta para aprender e experimentar conceitos avançados de aprendizado robótico.
  • Engenheiros práticos: Aqueles que querem testar seus próprios algoritmos em condições realistas onde o robô precisa se adaptar constantemente.

Em vez de criar ambientes e tarefas do zero toda vez, você obtém um toolkit pronto que permite focar no que mais importa — os algoritmos de aprendizado.

Diagrama do fluxo de trabalho do LIBERO

Recursos principais: O que tem dentro?

O LIBERO não é apenas uma coleção de scripts, mas uma plataforma abrangente. Aqui estão seus componentes mais interessantes.

1. Gerador infinito de tarefas

Um dos principais destaques do projeto é a geração procedural de tarefas. Isso significa que, teoricamente, o LIBERO pode criar um número infinito de cenários de manipulação únicos. Isso resolve o problema da "memorização de dataset": o modelo não poderá simplesmente memorizar as ações corretas para um conjunto limitado de exemplos. Ele terá que aprender a generalizar.

2. Conjuntos de tarefas prontos

Para conveniência, os autores agruparam 130 tarefas em quatro conjuntos temáticos:

  • LIBERO-Spatial: Tarefas que requerem compreensão de relações espaciais ("coloque o cubo sobre a caixa", "empurre o objeto para baixo da mesa").
  • LIBERO-Object: Focam na interação com diferentes objetos. Aqui o robô precisa transferir habilidades de trabalhar com um tipo de item para outro.
  • LIBERO-Goal: Tarefas onde o objetivo final muda enquanto os objetos e o ambiente permanecem os mesmos.
  • LIBERO-100: O conjunto mais desafiador de 100 tarefas diversas que requerem transferência de conhecimento mista. É ainda dividido em LIBERO-90 para pré-treinamento e LIBERO-10 para teste final da capacidade de aprendizado contínuo do agente.

Essa divisão permite testar direcionadamente como um modelo transfere tipos específicos de conhecimento — procedural (como mover) ou declarativo (o que está onde).

3. "Baterias incluídas": Algoritmos e arquiteturas

Para facilitar o início dos experimentos, o LIBERO já possui algoritmos básicos e arquiteturas de redes neurais integrados:

  • Três arquiteturas visão-motor: bc_rnn_policy, bc_transformer_policy, bc_vilt_policy. São "cérebros" prontos para o robô que transformam a imagem da câmera em ações do manipulador.
  • Cinco algoritmos de aprendizado: Incluindo abordagens básicas (fine-tuning sequencial, aprendizado multitarefa) e métodos mais avançados para aprendizado contínuo (er, ewc, packnet).

Isso significa que você pode começar imediatamente a comparar diferentes abordagens sem gastar tempo implementando-as do zero.

Como funciona na prática?

Começar a usar o LIBERO é bastante simples. Após a instalação padrão via conda e pip, você obtém acesso a todo o toolkit.

Por exemplo, para baixar datasets com demonstrações humanas (sim, o projeto foca em aprendizado por imitação), você só precisa executar um script. Aliás, recentemente adicionaram a capacidade de baixá-los diretamente do HuggingFace — muito conveniente!

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

E aqui está um exemplo mínimo de como carregar e executar uma das tarefas:

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 você pode ver, a API é bastante simples e intuitiva. Você pode integrar facilmente seus próprios modelos e algoritmos nesse pipeline.

Conclusões: Vale a pena experimentar?

Com certeza, se seu trabalho ou estudos estão relacionados de alguma forma ao aprendizado robótico. LIBERO é uma ferramenta poderosa e bem documentada que resolve um problema real nesse campo. Ele não ensina o robô por você, mas fornece um excelente ambiente para experimentos.

Para quem o LIBERO será especialmente adequado:

  • Pesquisadores: Para publicar resultados reproduzíveis e comparáveis.
  • Entusiastas: Para "colocar a mão na massa" com abordagens de ponta em robótica.
  • Instrutores: Como plataforma prática para cursos de aprendizado de máquina e robótica.

O projeto está em desenvolvimento ativo, e seus autores fizeram um trabalho tremendo criando um padrão unificado para uma das áreas mais complexas e interessantes da IA. Então, se você quer ensinar um robô não apenas a colocar xícaras, mas também a não esquecer dos livros, confira o GitHub do projeto. É um ótimo ponto de partida.