Auf der RimA-Wissensplattform gibt es einen neuen Beitrag zu Large Language Modellen! Sie sind in der Lage, natürliche Sprache – also bspw. auch umgangssprachliche menschliche Gespräche – zu verstehen und zu generieren. Sprachmodelle ermöglichen damit in der Mensch-Roboter-Interaktion den Austausch in natürlicher Sprache – also mit einem Roboter zu sprechen, wie mit einem Menschen.
Das Schwierigste ist aus meiner Sicht, dass die LLMs in der Regel nur über sehr eingeschränkte Infos zum Referenzrahmen verfügen (sie können ja nix sehen). Das sorgt dafür, dass man sich zwar mit dem Roboter unterhalten kann, aber nur über das Wissen des LLMs. Der Rest fehlt. Schönes Paper in der Richtung (wenn auch bei weitem nicht das einzige) ist das hier:
Janssens, R., Wolfert, P., Demeester, T., & Belpaeme, T. (2022, March). ‘Cool glasses, where did you get them?” Generating Visually Grounded Conversation Starters for Human-Robot Dialogue. In 2022 17th ACM/IEEE International Conference on Human-Robot Interaction (HRI) (pp. 821-825). IEEE.
Interessantes Thema! Für unsere Serviceroboterplattform füttern wir den Roboter mit Zusatzinfos aus der Umgebung. Das können Vorinformationen über die Umgebung sein, z.B. markante Punkte in der Umgebung (Küchentisch, Couch, Schlafzimmer …), detektierte Objekte oder erkannte Personen. Das wird dann sozusagen in den Prompt mitgegeben.
Diese detektierten Objekte können auch mit „Offenen“ Objekterkennungsmethoden von Kommandos einer Nutzer:in initialisiert werden. Daraus entsteht aber ein Alignment-Problem: „Wie nutzt man ein LLM, um Anfragen an Objektdetektoren zu initialisieren, damit die Erkennung gut ist?“
Wir nutzen bei unseren Servicerobotern auch LLM’s, um Sprachkommandos in Aktionen zu übersetzen. Unsere Roboter haben einige Grundfunktionalitäten in etwa: „Fahre zu “, „Finde Person“, „Greife Objekt “, „Übergebe Objekt an “, „Spreche “. Gibt man jetzt ein Kommando wie z.B. „Bringe der Person in der Küche das Getränk von dem Couchtisch“ kann das LLM genutzt werden, um via Function Calling das Sprachkommando in Roboterkommandos zu übersetzen. Da passieren manchmal lustige und unerwartete Dinge
Sehr interessant sind im Robotikkontext auch die multimodalen Modelle. Dann ist der Roboter schon in der Lage, Sprache + Bild zu kombinieren, um z.B. von einer Tafel abzulesen. Ich persönlich finde es richtig interessant, wenn die Roboter nicht mit einer API reden müssen, sondern lokal in der Lage sind, solche Modelle auszuführen.
Yes, lokal wäre echt ein Gamechanger! Meine bisherigen erfahrungen mit Robos die auf LLM API Basis „reden“ waren immer ein bisschen getrübt von den Latenzen.
Kann man denn so ein LLM einfach auf nem NUC oder so laufen lassen?
Was ich bislang übrigens noch nie gesehen habe (heißt nicht, dass es das nicht gibt!) ist, dass man den Robo im Sprachfluss unterbrechen kann, wenn man merkt, dass die Antwort in die falsche Richtung geht.
Ich finde das Thema auch extrem spannend. Auch, weil es herrliche Spielereien erlaubt und (wie du sagst) manchmal unerwartete Ergebnisse produziert…
meine erfahrungen zeigen, dass lokale LLMs zwar sehr wünschenswert sind, allerdings durch die reduzierten modellgrößen zu einer spürbar verringerten performance führen, gerade in den anwendungen die @raphael_ubo beschrieben hat. diese einbußen nimmt man dann ungern in kauf, wenn man für etwas mehr latenz ein mächtigeres LLM bekommt, womit sich der roboter robuster verhält und eine gute interaktion zustande kommt.