Maison >Périphériques technologiques >IA >Combien d'étapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Combien d'étapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

WBOY
WBOYavant
2023-04-14 12:49:081152parcourir

Pour les robots, La planification des tâches est un problème inévitable.

Si vous souhaitez accomplir une tâche du monde réel, vous devez d'abord savoir combien d'étapes sont nécessaires pour installer un éléphant dans le réfrigérateur.

Même la tâche relativement simple de lancer une pomme contient plusieurs sous-étapes Le robot doit d'abord observer la position de la pomme. Si ne voit pas la pomme, il doit continuer à regarder. , puis approchez-vous de la pomme , attrapez la pomme et trouvez et approchez-vous de la poubelle .

Si la poubelle est fermée , vous devez d'abord l'ouvrir , puis y jeter les pommes et fermer la poubelle .

Mais les détails spécifiques de mise en œuvre de chaque tâche ne peuvent pas tous être conçus par des humains. Comment générer des séquences d'action via une seule commande devient un problème difficile.

Utiliser la commande pour générer une séquence ? N'est-ce pas exactement le travail du Language Model ?

Dans le passé, les chercheurs ont utilisé de grands modèles de langage (LLM) pour évaluer le prochain espace d'action potentiel en fonction des instructions de tâche d'entrée, puis générer des séquences d'action. Les instructions sont décrites en langage naturel et ne contiennent pas d'informations de domaine supplémentaires.

Mais de telles méthodes doivent soit énumérer toutes les prochaines actions possibles pour la notation, soit le texte généré n'a aucune restriction de forme, qui peut contenir des actions qui sont impossibles pour un robot spécifique d'entreprendre dans l'environnement actuel.

Récemment, l'Université de Californie du Sud et NVIDIA ont lancé conjointement un nouveau modèle ProgPrompt, qui utilise également un modèle de langage pour effectuer la planification des tâches sur les instructions de saisie. Il contient une structure d'invite programmée, de sorte que le plan généré. peut être utilisé dans différentes situations. Il peut jouer un rôle dans l'environnement, des robots avec différentes capacités et différentes tâches.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Afin d'assurer la standardisation des tâches, les chercheurs utilisent générer du code de style python pour demander au modèle de langage quelles actions sont disponibles, quels objets se trouvent dans l'environnement et quels programmes sont exécutables.

Par exemple, saisir la commande "lancer la pomme" peut générer le programme suivant. Le modèle

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

ProgPrompt a atteint des performances sota sur des tâches virtuelles à domicile, et les chercheurs ont également déployé le modèle sur un bras robotique physique pour les tâches de bureau.

Modèle de langage fantastique

Accomplir les tâches ménagères quotidiennes nécessite à la fois une compréhension sensée du monde et une connaissance de la situation de l'environnement actuel.

Afin de créer un plan de tâche de « préparation du dîner », les connaissances minimales que l'agent doit connaître comprennent : Fonction des objets, tels que les cuisinières et les micro-ondes, peuvent être utilisés pour le chauffage ; , avant d'ajouter des aliments Le four doit être préchauffé au préalable ; et les tâches de corrélation des objets et des actions, comme chauffer et trouver les ingrédients sont les premières actions liées au « dîner ».

Mais sans

retour d'état, ce genre de raisonnement ne peut pas être réalisé.

L'agent doit savoir

où se trouve la nourriture dans l'environnement actuel, par exemple s'il y a du poisson dans le réfrigérateur ou s'il y a du poulet dans le réfrigérateur.

Un grand modèle de langage autorégressif formé sur un grand corpus peut générer des séquences de texte sous condition d'invites de saisie, avec d'importantes capacités de généralisation multitâches.

Par exemple, si vous saisissez « préparer le dîner », le modèle de langage peut générer des séquences ultérieures, comme ouvrir le réfrigérateur, ramasser le poulet, ramasser le soda, fermer le réfrigérateur, allumer l'interrupteur, etc. .

La séquence de texte générée doit être mappée sur l'espace d'action de l'agent. Par exemple, l'instruction générée est « tendre la main et ramasser un pot de cornichons », et l'action exécutable correspondante peut être « ramasser le jar", puis le modèle calculera la valeur du score de probabilité de l'action.

Mais en l'absence de retour environnemental, s'il n'y a pas de poulet dans le réfrigérateur et que vous choisissez quand même l'action « ramasser le poulet », la tâche échouera, car « préparer le dîner » ne contient aucune information sur le état du monde.

Le modèle ProgPrompt exploite intelligemment les constructions du langage de programmation dans la planification des tâches, car les modèles de langage à grande échelle existants sont généralement pré-entraînés sur des corpus de didacticiels de programmation et de documents de code.

ProgPrompt fournit au modèle de langage un en-tête de programme Pythonic comme invite, important l'espace d'action disponible, les paramètres attendus et les objets disponibles dans l'environnement.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Ensuite définir des fonctions telles que make_dinner, throw_away_banana, etc. dont le corps est une séquence d'action qui opère sur l'objet, puis affirmer les prérequis prévus , comme avant d'essayer de ouvrez le réfrigérateur Incorporez les commentaires d'état dans l'environnement en restant près du réfrigérateur et en utilisant des actions de récupération en réponse aux échecs d'assertion.

Le plus important est que le programme ProgPrompt comprend également des annotations écrites en langage naturel pour expliquer les objectifs de l'action, améliorant ainsi le taux de réussite de l'exécution des tâches du planificateur généré.

ProgPrompt

Avec l'idée complète, le flux de travail global de ProgPrompt est clair, qui comprend principalement trois parties, Construction de fonctions Python, invites de langage de programmation construites, génération et exécution du plan de tâches.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

