Action Chunking
Le découpage en séquences d’actions amène une politique robotique à prédire une séquence d’actions futures à partir d’une observation, ce qui limite l’accumulation des erreurs. Présentation d’ACT, du lissage et des VLA.
Le regroupement des actions en séquences est une technique d’apprentissage robotique dans laquelle une politique prédit une séquence, ou un bloc, des k prochaines actions à partir d’une seule observation, au lieu de prédire une action à chaque étape de contrôle. Le nom reprend un concept de psychologie et de neurosciences : regrouper une séquence d’actions en une seule unité. Il est entré dans le domaine de l’apprentissage robotique avec Action Chunking with Transformers (ACT) en 2023. ACT a appris des tâches bimanuelles délicates, comme insérer une batterie dans un logement, avec un taux de réussite de 80 à 90 % à partir de seulement 10 minutes de démonstrations sur les bras ALOHA à bas coût. La prédiction par blocs est désormais courante en apprentissage par imitation et dans les modèles vision-langage-action (VLA) conçus pour la robotique polyvalente.
Pourquoi la prédiction par blocs est utile#
En imitation du comportement, une politique apprend à reproduire les actions des démonstrations humaines. Chaque petite erreur place le robot dans un état que les démonstrations n’ont jamais couvert, où la prédiction suivante est moins bonne ; les erreurs s’accumulent donc au cours d’une tâche longue. Une politique qui s’engage sur k actions par prédiction prend k fois moins de décisions par épisode, ce que les auteurs d’ACT décrivent comme une réduction d’un facteur k de l’horizon effectif de la tâche. Dans leur étude d’ablation simulée, le taux de réussite moyen sur deux tâches est passé de 1 % avec la prédiction d’une action à la fois à 44 % avec des blocs de 100 actions.
Les blocs capturent aussi des éléments de timing qu’une observation unique ne peut pas saisir. Les personnes qui font les démonstrations s’arrêtent et hésitent ; une politique à une étape qui observe la même image avant et après une pause ne peut pas savoir s’il faut attendre ou bouger, tandis qu’un bloc qui inclut la pause la reproduit. Et lorsque les démonstrations montrent deux façons valides d’accomplir une tâche, prédire toute la séquence d’un coup permet au robot d’en suivre une sans faire de moyenne entre les deux.
Le robot exécute un bloc, puis demande à la politique d’en prédire un nouveau :
Replanifier à la fin du bloc entier réduit au minimum les appels au modèle ; replanifier après une partie du bloc, comme le fait Diffusion Policy, suit le principe de l’horizon glissant du contrôle prédictif par modèle et permet de réagir plus vite aux imprévus.
Lisser les transitions entre les blocs#
Le robot se déplace en boucle ouverte pendant un bloc, et chaque nouveau bloc commence par une prédiction fraîche ; le mouvement peut donc subir un à-coup au passage d’un bloc au suivant. L’ensemble temporel d’ACT interroge la politique à chaque étape et exécute une moyenne pondérée des prédictions de tous les blocs pour l’étape en cours, avec des poids exp(−m·i) qui accordent le poids le plus élevé à la prédiction la plus ancienne. Cet exemple NumPy compare le regroupement simple par blocs à l’ensemble temporel pour une politique de remplacement dont chaque bloc comporte une petite erreur :
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}")Le regroupement simple par blocs produit un saut maximal de 0,085 d’une étape à l’autre, environ trois fois supérieur aux 0,029 de la démonstration, à la jonction entre deux blocs. L’ensemble temporel réduit ce saut à 0,044, car chaque action exécutée fait la moyenne de jusqu’à dix prédictions issues d’observations différentes.
Les modèles plus grands rendent les transitions plus difficiles à dissimuler, car l’inférence peut prendre plus de temps qu’une étape de contrôle. Le regroupement en temps réel de Physical Intelligence génère le bloc suivant pendant que le bloc actuel est en cours d’exécution, fige les actions qui seront exécutées pendant le délai d’inférence, puis complète le reste en fonction de celles-ci ; cette méthode a permis de maintenir le fonctionnement de tâches dynamiques comme allumer une allumette malgré des délais supérieurs à 300 ms.
Découpage des actions dans les politiques robotiques modernes#
- ACT : un Transformer entraîné comme autoencodeur variationnel conditionnel, qui produit des blocs de 100 cibles de position articulaire, soit deux secondes de mouvement au rythme de commande de 50 Hz d’ALOHA.
- Politiques de diffusion : elles génèrent chaque séquence d’actions en la débruitant de manière itérative, ce qui leur permet de bien représenter les démonstrations comportant plusieurs solutions distinctes.
- Modèles VLA : le modèle π0 de Physical Intelligence associe un modèle vision-langage à un expert en actions entraîné par correspondance de flux, qui produit des blocs de 50 actions pour une commande pouvant atteindre 50 Hz. La bibliothèque LeRobot de Hugging Face fournit des implémentations ouvertes d’ACT, de Diffusion Policy et de π0.
La plupart de ces politiques encodent les images brutes des caméras à l’aide d’un backbone appris. Une politique peut plutôt se conditionner sur les positions des objets fournies par un détecteur : un modèle Ultralytics YOLO26 ajusté finement sur les pièces présentes dans une cellule de travail transforme chaque image en quelques coordonnées de boîtes ou de points clés, que la politique par blocs utilise comme état à la place des pixels bruts.
Découpage des actions et concepts associés#
- Reconnaissance d’actions : identifie l’activité dans une vidéo. Le découpage des actions génère les commandes exécutées par un robot.
- Commande prédictive par modèle : optimise à chaque étape une séquence d’actions en fonction d’un modèle dynamique. Une politique par blocs apprend ses séquences à partir de démonstrations et n’a pas besoin de modèle.
- Grands modèles d’action : agents d’IA qui agissent dans des interfaces logicielles au moyen de clics et d’appels API. Le découpage des actions concerne les commandes motrices de bas niveau, comme le vecteur à 14 dimensions des positions articulaires qu’ACT produit à chaque étape pour les deux bras d’ALOHA.










