A página do modelo SmolVLA em AY-Robots mostrando a contagem de parâmetros, nível da GPU, latência de inferência por etapa de ação e a contagem mínima de episódios
SmolVLALeRobotTreinamento de VLAFine-TuningSO-100

Como Treinar SmolVLA em uma GPU de 24 GB (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min de leitura

SmolVLA é um VLA de 450 milhões de parâmetros que pode ser ajustado em uma única placa de 24 GB. Comandos reais do lerobot 0.6.1, os padrões reais, as armadilhas que custam um dia e o custo de uma execução.

SmolVLA em uma tela

  • 450 M parâmetros, cerca de 100 M deles um especialista em ação de correspondência de fluxo. lerobot treina apenas esse especialista e mantém o VLM congelado, por isso cabe em uma única placa.
  • O guia de computação do LeRobot estima o grupo smolvla em aproximadamente 10 a 16 GB de VRAM de pico no lote 8 com AdamW. Daí 24 GB.
  • O ponto de entrada é lerobot-train. A postagem do blog SmolVLA de junho de 2025 ainda imprime python lerobot/scripts/train.py, um caminho que não existe mais. Tudo abaixo é lerobot 0.6.1.
  • O agendamento de cosseno é predefinido para decair ao longo de 30000 passos. lerobot 0.6.1 o redimensiona para uma execução mais curta e o registra, mas nunca para cima: a execução padrão de 100000 passos termina no piso de 2.5e-6 por 70000 passos.
  • Trinta episódios é o mínimo da AY-Robots, em um nível de 24 GB custando 1 a 3 USD por execução contra 4 a 12 para os modelos de 80 GB.

A maioria das pessoas que querem um modelo de ação de linguagem visual em um braço real param na linha de hardware. GR00T N1.7 e Pi0.5 têm cerca de três bilhões de parâmetros cada e exigem uma A100 de 80 GB ou uma H100. Se o que você possui é um PC gamer com uma RTX 4090, esse é o fim da linha. SmolVLA é a exceção: 450 M parâmetros, dentro do LeRobot, construído para ajuste fino em uma placa de consumidor e para servir a partir de uma CPU.

Primeiro, a rota manual: instale o lerobot, puxe o lerobot/smolvla_base checkpoint, execute o comando real, leia a execução enquanto ela acontece. Depois, a rota da plataforma, e onde ela não ajuda.

O que é SmolVLA, em números que você pode verificar

SmolVLA é uma correspondência de fluxo política acoplada a um pequeno modelo de linguagem visual. A arquitetura base é SmolVLM2-500M-Video-Instruct; o artigo mantém apenas as primeiras 16 camadas de seu modelo de linguagem, limita cada quadro de câmera a 64 tokens visuais com um embaralhamento de pixels (pixel shuffle) em vez de mosaico de imagem (image tiling), e intercala atenção cruzada com uma camada de autoatenção a cada segundo bloco. O custo de inferência foi uma restrição de design, não uma reflexão tardia.

PropriedadeValorFonte
Parâmetros totaiscerca de 450 Martigo
Especialista em açãocerca de 100 M, correspondência de fluxoartigo
Arquitetura base VLMHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Camadas VLM usadasprimeiras 16 do modelo de linguagemnum_vlm_layers = 16
Tokens visuais por quadro64, embaralhamento de pixels, sem mosaicoartigo
Pré-treinamento481 conjuntos de dados da comunidade, 22.9 K episódios, 10.6 M quadros; 200000 passos com batch global 256 em 4 GPUsartigo

Os benchmarks são a razão pela qual as pessoas se preocupam com um modelo de 450 M. No LIBERO, ele tem uma média de 87.3 por cento contra 76.5 para OpenVLA de 7 B e 86.0 para um Pi0 pré-treinado em robótica de 3.3 B; no Meta-World, 57.3 contra 47.9. Em hardware SO-100 real, o treinamento multi-tarefa resulta em 75 por cento em pegar e colocar, 90 em empilhar, 70 em classificar, com média de 78.3, onde ACT treinado por tarefa teve uma média de 48.3. As mesmas linhas estão ao lado de cada VLA publicado na entrada da arena SmolVLA e na comparação ACT contra SmolVLA.

A versão honesta da alegação de tamanho

SmolVLA não é melhor que um modelo de 3 B em tudo. A própria tabela SO-101 do artigo revela: 90 por cento de sucesso em distribuição, 50 por cento fora dela, em uma plataforma na qual nunca foi pré-treinado. O que ele afirma, e sustenta, é que, em comparação com o Pi0, ele treina cerca de 40 por cento mais rápido com 6 vezes menos memória.

Por que uma placa de 24 GB é a escolha certa para a primeira execução

LeRobot fornece um guia de dimensionamento de computação, a página mais útil no repositório para isso. Ele agrupa políticas por tamanho de backbone e fornece um envelope de VRAM por grupo, medido com tamanho de lote 8 e AdamW, o padrão do lerobot. O estado do otimizador sozinho adiciona de 30 a 100 por cento sobre uma passagem direta e reversa simples, então estes não são valores apenas de pesos.

GrupoPolíticasVRAM de Pico (lote 8, AdamW)GPUs Iniciais
BC Leveact, vqbet, tdmpccerca de 2 a 6 GBRTX 3060, L4
Difusãodiffusion, multi_task_ditcerca de 8 a 14 GBRTX 4070+, L4
VLA Pequenosmolvlacerca de 10 a 16 GBRTX 4080+, L4, A10G
VLA Grandepi0, pi0_fast, pi05, xvla, wall_xcerca de 24 a 40 GBA100 40 GB+
Multimodalgroot, eo1cerca de 24 a 40 GBA100 40 GB+

De dez a dezesseis gigabytes com lote 8 é o argumento: uma placa de 24 GB comporta isso mais o dataloader. AY-Robots executa SmolVLA na RTX 4090 ou em qualquer placa de 24 GB, mínimo de 30 episódios, LeRobot v3.0 de dados, 245 ms por passo de ação. Alugado, isso representa de 2 a 5 horas a 0.30 a 0.60 USD por hora, cerca de 1 a 3 USD por ajuste fino execução, contra 4 a 12 USD na camada de 80 GB que GR00T e Pi0.5 exigem (preços). Uma execução falha de SmolVLA é um café; uma execução falha de GR00T, um almoço.

Tabela de custos AY-Robots: placa por política, tempo de execução, preço por execução, episódios necessários
SmolVLA e ACT ficam na linha de 24 GB, os três modelos de 3 B na linha de 80 GB.
Começando com SmolVLA em vez de um modelo de 3 B
O que você ganha
  • Compatível com hardware que você já pode possuir: aproximadamente 10 a 16 GB no lote 8.
  • Uma execução desperdiçada custa horas e alguns dólares, então você pode se dar ao luxo de errar sobre o conjunto de dados.
  • Pré-treinado em conjuntos de dados da comunidade compartilhados sob a tag lerobot, com resultados reais SO-100 e SO-101.
  • Ele reside no próprio lerobot: sem repositório de fornecedor, e smolvla_base não é restrito.
O que você abre mão
  • 450 M ainda são 450 M: o sucesso fora da distribuição cai de 90 para 50 por cento na tabela SO-101 do artigo.
  • Ele requer dados do LeRobot v3.0; uma gravação v2.1 precisa ser convertida (conjunto de dados rejeitado v3).
  • 245 ms por passo de ação é um controlador competente de pegar e colocar, não um reativo.
  • O exemplo da documentação executa o lote 64 em uma A100; em 24 GB você troca o lote pelo tempo real.

Passo 0: o conjunto de dados decide a execução, não as flags

Nada abaixo importa se a gravação for ruim. A página LeRobot SmolVLA é direta: o conjunto de dados de referência tinha 50 episódios em 5 posições de cubo, 10 por posição, e a mesma tarefa com 25 episódios teve um desempenho ruim. A repetição por variação generaliza, a contagem bruta de episódios não. Nunca gravou um? Comece em grave seu primeiro conjunto de dados, com o cliente de desktop, que escreve o formato LeRobot a partir de uma sessão de teleoperação, ou pegue um emprestado do diretório de conjuntos de dados.

  • Pelo menos 30 episódios em AY-Robots, cerca de 50 para a receita de referência do LeRobot.
  • Cada variação esperada na implantação, repetida várias vezes.
  • Uma string de tarefa, escrita de forma idêntica no momento da gravação e da implantação. O modelo é condicionado a esse texto.
  • Câmeras fixas. Uma câmera movida entre a gravação e a implantação é a razão mais comum para uma curva de perda limpa resultar em um braço imóvel.
  • Uma variação reservada na qual você nunca treinou, para ter algo honesto para testar.
A armadilha do conjunto de dados que custa um dia

SmolVLA, Pi0.5 e ACT exigem LeRobot v3.0. GR00T N1.7 e N1.5 exigem v2.0 ou v2.1 e seu carregador falha na v3.0. Grave uma vez, planeje comparar modelos mais tarde, e você converterá de uma forma ou de outra: conjunto de dados rejeitado v3.

bash
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place
O conversor é fornecido dentro do lerobot, então não há nada extra para instalar. Não há conversor na outra direção no pacote.

Mais sobre isso em como coletar dados de treinamento VLA de alta qualidade. A versão resumida: 30 a 50 episódios limpos de uma tarefa com variação deliberada superam 200 episódios desleixados de três, por uma margem que nenhum hiperparâmetro consegue fechar.

Instalar lerobot 0.6.1

bash
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot

# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge

# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'

# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info
O caminho PyPI. Para aplicar patches ao treinador, clone o repositório e use pip install -e ".[smolvla,training]" em vez disso.

A instalação base do lerobot é leve e restringe dependências pesadas por trás de extras: smolvla adiciona transformers, num2words e accelerate, training a pilha de dados e wandb, core_scripts as dependências de hardware e visualização. No Linux, o caminho de instalação também decide o seu wheel CUDA: o padrão PyPI é um wheel cu130 com um driver mínimo de 580.65, então em um driver mais antigo instale o torch do índice cu128 primeiro, depois o lerobot.

policy.path e policy.type não são a mesma flag

--policy.path=lerobot/smolvla_base carrega o checkpoint pré-treinado de 450 M e o ajusta. --policy.type=smolvla constrói um SmolVLA novo, e o padrão de configuração load_vlm_weights = False significa que ele nem sequer puxa os pesos do backbone SmolVLM2 a menos que você peça. Se você errar, a execução treina feliz, custa o mesmo e não aprende nada transferível.

A execução do treinamento, comando por comando

  1. 1
    Autenticar-se no Hub

    O checkpoint base vem do Hub, e seu conjunto de dados provavelmente também.

    bash
    hf auth login
  2. 2
    Leia as opções uma vez

    Cada campo da configuração do pipeline e da política é um flag. Dê uma olhada antes de se aprofundar no código-fonte.

    bash
    lerobot-train --help
  3. 3
    Iniciar o fine-tune

    O exemplo da documentação executa um batch de 64 em uma única A100; o próprio guia de computação para A100 de 40 GB usa batch 16, e 8 é o equivalente para 24 GB. Nenhum flag de agendador aqui de propósito, veja abaixo.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/so100_pick_place \
      --batch_size=8 \
      --steps=20000 \
      --save_freq=2000 \
      --log_freq=200 \
      --seed=1000 \
      --output_dir=outputs/train/smolvla_pick_place \
      --job_name=smolvla_pick_place \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    Leia a linha de log, não apenas a perda

    A cada --log_freq passos, o lerobot imprime loss, grdn, lr, updt_s, data_s, smp/s e, em CUDA, mem_gb. mem_gb indica se o batch cabe, lr se o agendamento está decaindo, e data_s se aproximando de updt_s significa que o dataloader é o gargalo, não a GPU.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Colete checkpoints que você pode comparar

    save_freq tem como padrão 20000, então uma execução de 20000 passos deixa um checkpoint e nada para comparar. Defina 2000. Enviar para o Hub requer --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Retomar se a máquina falhar

    Aponte --config_path para o train_config.json ao lado do checkpoint. O lerobot se recusa a iniciar em um output_dir existente a menos que você esteja retomando, então você não pode sobrescrever uma execução por acidente.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

Os flags que realmente mudam o resultado

FlagO que fazEm 24 GB
--batch_sizeAmostras por passo, aproximadamente linear na VRAM4 a 8
--stepsTotal de passos do otimizador20000 na primeira passagem
--policy.scheduler_decay_stepsDuração do decaimento cosseno, predefinido 30000Só afeta acima de 30000
--policy.use_ampPrecisão mista; SmolVLA não tem campo dtypetrue quando a memória é escassa
--num_workersProcessos do dataloader, padrão 4Aumente até que data_s pare de subir
--dataset.eval_splitFração de episódios reservados por tarefa0.1, com --eval_steps
--policy.freeze_vision_encoderMantém a torre de visão congeladatrue em 24 GB
--policy.train_expert_onlyApenas o especialista de ~100 M recebe gradientestrue primeiro
O agendamento: o que a 0.6.1 lida e o que não lida

SmolVLA predefine um agendamento de cosseno: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Conselhos mais antigos dizem que uma execução de 20000 passos, portanto, para no meio do decaimento. Na versão 0.6.1, isso não acontece: `CosineDecayWithWarmupSchedulerConfig.build()` recebe `--steps`, e abaixo de `num_decay_steps` ele reescala ambos, warmup de 1000 para 666 e decaimento de 30000 para 20000, imprimindo Auto-scaling LR scheduler ao fazê-lo. Ele nunca reescala para cima: o decaimento é limitado com `min(current_step, decay_steps)`, então o `--steps=100000` padrão permanece no mínimo do passo 30000 até o final, 70 por cento da execução. Apenas esse lado longo ainda precisa de `--policy.scheduler_decay_steps`. A coluna `lr` é onde você verifica.

Os padrões que você herda se não alterar nada

Uma política de configuração no lerobot carrega seu próprio otimizador e predefinição de agendador, e a menos que você defina use_policy_training_preset=false essas predefinições prevalecem. Metade das perguntas que as pessoas fazem sobre o treinamento do SmolVLA são respondidas por um padrão que elas não sabiam que existia.

ConfiguraçãoPadrão no lerobot 0.6.1Definido em
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (flow matching denoise)10SmolVLAConfig
optimizer_lr1e-4SmolVLAConfig
scheduler_warmup_steps1000SmolVLAConfig
scheduler_decay_steps30000SmolVLAConfig
scheduler_decay_lr2.5e-6SmolVLAConfig
freeze_vision_encodertrueSmolVLAConfig
train_expert_onlytrueSmolVLAConfig
batch_size / steps8 / 100000TrainPipelineConfig
seed / save_freq / num_workers1000 / 20000 / 4TrainPipelineConfig

As duas linhas que surpreendem as pessoas são freeze_vision_encoder e train_expert_only, ambas verdadeiras. De fábrica, você treina aproximadamente 100 M parâmetros, não 450 M, e é por isso que cabe em 24 GB. A própria execução de referência do LeRobot em um cluster H100 de quatro GPUs inverte ambas para falso; em uma placa de 24 GB, isso transforma uma execução funcional em .

O controle de memória que não existe

O conselho do guia quando você está limitado pela memória é diminuir o tamanho do lote (batch size) e usar acumulação de gradiente para recuperar o lote efetivo. Não há acumulação de gradiente no lerobot 0.6.1: TrainPipelineConfig não possui tal campo e a string não aparece em nenhum lugar no pacote lançado. O formulário AY-Robots mostra um valor de acumulação de gradiente de 8 para SmolVLA e também não o aplica. Suas alavancas em 24 GB são --batch_size, os dois padrões de congelamento, e --policy.use_amp.

Quanto tempo a execução leva e quantos passos são suficientes

LeRobot publica âncoras de tempo real para cinco épocas em um conjunto de dados de aproximadamente 50 episódios, cerca de 45000 quadros a 30 fps. Valores de ordem de magnitude, dizem os documentos, mas eles são a diferença entre esperar uma hora e um dia.

ConfiguraçãoPolíticaLoteTempo de execução
Single L4 / A10G (24 GB)smolvla4cerca de 3 a 6 h
Single A100 40 GBsmolvla16cerca de 1 a 2 h
4 x H100 80 GB with acceleratesmolvla32cerca de 1 a 2 h
Single RTX 4090 / RTX 3090 (24 GB)act8cerca de 30 a 60 min
Faça o cálculo das épocas antes de escolher --steps

A regra é de 5 a 10 épocas sobre o conjunto de dados, não uma contagem fixa de passos: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). No conjunto de dados de referência apontado pela documentação, lerobot/svla_so100_pickplace, os metadados relatam 50 episódios e 19631 quadros: um lote de 8 resulta em cerca de 2454 passos por época, então 20000 passos são aproximadamente 8 épocas. Reduza o lote pela metade e o mesmo orçamento compra metade das épocas, então refaça isso sempre que alterar --batch_size.

