Etapa 7: Comando de treinamento — ACT
Antes de executar
- Ambiente: primeiro é preciso instalar o ambiente e enviar o dataset para a GPU na nuvem conforme Configuração do ambiente de treinamento em GPU na nuvem. O ACT já vem com o ambiente básico do LeRobot, sem necessidade de instalação adicional
- Dataset: o
--dataset.root=~/lerobot_my_dataset_shake_handsdo comando aponta para o dataset de aperto de mão coletado na etapa 6. Se você estiver treinando uma tarefa própria, substitua pelo nome do seu próprio dataset - Diretório de saída: se o
--output_dirjá existir, será exibido diretamente umFileExistsError; troque por um novo nome de diretório, ou adicione--resume=truepara continuar o treinamento - Durante o treinamento, você pode acompanhar as curvas no wandb a qualquer momento; consulte Visualizar as curvas de treinamento em tempo real com o wandb
Documentação de referência
https://github.com/huggingface/lerobot/blob/main/src/lerobot/scripts/lerobot_train.py
https://github.com/huggingface/lerobot/blob/main/src/lerobot/configs/train.py
Por que começar pelo algoritmo ACT
O ACT é o primeiro modelo mais recomendado para treinar no LeRobot; suas vantagens são as seguintes:
O modelo é muito leve, com apenas oitenta milhões de parâmetros treináveis
A convergência do treinamento é muito rápida, e a inferência também é rápida
Em uma única GPU, uma hora de treinamento já mostra resultados
O modelo ACT em si é pequeno, com um pacote compactado de cerca de 200MB, muito fácil de armazenar e transportar. O pacote compactado do modelo gerado pelo treinamento tem cerca de 300MB (veja no final deste artigo)
Coletar 30 episódios de dados no dataset já é basicamente suficiente
Pode ser implantado para inferência em um computador Ubuntu, Mac, Windows e até em um Raspberry Pi
O resultado da inferência no robô real é bastante bom, suficiente para tarefas simples como pegar objetos, apertar mãos e colocar canetas
O algoritmo ACT já vem no ambiente básico da biblioteca LeRobot, sem necessidade de instalar outras bibliotecas
Linha de comando
lerobot-train \
--dataset.repo_id=<usuario>/lerobot_my_dataset_shake_hands \
--dataset.root=~/lerobot_my_dataset_shake_hands \
--dataset.revision=v0.1.0 \
--dataset.streaming=false \
--policy.type=act \
--output_dir=~/output_lerobot_train/shake/act/ \
--job_name=shake_act_a \
--policy.device=cuda \
--wandb.enable=true \
--wandb.project=Lerobot_my_Project \
--policy.push_to_hub=false \
--steps=20000 \
--batch_size=8Descrição da linha de comando
Antes do caractere de quebra de linha `` só pode haver um espaço, e depois dele não pode haver espaço
| Parâmetro da linha de comando | Descrição |
|---|---|
| --dataset.repo_id | O Repo_ID do dataset no HuggingFace, no formato nome de usuário/nome do dataset |
| --dataset.root | Caminho local do dataset. Quando o dataset já foi baixado para o local, deve apontar para o diretório real |
| --dataset.revision | Versão do dataset, especificada no momento de enviar o dataset para o HuggingFace |
| --dataset.streaming | Define se a leitura é em streaming. Quando o dataset está local, defina como false, pois não é necessária leitura em streaming |
| --policy.type | O algoritmo a ser treinado, como act, smolvla, diffusion, pi0, pi05, pi0_fast, wall_x |
| --output_dir | Diretório onde a saída do treinamento é salva |
| --job_name | O nome desta tarefa de treinamento |
| --policy.device | Dispositivo de computação |
| --wandb.enable | Ativa a visualização do wandb |
| --wandb.project | Nome do projeto no wandb |
| --policy.push_to_hub | Envia o modelo treinado para a nuvem do HuggingFace |
| --steps | Número de passos de treinamento |
| --batch_size | Quantidade de dados de entrada por passo; se a VRAM não for suficiente, deve ser reduzida |
Processo de treinamento



O pacote compactado do modelo tem cerca de 300MB

