Heim > Artikel > Technologie-Peripheriegeräte > Wie viele Schritte sind erforderlich, um einen Elefanten im Kühlschrank zu installieren? NVIDIA veröffentlicht ProgPrompt, mit dem Sprachmodelle Pläne für Roboter erstellen können
Für Roboter ist Aufgabenplanung ein unvermeidbares Problem.
Wenn Sie eine reale Aufgabe erledigen möchten, müssen Sie zunächst wissen, wie viele Schritte erforderlich sind, um einen Elefanten im Kühlschrank zu installieren.
Auch die relativ einfache Aufgabe „Einen Apfel werfen“ enthält mehrere Teilschritte , und dann nähere dich an den Apfel , nimm den Apfel und finde und nähere dich dem Mülleimer . Wenn der Mülleimer geschlossen ist, müssen Sie ihn zuerst öffnen , dann
die Äpfel hineinwerfenund den Mülleimer schließen . Aber die spezifischen Implementierungsdetails jeder Aufgabe können nicht alle von Menschen entworfen werden. Wie man Aktionssequenzen durch einen einzigen Befehl generiert, wird zu einem schwierigen Problem.
Den Befehl verwenden, um eine Sequenz zu generieren? Ist das nicht genau die Aufgabe des Sprachmodells?
In der Vergangenheit haben Forscher große Sprachmodelle (LLMs) verwendet, um den potenziellen nächsten Aktionsraum basierend auf Eingabeaufgabenanweisungen zu bewerten und dann Aktionssequenzen zu generieren. Anweisungen werden in natürlicher Sprache beschrieben und enthalten keine zusätzlichen Domäneninformationen. Aber solche Methoden müssen entweder alle möglichen nächsten Aktionen zur Bewertung aufzählen, oder der generierte Text unterliegt keinen Einschränkungen in der Form, was Aktionen enthalten kann, die
für einen bestimmten Roboter in der aktuellen Umgebung unmöglich sind. Kürzlich haben die University of Southern California und NVIDIA gemeinsam ein neues Modell
ProgPromptauf den Markt gebracht, das auch ein Sprachmodell zur Aufgabenplanung anhand von Eingabeanweisungen verwendet. Es enthält eine programmierte Eingabeaufforderungsstruktur, sodass der generierte Plan erstellt werden kann Es kann in verschiedenen Situationen eine Rolle spielen, Roboter mit unterschiedlichen Fähigkeiten und unterschiedliche Aufgaben.
Um die Standardisierung von Aufgaben sicherzustellen, verwenden Forscher Code im Python-Stil generieren, um dem Sprachmodell mitzuteilen, welche Aktionen verfügbar sind, welche Objekte sich in der Umgebung befinden und welche Programme ausführbar sind.
Durch Eingabe des Befehls
„Apfel werfen“kann beispielsweise das folgende Programm generiert werden. Das
ProgPrompt-Modell erreichte Sota-Leistung bei virtuellen Heimaufgaben, und die Forscher setzten das Modell auch auf einem physischen Roboterarm
für Desktop-Aufgaben ein. Fantastisches SprachmodellDie Erledigung täglicher Haushaltsaufgaben erfordert sowohl ein gesundes Menschenverstandsverständnis der Welt als auch Situationswissen über die aktuelle Umgebung. Um einen Aufgabenplan zum „Abendessen kochen“ zu erstellen, muss der Agent mindestens Folgendes wissen:
Funktion von Objekten, vor dem Hinzufügen von Speisen Der Ofen muss vorher vorgeheizt werden; und Aufgabenzusammenhang von Gegenständen und Aktionen, wie Erhitzen und Finden von Zutaten sind erste Aktionen im Zusammenhang mit dem „Abendessen“.
Aber ohne Zustandsrückmeldung kann eine solche Argumentation nicht durchgeführt werden. Der Agent muss wissen,
wo sich in der aktuellen Umgebung Lebensmittel befinden, beispielsweise ob sich Fisch im Kühlschrank befindet oder ob sich Hühnchen im Kühlschrank befindet. Ein auf einem großen Korpus trainiertes autoregressives großes Sprachmodell kann Textsequenzen unter der Bedingung von Eingabeaufforderungen generieren und verfügt über erhebliche Multitasking-Generalisierungsfähigkeiten. Wenn Sie beispielsweise „Abendessen zubereiten“ eingeben, kann das Sprachmodell Folgesequenzen generieren, z. B. Öffnen des Kühlschranks, Aufnehmen des Huhns, Aufnehmen der Limonade, Schließen des Kühlschranks, Einschalten des Lichtschalters usw . Die generierte Textsequenz muss dem Aktionsbereich des Agenten zugeordnet werden. Die generierte Anweisung lautet beispielsweise „Heben Sie die Hand aus und heben Sie ein Glas Gurken auf“, und die entsprechende ausführbare Aktion kann „Heben Sie das auf“ lauten jar“, und dann berechnet das Modell einen Wahrscheinlichkeitswert der Aktion. Das ProgPrompt-Modell nutzt Programmiersprachenkonstrukte geschickt bei der Aufgabenplanung, da bestehende umfangreiche Sprachmodelle normalerweise auf Korpora von Programmier-Tutorials und Codedokumenten vorab trainiert werden.
Dann definieren Funktionen wie make_dinner, throw_away_banana usw. , deren Körper eine Aktionssequenz ist, die auf das Objekt einwirkt, und dann die geplanten Voraussetzungen bestätigen , zum Beispiel bevor Sie es versuchen Öffnen Sie den Kühlschrank. Integrieren Sie Zustandsrückmeldungen in die Umgebung, indem Sie in der Nähe des Kühlschranks bleiben und als Reaktion auf Behauptungsfehler Wiederherstellungsmaßnahmen ergreifen. Das Wichtigste ist, dass das ProgPrompt-Programm auch enthält, um die Ziele der Aktion zu erläutern und so die Erfolgsquote der Aufgabenausführung des generierten Planers zu verbessern. ProgPrompt , Pythonische Funktionskonstruktion, konstruierte Programmiersprachen-Eingabeaufforderungen, Erzeugung und Ausführung des Aufgabenplans umfasst. 1. Drücken Sie den Roboterplan als Python-Funktion aus Die Planungsfunktion umfasst API-Aufrufe für , das Zusammenfassen von Aktionen und das Hinzufügen von Kommentaren sowie das Verfolgen der Ausführungsbestätigung. Jedes Aktionsgrundelement erfordert ein Objekt als Parameter. Beispielsweise enthält die Aufgabe „Lachs in die Mikrowelle stellen“ einen Aufruf von „find(salmon)“, wobei „find“ ein Aktionsgrundelement ist.
Nutzen Sie Kommentare im Code, um Zusammenfassungen in natürlicher Sprache für nachfolgende Aktionssequenzen bereitzustellen. Kommentare helfen dabei, übergeordnete Aufgaben in logische Unteraufgaben zu unterteilen, nämlich „Lachs fangen“ und „Lachs in die Mikrowelle stellen“. Annotationen ermöglichen es dem Sprachmodell auch, das aktuelle Ziel zu verstehen und die Möglichkeit einer inkohärenten, inkonsistenten oder wiederholten Ausgabe zu reduzieren, Zwischenergebnisse zu generieren. stellen einen Umgebungs-Feedback-Mechanismus bereit, um sicherzustellen, dass die Vorbedingungen wahr sind, und implementieren eine Fehlerbehebung, wenn sie nicht wahr sind. Beispielsweise behauptet der Plan vor der Greifaktion, dass sich der Agent dem Lachs genähert hat, andernfalls agent Die Suchaktion muss zuerst ausgeführt werden. 2. Erstellen eines Programmiersprachen-Prompts Modellvervollständigung.
Dann sagt das Sprachmodell Bei der Aufgabe, Lachs in der Mikrowelle zu erhitzen, besteht der erste Schritt, den LLM generieren kann und ist, darin, den Lachs herauszunehmen, aber ist dafür verantwortlich Der Agent, der den Plan ausführt, verfügt möglicherweise nicht über ein solches Aktionsprimitiv. Damit das Sprachmodell die Aktionsprimitive des Agenten verstehen kann, importieren Sie sie über die Importanweisung in der Eingabeaufforderung, wodurch die Ausgabe auch auf Funktionen beschränkt wird, die in der aktuellen Umgebung verfügbar sind. Um den Verhaltensbereich des Agenten zu ändern, müssen Sie nur die importierte Funktionsliste aktualisieren. Die Variablenobjekte stellen alle verfügbaren Objekte in der Umgebung als Liste von Zeichenfolgen bereit. prompt enthält auch einige vollständig ausführbare Programmpläne als Beispiele. Jede Beispielaufgabe zeigt, wie eine bestimmte Aufgabe mithilfe der verfügbaren Aktionen und Ziele in einer bestimmten Umgebung ausgeführt werden kann, z. B. throw_away_lime 3 des Aufgabenplans Nach einer bestimmten Aufgabe wird der Plan vollständig vom Sprachmodell basierend auf der ProgPrompt-Eingabeaufforderung abgeleitet, und dann kann der generierte Plan auf dem virtuellen Agenten oder dem physischen Robotersystem ausgeführt werden. Ein Dolmetscher ist erforderlich um jeden Aktionsbefehl gegen die Umgebung auszuführen. Während der Ausführung erfolgt die Assertionsprüfung im geschlossenen Regelkreis und liefert Feedback basierend auf dem aktuellen Umgebungsstatus. Im experimentellen Teil evaluierten die Forscher die Methode auf der Simulationsplattform Virtual Home (VH). Der VH-Status umfasst eine Reihe von Objekten und entsprechenden Attributen, z. B. Lachs im Mikrowellenherd (in) oder in der Nähe (agent_close_to) usw. Der Aktionsbereich umfasst Greifen, Putten, Zurücklegen, Gehen, Finden, Öffnen, Schließen usw. Am Ende wurden 3 VH-Umgebungen experimentiert, jede Umgebung umfasste 115 verschiedene Objekte. Die Forscher erstellten einen Datensatz mit 70 Haushaltsaufgaben mit einem hohen Abstraktionsgrad und die Befehle waren alle wie „Mikrowellenlachs“. , und erstellen Sie eine Ground-Truth-Action-Sequenz dafür. Nach der Bewertung des generierten Programms in der virtuellen Familie umfassen die Bewertungsindikatoren Erfolgsrate (SR), Zielbedingungsrückruf (GCR) und Ausführbarkeit (Exec). Aus den Ergebnissen ist ersichtlich, dass ProgPrompt deutlich besser ist als Die Tabelle zeigt neben der Baseline und LangPrompt auch, wie jede Funktion die Leistung verbessert. Die Forscher führten auch Experimente in der realen Welt durch, wobei sie einen Panda-Roboter von Franka-Emika mit parallelen Krallen verwendeten, und stellten die Hypothese auf, dass eine Pick-and-Place-Strategie entwickelt werden könnte. Diese Strategie verwendet als Eingabe zwei Punktwolken eines Zielobjekts und eines Zielcontainers und führt Pick-and-Place-Vorgänge durch, um das Objekt auf oder innerhalb des Containers zu platzieren. Die Systemimplementierung führt ein offenes Vokabular-Objekterkennungsmodell ViLD ein, um Objekte in der Szene zu identifizieren und zu segmentieren und eine Liste der verfügbaren Objekte in der Eingabeaufforderung zu erstellen. Anders als in der virtuellen Umgebung ist hier die Objektliste eine lokale Variable jeder Planungsfunktion, was mehr Flexibilität bei der Anpassung an neue Objekte ermöglicht. Der vom Sprachmodell ausgegebene Plan enthält Funktionsaufrufe in Form von Grab und Putin. Aufgrund realer Unsicherheiten wurde die zusicherungsbasierte Closed-Loop-Option im Versuchsaufbau nicht implementiert. Es ist zu erkennen, dass der Roboter in der Klassifizierungsaufgabe Bananen und Erdbeeren als Früchte identifizieren und Planungsschritte generieren konnte, um sie auf dem Teller und den Flaschen in der Schachtel zu platzieren. Mit der vollständigen Idee ist der Gesamtworkflow von ProgPrompt klar, der hauptsächlich
drei Teile
Das obige ist der detaillierte Inhalt vonWie viele Schritte sind erforderlich, um einen Elefanten im Kühlschrank zu installieren? NVIDIA veröffentlicht ProgPrompt, mit dem Sprachmodelle Pläne für Roboter erstellen können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!