Executando a política ajustada de volta no braço

bash
lerobot-rollout \
  --strategy.type=base \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower_arm \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --task="Grasp the cube and put it in the box." \
  --policy.path=${HF_USER}/smolvla_pick_place
A string da tarefa deve corresponder àquela com a qual você gravou. O modelo é condicionado a esse texto, então uma paráfrase é uma instrução diferente.

Os 245 ms por passo de ação são fáceis de interpretar mal: a política emite chunk_size = 50 ações por passagem direta e executa n_action_steps = 50 delas, então a frequência com que se paga esse custo é definida por esses parâmetros, não pela frequência com que os servos recebem um comando. Isso é o que o agrupamento de ações proporciona, e por que um modelo de 245 ms pode acionar um braço de 30 Hz. O que resta é a latência de inferência no final do agrupamento.

Medição (SmolVLA, SO-100 real)SíncronoAssíncrono
Tempo de conclusão, pegar e colocar, 10 tentativas13.75 s9.70 s
Ciclos de pegar e colocar em uma janela de tempo fixa919
Taxa de sucesso média nas três tarefas78.3 %73.3 %

Essa terceira linha é o que a maioria dos relatórios omite. A inferência assíncrona é cerca de 30 por cento mais rápida e praticamente dobra o rendimento em uma janela fixa, e o artigo considera as taxas de sucesso comparáveis, o que, em média, elas são. Por baixo, a classificação caiu de 70 para 50 por cento, enquanto o pegar e colocar ganhou 5. lerobot 0.6.1 carrega a outra alavanca no mesmo binário: --inference.type=rtc alterna a execução para o agrupamento em tempo real, que o próprio bloco de uso do script recomenda para os VLAs lentos, Pi0, Pi0.5 e SmolVLA.