1. Exprimez le plan du robot sous forme de fonction pythonique

La fonction de planification comprend des appels API aux primitives d'action, résumant les actions et ajoutant des commentaires, ainsi que le suivi de l'assertion d'exécution.

Chaque primitive d'action nécessite un objet comme paramètre. Par exemple, la tâche "Mettre le saumon au micro-ondes" inclut un appel à find(salmon), où find est une primitive d'action.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Utilisez les commentaires dans le code pour fournir des résumés en langage naturel des séquences d'action ultérieures. Les commentaires aident à diviser les tâches de haut niveau en sous-tâches logiques, à savoir « attraper le saumon » et « mettre le saumon au micro-ondes ».

Les annotations peuvent également permettre au modèle de langage de comprendre l'objectif actuel et de réduire la possibilité de résultats incohérents, incohérents ou répétés, semblable à une chaîne de penséegénérant des résultats intermédiaires. Les

Assertions fournissent un mécanisme de rétroaction environnementale pour garantir que les conditions préalables sont vraies et mettre en œuvre la récupération des erreurs lorsqu'elles ne sont pas vraies. Par exemple, avant l'action de saisie, le plan affirme que l'agent s'est approché du saumon, sinon le plan affirme que l'agent s'est approché du saumon. agent L'action de recherche doit être exécutée en premier.

2. Construction d'une invite de langage de programmation

l'invite doit fournir des informations sur l'environnement et les principales actions du modèle de langage, y compris des observations, des primitives d'action, des exemples, et génère une invite Pythonique pour le langage. Achèvement du modèle.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Ensuite, le modèle de langage prédit comme fonction exécutable, à savoir Microwave_salmon()

Dans la tâche de passer le saumon au micro-ondes, la première étape que LLM peut générer et est raisonnable est de retirer le saumon, mais est responsable de L'agent exécutant le plan peut ne pas avoir une telle primitive d'action.

Pour que le modèle de langage comprenne les primitives d'action de l'agent, importez-les via l'instruction d'importation dans l'invite, ce qui limite également la sortie aux fonctions disponibles dans l'environnement actuel.

Pour modifier l'espace de comportement de l'agent, il vous suffit de mettre à jour la liste des fonctions importées.

La variable objets fournit tous les objets disponibles dans l'environnement sous forme de liste de chaînes.

prompt comprend également des plans de programme entièrement exécutables à titre d'exemples, chaque exemple de tâche montre comment effectuer une tâche donnée en utilisant les actions et les objectifs disponibles dans un environnement donné, tels que throw_away_lime

3. du plan de tâche

Après une tâche donnée, le plan est complètement déduit par le modèle de langage basé sur l'invite ProgPrompt, puis le plan généré peut être exécuté sur l'agent virtuel ou le système de robot physique, un interprète est requis pour exécuter chaque commande d’action contre l’environnement.

Pendant l'exécution, la vérification des assertions se produit en boucle fermée et fournit des commentaires basés sur l'état actuel de l'environnement.

Dans la partie expérimentale, les chercheurs ont évalué la méthode sur la Plateforme de simulation Virtual Home (VH).

Le statut de VH comprend un ensemble d'objets et d'attributs correspondants, tels que le saumon à l'intérieur du four à micro-ondes (in), ou à proximité (agent_close_to), etc.

L'espace d'action comprend saisir, pousser, remettre, marcher, trouver, ouvrir, fermer, etc.

Au final, 3 environnements VH ont été expérimentés, chaque environnement comprenait 115 objets différents. Les chercheurs ont créé un ensemble de données contenant 70 tâches ménagères, avec un haut niveau d'abstraction, et les commandes étaient toutes telles que "Microwave Salmon". , et créez une séquence d'action de vérité terrain pour cela.

Après avoir évalué le programme généré sur la famille virtuelle, les indicateurs d'évaluation incluent le taux de réussite (SR), le rappel conditionnel cible (GCR) et l'exécutabilité (Exec). D'après les résultats, on peut voir que ProgPrompt est nettement meilleur que). la ligne de base et LangPrompt, le tableau montre également comment chaque fonctionnalité améliore les performances.

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

Les chercheurs ont également mené des expériences dans le monde réel, en utilisant un robot panda Franka-Emika doté de griffes parallèles, et ont émis l'hypothèse qu'une stratégie de placement pourrait être obtenue.

Cette stratégie prend en entrée deux nuages ​​de points d'un objet cible et d'un conteneur cible, et effectue des opérations de sélection et de placement pour placer l'objet sur ou à l'intérieur du conteneur.

L'implémentation du système introduit un modèle de détection d'objets à vocabulaire ouvert ViLD pour identifier et segmenter les objets dans la scène et créer une liste d'objets disponibles dans l'invite.

Contrairement à l'environnement virtuel, ici la liste d'objets est une variable locale de chaque fonction de planification, ce qui permet plus de flexibilité pour s'adapter à de nouveaux objets.

Le plan généré par le modèle de langage contient des appels de fonction sous la forme de grab et de putin.

En raison des incertitudes du monde réel, l'option en boucle fermée basée sur les assertions n'a pas été implémentée dans la configuration expérimentale .

Combien détapes faut-il pour installer un éléphant dans le réfrigérateur ? NVIDIA lance ProgPrompt, permettant aux modèles de langage de planifier des plans pour les robots

On peut voir que dans la tâche de classification, le robot a pu identifier les bananes et les fraises comme des fruits et générer des étapes de planification pour les placer dans l'assiette et les bouteilles dans la boîte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer