Action Chunking
O agrupamento de ações faz com que uma política robótica preveja uma sequência de ações futuras a partir de uma única observação, reduzindo a acumulação de erros. Aborda ACT, suavização e VLAs.
A segmentação de ações em blocos é uma técnica de aprendizagem robótica em que uma política prevê uma sequência, ou bloco, das próximas k ações a partir de uma única observação, em vez de prever uma ação por etapa de controlo. O nome retoma um conceito da psicologia e da neurociência: agrupar uma sequência de ações numa única unidade. A técnica entrou na aprendizagem robótica com Segmentação de ações em blocos com Transformers (ACT), em 2023. O ACT aprendeu tarefas bimanuais delicadas, como encaixar uma bateria, com 80-90% de sucesso e apenas 10 minutos de demonstrações nos braços ALOHA de baixo custo. A previsão em blocos é agora padrão na aprendizagem por imitação e nos modelos de visão-linguagem-ação (VLA) concebidos para robótica de uso geral.
Por que a previsão em blocos ajuda#
Na clonagem comportamental, uma política aprende a imitar as ações das demonstrações humanas. Cada pequeno erro leva o robô a um estado não abrangido pelas demonstrações, no qual a previsão seguinte é pior, e os erros acumulam-se ao longo de uma tarefa extensa. Uma política que se compromete com k ações por previsão toma k vezes menos decisões por episódio, o que os autores do ACT descrevem como uma redução k vezes no horizonte efetivo da tarefa. Na ablação simulada, a média de sucesso em duas tarefas subiu de 1%, com a previsão de uma ação de cada vez, para 44%, com blocos de 100 ações.
Os blocos também captam intervalos de tempo que uma única observação não consegue captar. As pessoas que fazem demonstrações param e hesitam, e uma política de uma só etapa que vê a mesma imagem antes e depois de uma pausa não consegue saber se deve esperar ou mover-se; um bloco que inclui a pausa reproduz-a. E, quando as demonstrações mostram duas maneiras válidas de realizar uma tarefa, prever a sequência completa de uma só vez mantém o robô a seguir uma delas, em vez de fazer a média das duas.
O robô executa um bloco e, em seguida, pede outro à política:
Replanear depois do bloco completo reduz ao mínimo as chamadas ao modelo; replanear depois de parte do bloco, como faz a Diffusion Policy, segue a ideia de horizonte deslizante do controlo preditivo baseado em modelo e reage mais depressa a imprevistos.
Suavizar as transições entre blocos#
O robô move-se em circuito aberto dentro de um bloco, e cada novo bloco começa com uma previsão nova, por isso o movimento pode dar um salto na transição entre blocos. A combinação temporal do ACT consulta a política em cada etapa e executa uma média ponderada das previsões de todos os blocos para a etapa atual, com pesos exp(−m·i) que dão maior peso à previsão mais antiga. Este exemplo em NumPy compara a segmentação simples em blocos com a combinação temporal para uma política substituta em que cada bloco contém um pequeno erro próprio:
import numpy as np
rng = np.random.default_rng(0)
k, steps, m = 10, 100, 0.1 # chunk size, episode length, temporal-ensembling decay
target = np.sin(np.linspace(0, np.pi, steps + k)) # the demonstrated joint trajectory
# Stand-in policy: at step t it predicts actions for steps t..t+k-1, each chunk off by its own error
chunks = [target[t : t + k] + rng.normal(0, 0.05) for t in range(steps)]
# Plain chunking: query every k steps and execute each chunk open loop
plain = np.concatenate([chunks[t] for t in range(0, steps, k)])
# Temporal ensembling (ACT): query every step and average all predictions for step t, oldest weighted most
ensembled = []
for t in range(steps):
preds = [chunks[s][t - s] for s in range(max(0, t - k + 1), t + 1)]
weights = np.exp(-m * np.arange(len(preds)))
ensembled.append(np.dot(weights, preds) / weights.sum())
for name, actions in (("plain", plain), ("ensembled", np.array(ensembled))):
print(f"{name}: largest jump between consecutive actions = {np.abs(np.diff(actions)).max():.3f}")
print(f"demonstration: largest jump = {np.abs(np.diff(target[:steps])).max():.3f}")A segmentação simples em blocos produz um salto máximo de 0,085 entre etapas, cerca de três vezes superior aos 0,029 da demonstração, numa transição entre blocos. A combinação reduz o salto para 0,044, pois cada ação executada calcula a média de até dez previsões feitas a partir de observações diferentes.
Os modelos maiores tornam as transições mais difíceis de disfarçar, pois a inferência pode demorar mais do que uma etapa de controlo. A segmentação de blocos em tempo real da Physical Intelligence gera o bloco seguinte enquanto o atual ainda está a ser executado, congela as ações que serão executadas durante o atraso de inferência e preenche as restantes para corresponder a elas; isso permitiu manter tarefas dinâmicas, como riscar um fósforo, mesmo com atrasos superiores a 300 ms.
Fragmentação de ações em políticas robóticas modernas#
- ACT: Um Transformer treinado como um autoencoder variacional condicional que produz blocos de 100 alvos de posição das articulações, correspondentes a dois segundos de movimento à frequência de controlo de 50 Hz do ALOHA.
- Políticas de difusão: Estas geram cada sequência de ações removendo ruído iterativamente, o que representa bem demonstrações com várias soluções distintas.
- Modelos VLA: O π0 da Physical Intelligence combina um modelo de visão e linguagem com um especialista em ações treinado por correspondência de fluxo, que produz blocos de 50 ações para controlo até 50 Hz. A biblioteca LeRobot da Hugging Face fornece implementações abertas de ACT, Diffusion Policy e π0.
A maioria destas políticas codifica imagens brutas de câmaras com uma rede de extração de características aprendida. Em vez disso, uma política pode condicionar-se às posições dos objetos obtidas por um detetor: um modelo Ultralytics YOLO26 ajustado com as peças de uma célula de trabalho transforma cada fotograma em algumas coordenadas de caixa ou de ponto-chave, que a política em blocos usa como estado em vez dos píxeis brutos.
Fragmentação de ações vs. conceitos relacionados#
- Reconhecimento de ações: Identifica a atividade num vídeo. A fragmentação de ações gera os comandos executados por um robô.
- Controlo preditivo baseado em modelo: Otimiza uma sequência de ações com base num modelo de dinâmica a cada passo. Uma política em blocos aprende as suas sequências a partir de demonstrações e não precisa de um modelo.
- Modelos de ação de grande escala: Agentes de IA que atuam em interfaces de software através de cliques e chamadas de API. A fragmentação de ações diz respeito a comandos motores de baixo nível, como o vetor de 14 dimensões das posições das articulações que o ACT produz para os dois braços do ALOHA a cada passo.