A inferência deve estar próxima dos servos

O loop de controle é de 20 a 485 ms por passo de ação, dependendo do modelo, e as viagens de ida e volta na internet pública transformam uma política funcional em uma hesitante. A inferência remota é viável para pegar e colocar lentamente, não para movimento reativo rápido: se a tarefa exige correções rápidas, a GPU deve estar na mesma LAN que o braço.

7.4 V, não 12 V

Fora do tópico para uma execução de treinamento, mas isso encerra mais projetos SO-100 do que qualquer hiperparâmetro. Os servos Feetech STS3215 nos SO-100 e SO-101 operam a 7.4 V; 12 V os destrói. O LeKiwi mistura um braço de 7.4 V com uma base de 12 V, que é como o conector de barril errado encontra o soquete errado.

Duas rotas para o mesmo checkpoint

Você é o proprietário da máquina, do ambiente e da depuração. A única dependência da nuvem é o download do checkpoint base do Hub. A rota certa se você quiser modificar a política, se os dados não puderem sair da sua rede, ou se a placa estiver ociosa.

  • Você controla o CUDA, o driver, a compilação do ffmpeg e o dataloader.
  • Você pode aplicar patches em configuration_smolvla.py e retreinar na mesma tarde.
  • Você paga em eletricidade e tempo, não por execução, e depura o TorchCodec você mesmo.
