Prédiction de sous-tâches
Blog|

Prédiction de sous-tâches

S
Sereact5 min de lecture
Subtask Prediction

En bref

  • Conscience de la tâche. Un module dédié de prédiction de subtask indique à la policy quelle phase d'une tâche à long horizon est active à cet instant, éliminant une source majeure d'échecs sur les tâches longues.
  • Perception nativement vidéo. Notre Subtask Predictor traite les dernières images de l'historique visuel.
  • Conditionnement sans refonte. Les embeddings de subtask alimentent directement le world model comme signal de conditionnement, avant que les futurs candidats ne soient générés. La boucle de planification devient ainsi consciente de la phase de la tâche, sans modifier le pipeline d'action en aval.
  • 95 % de précision de classification sur notre jeu d'évaluation, avec des gains mesurables du taux de réussite de bout en bout par rapport aux policies sans conditionnement par subtask.

Introduction

Cortex 2.0 a introduit la planification fondée sur un world model dans notre stack de manipulation : avant de s'engager dans une action, le robot imagine des futurs candidats et retient le plus prometteur. Cela répond à la question de quoi faire ensuite. Mais dans les flux industriels à long horizon comme le traitement des retours, le kitting ou l'assemblage en plusieurs étapes, la policy doit répondre à une question complémentaire : où en suis-je dans la tâche globale ?

Prenons un flux de traitement des retours. Le robot doit ouvrir un colis, identifier l'article, le prélever, en évaluer l'état et le déposer dans le bon bac. Une policy réactive exécute bien chaque action élémentaire, mais sans conscience explicite de la phase en cours, elle est exposée à une classe d'échecs subtile : non pas rater une prise, mais se tromper sur la prise à effectuer, ou tenter un scan avant que l'article soit entièrement extrait. Ces échecs s'accumulent sur les horizons longs et sont difficiles à rattraper, car l'erreur ne porte pas sur le mouvement mais sur le contexte.

Le module de prédiction de subtask y répond en classant en continu la phase courante de la tâche à partir de l'historique visuel. Plutôt que de nous appuyer sur des machines à états écrites à la main ou sur une décomposition de la tâche par le langage, nous entraînons notre Subtask Predictor, un VLM, à reconnaître les frontières entre subtasks directement à partir de ce que voit le robot. Le subtask classé est encodé puis transmis au world model comme entrée de conditionnement, de sorte que les rollouts futurs candidats soient générés en tenant compte de la phase à exécuter.

Pick & place : 2 subtasks

Flux de pick-and-place montrant les subtasks de prélèvement et de dépose

Traitement des retours : 6 subtasks

Flux de traitement des retours montrant les subtasks ouvrir le colis, déballer, déplier, nettoyer, plier et remballer

Pourquoi la conscience des subtasks compte

La plupart des échecs de manipulation en production ne relèvent pas de la physique de la préhension. Ils relèvent de l'enchaînement. Un robot excellent au prélèvement mais incertain sur le fait qu'il doive prélever ou déposer échouera sur la tâche globale. Les tâches courtes, par exemple le pick-and-place, où les états de départ et d'arrivée sont clairement définis, fonctionnent de manière fiable avec des policies réactives. Mais les flux plus complexes sont des compositions de nombreuses étapes de ce type, et c'est aux transitions que tout se joue. Deux de nos déploiements de référence l'illustrent :

Traitement des retours

Un seul cycle de retour comprend l'ouverture du colis, l'extraction de l'article, son inspection et son classement, puis son remballage. Chaque phase impose des exigences de manipulation différentes : déballage soigneux, évaluation précise, remballage propre. Sans conscience explicite de la phase, la policy applique parfois la mauvaise stratégie de manipulation au contexte courant, ce qui conduit à des extractions manquées ou à des articles mal orientés.

Kitting

Les flux de kitting exigent du robot qu'il prélève des articles précis dans l'ordre et les place dans un emballage compartimenté. Un article peut être déposé au même emplacement que le précédent, ou la commande peut être considérée comme terminée alors que des articles manquent encore. Plus le kit est long et complexe, plus il devient critique que la policy sache où elle en est dans la séquence.

Cross-embodiment et multi-tâches :

Nous explorons la prédiction de subtasks sur l'ensemble de nos tâches de recherche et de nos embodiments :

  1. Mobile Trossen : approche de l'armoire de stockage, ouverture de l'armoire, prélèvement de la bouteille dans l'armoire, dépose de la bouteille dans le conteneur, fermeture de l'armoire
  1. Humanoid Bottle : détection d'une personne qui approche, prélèvement de la bouteille d'eau, remise de la bouteille à la personne
  1. Dualarm Candy : prélèvement de la boîte, déplacement de la boîte vers le poste de remplissage, prélèvement du bonbon, dépose du bonbon dans la boîte, fermeture de la boîte, dépose de la boîte dans le compartiment

