Aktuelles

Google testet einen neuen Roboter, der sich selbst programmieren kann

Google testet einen neuen Roboter, der sich selbst programmieren kannDas Schreiben von funktionierendem Code kann eine Herausforderung sein. Selbst bei relativ einfachen Sprachen wie HTML muss der Programmierer die spezifische Syntax und die verfügbaren Werkzeuge verstehen. Das Schreiben von Code zur Steuerung von Robotern ist sogar noch komplizierter und umfasst oft mehrere Schritte: Es gibt Code zum Erkennen von Objekten, Code zum Auslösen der Aktoren, die die Gliedmaßen des Roboters bewegen, Code zum Festlegen, wann die Aufgabe abgeschlossen ist, und so weiter. Etwas so Einfaches zu programmieren, dass der Roboter einen gelben Block statt eines roten aufhebt, ist nahezu unmöglich, wenn man die Programmiersprache nicht kennt, mit der der Roboter arbeitet.

Doch die Robotikforscher von Google suchen nach einer Möglichkeit, dies zu ändern. Sie haben einen Roboter entwickelt, der seinen eigenen Programmiercode auf der Grundlage von Anweisungen in natürlicher Sprache schreiben kann. Anstatt in die Konfigurationsdateien eines Roboters einzutauchen, um block_target_color von #FF0000 auf #FFFF00 zu ändern, könnte man einfach eingeben: "Nimm den gelben Block auf", und der Roboter erledigt den Rest.

Code as Policies (kurz CaP) ist ein codierungsspezifisches Sprachmodell, das auf der Grundlage des Pathways Language Model (PaLM) von Google entwickelt wurde, um die Anweisungen in natürlicher Sprache zu interpretieren und in ausführbaren Code umzuwandeln. Die Google-Forscher trainierten das Modell, indem sie ihm Beispiele für Anweisungen und den entsprechenden Code gaben. Auf dieser Grundlage war der Roboter in der Lage, neue Anweisungen auszuführen und "autonom neuen Code zu generieren, der API-Aufrufe neu zusammensetzt, neue Funktionen synthetisiert und Rückkopplungsschleifen ausdrückt, um neue Verhaltensweisen zur Laufzeit zusammenzustellen", so die Google-Ingenieure in einem Blog-Beitrag.

Um CaP dazu zu bringen, neuen Code für bestimmte Aufgaben zu schreiben, gab das Team dem Roboter "Hinweise", z.B. welche Schnittstellen oder Tools zur Verfügung stehen und einige Beispiele für die Verknüpfung von Anweisungen mit Code. Auf dieser Grundlage konnte der Roboter eigenständig neuen Code für neue Anweisungen schreiben. Dazu verwendet es die "hierarchische Codegenerierung", die es dazu veranlasst, "rekursiv neue Funktionen zu definieren, im Laufe der Zeit eigene Bibliotheken anzulegen und selbst eine dynamische Codebasis zu erstellen". Das bedeutet, dass der Roboter bei einem Satz von Anweisungen selbstständig Code entwickelt, den er später für ähnliche Anweisungen sogar wiederverwenden kann.

CaP kann auch die arithmetischen Operationen und die Logik bestimmter Sprachen nutzen. Ein auf Python trainiertes Modell kann beispielsweise bei Bedarf die entsprechenden if/else- und for/while-Schleifen verwenden und für zusätzliche Funktionen Bibliotheken von Drittanbietern nutzen. Es kann auch mehrdeutige Beschreibungen wie "schneller" und "nach links" in die genauen numerischen Werte umwandeln, die für die Ausführung der Aufgabe erforderlich sind. Da CaP auf einem regulären Sprachmodell aufbaut, verfügt es über einige Funktionen, die nichts mit Code zu tun haben, z. B. das Verstehen von Emojis und nicht-englischen Sprachen.

Im Moment sind die Möglichkeiten von CaP noch sehr begrenzt. Es verlässt sich auf das Sprachmodell, auf dem es basiert, um seinen Anweisungen einen Kontext zu geben. Wenn sie keinen Sinn ergeben oder Parameter verwenden, die es nicht unterstützt, kann es keinen Code schreiben. Ebenso kann es offenbar nur eine Handvoll Parameter in einer einzigen Eingabeaufforderung verwalten; komplexere Aktionsfolgen, die Dutzende von Parametern erfordern, sind einfach nicht möglich. Außerdem gibt es Sicherheitsbedenken: Einen Roboter zu programmieren, der seinen eigenen Code schreibt, ist ein bisschen wie Skynet. Wenn er glaubt, dass eine Aufgabe am besten dadurch zu lösen ist, dass er sich mit ausgestrecktem Arm sehr schnell dreht, und ein Mensch in der Nähe ist, könnte jemand verletzt werden.

Trotzdem ist das eine unglaublich spannende Forschung. Bei Robotern ist es eine der schwierigsten Aufgaben, die antrainierten Verhaltensweisen zu verallgemeinern. Denn wenn man einen Roboter so programmiert, dass er Tischtennis spielen kann, heißt das noch lange nicht, dass er auch in der Lage ist, andere Spiele wie Baseball oder Tennis zu beherrschen. CaP ist zwar noch meilenweit von solchen breit angelegten realen Anwendungen entfernt, aber es ermöglicht einem Roboter, eine breite Palette komplexer Roboteraufgaben ohne aufgabenspezifisches Training auszuführen. Das ist ein großer Schritt in die Richtung, dass man eines Tages einem Roboter, der ein Spiel spielen kann, beibringen kann, wie man ein anderes spielt - ohne dass man alles in einen neuen, von Menschen geschriebenen Code umwandeln muss.

Foto: Tara Winstead

07.11.2022

RSS Newsfeed
Alle News vom TAGWORX.NET Neue Medien können Sie auch als RSS Newsfeed abonnieren, klicken Sie einfach auf das XML-Symbol und tragen Sie die Adresse in Ihren Newsreader ein!