bash
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/so100_pick_place \
  --batch_size=8 --steps=20000 \
  --save_freq=2000 --seed=1000 \
  --output_dir=outputs/train/smolvla_pick_place \
  --job_name=smolvla_pick_place \
  --policy.device=cuda --wandb.enable=true
Toda a rota manual em um bloco, lerobot 0.6.1.

Quando SmolVLA é a escolha errada

O teste para saber se o SmolVLA foi a primeira execução certa não é se funcionou, mas se a falha lhe disse algo. Atingir 60 ou 70 por cento e um modelo maior é um próximo investimento razoável: os dados carregam sinal. Atingir 10 por cento e um modelo de 3 B provavelmente também atinge 10 por cento, o que você acabou de aprender por três dólares em vez de doze.

A matriz de treinamento AY-Robots: cinco políticas como linhas, quatro braços de robô como colunas
Cada célula é o seu próprio guia. O SmolVLA tem um para cada um dos quatro braços.

Vale a pena ler antes de gastar mais: Pi0.5 contra SmolVLA para mais capacidade com a mesma ideia, e GR00T N1.7 contra SmolVLA para a rota NVIDIA, ambos com camada de 80 GB a 4 a 12 USD por execução. A outra forma, ACT é a linha de base mais barata: 80 M parâmetros, 20 ms por passo de ação, sem condicionamento de linguagem. Todos os cinco estão em a página de políticas; a arena tem 85 modelos e 332 resultados de benchmark.