Réduire le biais de distribution des actions

Le conditionnement par subtask contribue aussi à réduire le biais de distribution des actions. Lorsque le world model sait quelle phase est active, il retombe moins souvent par défaut sur la primitive de manipulation la plus fréquente dans les données d'entraînement et génère plus volontiers des futurs qui reflètent la dynamique propre à la phase en cours.

Architecture

Le module de prédiction de subtask est un module léger de contexte de tâche qui alimente la boucle de planification de Cortex 2.0, en conditionnant le world model avec le contexte de phase avant que la planification ne commence. À haut niveau, le module comporte deux flux alignés, avec un encodeur vidéo et un encodeur texte.

Encodage visuel avec le Subtask Predictor

Le Subtask Predictor ingère les images les plus récentes de l'historique visuel issu du flux caméra du robot. Une image isolée ne permet pas de distinguer « approcher pour prélever » de « approcher pour déposer » : la main est à peu près au même endroit, la pince a la même allure, seul l'historique récent diffère. En traitant plusieurs images passées à la fois, le modèle lève ces ambiguïtés directement à partir du mouvement et de la dynamique de la scène, plutôt qu'à partir d'heuristiques écrites à la main. C'est la même observation qui motive l'agrégation temporelle dans la littérature sur la segmentation d'actions.

Pour agréger cette séquence en une représentation de taille fixe, nous ajoutons un petit ensemble de tokens de requête de subtask appris. Le Subtask Predictor encode ces images en un embedding conjoint qui capte à la fois l'état courant de la scène et la dynamique temporelle des actions récentes.

Flux texte et entraînement contrastif