A comparação de políticas AY-Robots: parâmetros, camada de GPU, latência, episódios mínimos
Os quatro números que decidem uma execução.

A lista de verificação antes de escalar qualquer coisa

  1. O lr atingiu seu limite inferior de 2.5e-6? Abaixo de 30000 passos, o lerobot reescala o decaimento e informa isso na inicialização; acima disso, defina --policy.scheduler_decay_steps você mesmo.
  2. Mais de um checkpoint, e episódios separados com --dataset.eval_split para que a perda de avaliação signifique algo.
  3. A política se move? Uma perda em queda com um braço imóvel tem causas específicas: a perda cai, a política não faz nada.
  4. Sobrevive a uma mudança de cenário? Se não: a política só funciona em uma configuração.
  5. Você anotou a seed? O lerobot usa 1000 por padrão, então duas execuções intocadas permanecem comparáveis.
  6. Só então: mais episódios, mais variação ou um modelo maior. Nessa ordem.

Para entender por que esses modelos existem e o que eles fazem com a entrada de linguagem, é o contexto; executa a montagem através da até a primeira execução de . Para o checkpoint finalizado, ; se o braço nunca aparecer, .

Treine o SmolVLA no seu próprio braço

Escolha o modelo e o braço, e o guia fornecerá os padrões exatos, o formato do conjunto de dados e os custos da execução. O SmolVLA está no nível de 24 GB, custando de 1 a 3 USD por execução.