Parallèlement au flux visuel, un petit encodeur texte projette chaque description de subtask de référence (par exemple « plier un jean » ou « déposer l'article dans la boîte ») vers un Subtask Query Embedding zt de même dimension que zv, lui aussi normalisé en L2.

Les deux flux sont entraînés conjointement. Pour chaque clip d'entraînement, le modèle produit deux embeddings : zv et zt. Ces deux embeddings décrivent le même événement sous-jacent selon deux modalités différentes, et l'objectif d'entraînement est de les aligner. Concrètement, nous minimisons une perte InfoNCE symétrique à température apprise, identique à l'objectif contrastif utilisé dans CLIP. Au sein de chaque batch de N paires (clip, description), la perte maximise la similarité cosinus des paires correspondantes (subtask positif) et la minimise pour toutes les paires non correspondantes (subtasks négatifs), dans les deux sens (clip vers texte et texte vers clip). Cela façonne la représentation visuelle de sorte que la proximité dans l'espace projeté corresponde à une similarité sémantique de phase de tâche.

Le dispositif devient ainsi open-vocabulary : l'encodeur visuel a appris une correspondance générale entre vidéos et un espace d'embedding façonné par le langage. Comme cet espace est structuré par le langage plutôt que par une liste de classes figée, introduire un nouveau subtask demande seulement d'ajouter sa description à la banque, sans réentraîner la couche de classification. Cela fonctionne bien lorsque le nouveau subtask est une recomposition de primitives et d'éléments visuels familiers ; des compétences de manipulation réellement inédites exigent bien sûr encore des données d'entraînement supplémentaires.

À l'inférence, l'architecture se réduit à un flux unique. L'encodeur texte n'est pas chargé et le robot ne voit jamais d'étiquettes de référence en exploitation. Seul le flux visuel s'exécute, produisant un embedding d'observation zv qui vit déjà dans l'espace de subtasks aligné sur le langage.

Intégration avec Cortex 2.0

L'embedding d'observation continu zv et l'étiquette discrète de subtask décodée sont transmis comme entrées de conditionnement au world model, avant la génération des trajectoires futures candidates. Les rollouts du world model sont ainsi conscients de la phase dès le départ : en prédisant les états futurs, il sait si le robot se trouve en phase d'ouverture de colis ou d'inspection, et génère les candidats en conséquence. Le scoring PRO en aval et la génération d'actions travaillent alors sur des rollouts qui reflètent déjà le bon contexte de tâche.

C'est un choix d'architecture déterminant. Plutôt que de corriger la policy après la planification (en conditionnant l'action expert), nous conditionnons la planification elle-même. Le world model génère des futurs candidats fondamentalement différents selon le subtask en cours. Le module PRO note ensuite ces candidats adaptés à la phase, et la VLA exécute le meilleur : toute la boucle de planification est consciente du subtask, pas seulement la sortie d'action finale.

L'inférence tourne en continu et de façon asynchrone. Dès que la classification précédente se termine, une nouvelle inférence est déclenchée immédiatement sur les images les plus récentes.

Évaluation

Nous évaluons le module de prédiction de subtask selon deux axes : la précision de classification du prédicteur lui-même, et l'effet en aval sur la réussite de bout en bout lorsque la policy est conditionnée par les prédictions de subtask.

Précision de la classification des subtasks

Sur un jeu de test réservé de séquences de manipulation annotées, le Subtask Predictor atteint 94,6 % de précision de classification au niveau de l'image. Nous mesurons cela en comparant les prédictions de subtask du modèle image par image à des annotations de référence produites par des annotateurs humains, sur un jeu réservé de séquences de manipulation non vues à l'entraînement. Chaque image reçoit une étiquette de subtask de référence, et la précision se calcule comme la fraction d'images où l'étiquette prédite correspond. Les erreurs se concentrent aux frontières entre subtasks, plutôt que de constituer des erreurs systématiques sur des phases entières.

Réussite de bout en bout

Nous comparons la policy Cortex 2.0 complète, avec et sans prédiction de subtask, sur l'ensemble de nos flux de déploiement, du point de vue de la réussite de bout en bout.

Le jeu d'évaluation présente une distribution inégale des tâches, plutôt orientée pick-and-place, suivie du traitement des retours et du kitting. Sur l'ensemble de nos flux de déploiement, le conditionnement par subtask fait passer la réussite de bout en bout de 91,8 % à 97,4 %. L'effet croît avec la longueur de la tâche : le traitement des retours (5+ transitions de phase) enregistre le gain le plus important, à 16,1 points de pourcentage (pp), le kitting 9,3 pp, tandis que les tâches courtes de pick-and-place n'affichent qu'une amélioration minime (1,4 pp), comme attendu. Avec peu de transitions, la policy réactive dispose déjà d'un contexte suffisant à partir de l'observation courante.

Taux de réussite de bout en bout par flux, avec et sans prédiction de subtask

Analyse des échecs

Sans prédiction de subtask, le mode d'échec le plus fréquent sur les tâches à long horizon n'est ni une prise manquée ni une collision, mais la policy qui applique la mauvaise stratégie de manipulation pour la phase en cours. Par exemple, tenter un mouvement de dépose alors que l'article n'est pas encore entièrement extrait, ou relancer une séquence de prélèvement alors que l'article est déjà saisi. Ces échecs coûtent particulièrement cher, car ils exigent souvent une intervention humaine : l'état du robot s'est écarté de toute trajectoire récupérable.

Avec la prédiction de subtask, cette classe d'échecs se réduit fortement. La policy reçoit un signal explicite sur la phase courante, ce qui évite les erreurs d'enchaînement les plus flagrantes. Les échecs résiduels relèvent plutôt d'erreurs d'exécution au sein d'une phase (une prise qui glisse, par exemple) que d'une confusion entre phases.

Réduction relative des erreurs par mode d'échec, avec et sans prédiction de subtask

Exécution réussie de tous les subtasks

Mode d'échec : erreurs d'enchaînement

Mode d'échec : échecs de préhension

Mode d'échec : collisions

Où nous en sommes aujourd'hui

Le module de prédiction de subtask est aujourd'hui déployé aux côtés de Cortex 2.0 dans nos flux de traitement des retours et de kitting. Nous élargissons l'ensemble des descriptions de subtasks à mesure que nous intégrons de nouvelles tâches, et nous augmentons la diversité des données d'entraînement pour gagner en robustesse sur différents environnements d'entrepôt et différentes gammes d'articles.

L'approche par embeddings de texte contrastifs nous rapproche déjà d'une découverte de subtasks en open-vocabulary, où le modèle identifie les phases d'une tâche à partir des données, sans annotation manuelle d'une liste de classes figée. Cela réduit l'effort d'ingénierie nécessaire pour déployer la prédiction de subtask sur de nouveaux flux et permet au système de s'adapter à des structures de tâche inédites au moment du déploiement.

Combinée aux capacités de planification de Cortex 2.0, la prédiction de subtask nous rapproche de systèmes de manipulation qui ne se contentent pas de raisonner sur ce qu'il faut faire ensuite, mais comprennent où ils se situent dans le contexte plus large de la tâche. Cette capacité nous aidera à résoudre plus fiablement l'autonomie à long horizon.

Ressources de l'article

Accédez au contenu et aux fichiers de cet article

Contenu texte

Copiez l'intégralité du texte de l'article dans le presse-papiers pour le lire ou le partager facilement.

Ressources visuelles

Téléchargez dans un fichier ZIP toutes les images haute résolution utilisées dans cet article.

Derniers articles