Abrir os guias de treinamento
Posso realmente fazer o fine-tuning do SmolVLA numa RTX 4090?

Sim. O guia de computação do LeRobot indica que o SmolVLA utiliza aproximadamente 10 a 16 GB de VRAM de pico com batch 8 e AdamW, e lista placas de consumo de 24 GB como confortáveis para ele. O batch 64 no exemplo da documentação é emparelhado com uma única A100. A memória escala aproximadamente linearmente com o batch, então use 4 ou 8 e observe mem_gb.

Quantos episódios eu realmente preciso?

A AY-Robots define o mínimo em 30. A documentação do LeRobot recomenda cerca de 50 e relata que 25 episódios da mesma tarefa tiveram um desempenho ruim. A estrutura supera a quantidade: o conjunto de referência consistia em 5 posições de cubo com 10 episódios cada, e essa repetição é o que generaliza.

A documentação diz batch 64, a plataforma envia batch 2. Qual está certo?

Ambos, para hardware diferente. O exemplo da documentação usa batch 64 e menciona cerca de 4 horas para 20000 passos numa única A100; o ponto de referência A100 de 40 GB do guia de computação é batch 16. Batch 2 é o que a AY-Robots envia no nível de 24 GB. Localmente, 4 a 8 é o meio-termo, e a aritmética da época muda com isso.

SmolVLA ou ACT para uma primeira execução num SO-100?

ACT se a tarefa for um movimento repetitivo e você quiser o loop mais rápido: 20 ms por passo de ação, 80 M parâmetros, sem condicionamento de linguagem. SmolVLA se você quiser condicionamento de linguagem, várias strings de tarefa num único checkpoint e uma base pré-treinada. Ambos se encaixam no nível de 24 GB, então a escolha é a tarefa, não o orçamento.

Preciso definir --policy.scheduler_decay_steps?

Apenas quando --steps estiver acima de 30000. O SmolVLA predefine o decaimento cosseno em 30000 passos, e o lerobot 0.6.1 o reescala automaticamente para uma execução mais curta, registrando "Auto-scaling LR scheduler" quando o faz. Ele nunca escala para cima, então o --steps=100000 padrão deixa os últimos 70000 passos no limite de 2.5e-6.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started