Shifu: Die neue Infrastruktur der Ära der Großsprachmodelle (LLM)
Herausforderungen und Schwierigkeiten bei der Implementierung von Datenerfassung, -verarbeitung und Gerätesteuerung mit KI
Großsprachmodelle wie ChatGPT können durch die gesamte Kette von der Zugangsbereitstellung bis zur Anwendungsentwicklung erhebliche Unterstützung bieten. Dennoch ist noch viel Arbeit zu leisten, bevor ChatGPT wirklich mit diesen Geräten kommunizieren kann. Jedes Gerät verwendet unterschiedliche Protokolle und hat unterschiedliche Regeln, was es schwierig macht für ChatGPT, mit ihnen auf einheitliche Weise zu kommunizieren.
- Datenerfassung: Die Datenerfassung ist die Grundlage eines KI-Systems, und die Qualität der Daten wirkt sich direkt auf die nachfolgenden Analyseergebnisse aus. In der praktischen Anwendung stehen bei der Datenerfassung jedoch oft Probleme wie fehlende Daten, verrauschte Daten und inkonsistente Daten im Weg. Um die Qualität und Genauigkeit der erfassten Daten zu gewährleisten, müssen geeignete Methoden zur Reinigung und Vorverarbeitung verwendet werden.
- Gerätesteuerung: Unter Gerätesteuerung versteht man die Steuerung externer Geräte durch ein KI-System. In der praktischen Anwendung stößt die Gerätesteuerung jedoch oft auf Probleme wie inkonsistente Geräteschnittstellen oder Kommunikationsprotokolle. Die Lösung dieser Probleme erfordert die Beherrschung verschiedener Geräteschnittstellen und Kommunikationsprotokolle sowie das Entwerfen geeigneter Steuerungsstrategien.
Hier kommt Shifu ins Spiel, eine neue Infrastruktur, die es LLMs ermöglicht, nahtlos mit IoT-Geräten zu verbinden und diese zu steuern.
Shifu: Die neue IoT-Infrastruktur der Ära der LLM
Shifu ist ein IoT-Entwicklungsframework, das mühelos alle Ihre Geräte verbindet und deren APIs zugänglich macht, sodass ChatGPT ihre Fähigkeiten voll ausschöpfen kann. Mit Shifu kann ChatGPT nun den Kreislauf "Befehle in natürlicher Sprache an Roboter oder andere IoT-Geräte ausgeben und sie entsprechende Aktionen ausführen lassen" schließen – und so große Modelle und die physische Welt zusammenbringen.
Indem es als unterste Infrastrukturschicht dient, ermöglicht Shifu LLMs, auf unterschiedliche Weise mit Geräten zu kommunizieren. Mit Shifu müssen LLMs sich nicht mehr um die Komplexität der Verbindung unterschiedlicher Geräte kümmern. Shifu stellt LLMs eine einheitliche Geräte-API zur Verfügung, die es ihnen erlaubt, mit verschiedenen Geräten in natürlicher Sprache zu kommunizieren. Dies wird erreicht, indem die unterschiedlichen Protokolle und Regeln, die von verschiedenen Geräten verwendet werden, abstrahiert werden. Shifu fungiert als Middleware, indem es Befehle in natürlicher Sprache in gerätespezifische Befehle übersetzt und umgekehrt. Mit Shifu können Entwickler leicht neue Geräte zu ihren Anwendungen hinzufügen, ohne sich um die zugrundeliegende Komplexität kümmern zu müssen.
Shifu ist die ultimative Lösung, um die Fähigkeiten von ChatGPT in die physische Welt auszuweiten. Mit seiner einheitlichen API können LLMs nun einfache Sprachbefehle verwenden, um heterogene Geräte zu manipulieren, und sind von der Last befreit, sich mit verschiedenen Protokollen und Regeln auseinandersetzen zu müssen. Das Hinzufügen neuer Geräte zu Anwendungen ist jetzt ein Kinderspiel, da Shifu die Komplexität der unterschiedlichen Gerätefunktionsweisen abstrahiert. Tatsächlich ermöglicht die Integration von Shifu ChatGPT, seinen Einfluss in die physische Welt auszudehnen und die Art und Weise, wie Menschen mit Dingen interagieren, durch die Einführung natürlicher Sprache als neue Benutzeroberfläche vollständig zu ändern.
Shifu + ChatGPT + IoT = AIoT
Shifu, ein Open-Source-AIoT-Entwicklungsframework, bietet den Nutzern eine Komplettlösung für den Zugriff auf Geräte und deren Steuerung. Obwohl Shifu die Schwierigkeit des Zugriffs und der Steuerung von Geräten auf das weltweit niedrigste Niveau reduziert hat, müssen die Benutzer immer noch Kommunikationsprotokolle/-treiber und Konfigurationsdateien bereitstellen. Sobald die Arten von Geräten in IoT-Szenarien vielfältig und komplex werden, könnten die Benutzer dennoch viele Probleme empfinden.
Glücklicherweise bietet Shifu nicht nur Bequemlichkeit für Menschen, sondern die einheitliche und standardisierte API, die es bereitstellt, kann auch leicht von ChatGPT absorbiert und verwendet werden. Mit anderen Worten, mit ChatGPT und Shifu kann der Zugriff und die Nutzung von Geräten in IoT vollständig in Prompt-Engineering anstatt traditionelle Programmierung umgewandelt werden. Darauf basierend können wir sagen, dass Menschen zum ersten Mal den no-code Aufbau von AIoT-Szenen erreicht haben.
Hier ist ein einfaches Beispiel für die Verwendung von ChatGPT's Prompt und Shifu zusammen, um die Verbindung herzustellen, anzutreiben und einen Roboterarm zu führen, um eine Aufgabe von Grund auf zu erfüllen:
- Alles, was wir vor dem Start vorbereiten müssen, sind die Hardware (Roboterarm) und ein Computer. Unser Ziel ist es, ChatGPT und Shifu automatisch den Softwareteil handhaben zu lassen. Dieser Roboterarm ist zu einfachen Bewegungen und Greifaktionen fähig.
- Zuerst müssen wir ChatGPT aus dem Open-Source-Projekt von Shifu lernen lassen:
I have a iot frame work called shifu, you can use it to expose the api of iot device. The open-source project is at https://github.com/edgenesis/shifu
Nach diesem Schritt wird ChatGPT verstehen, wie man den DeviceShifu erzeugt, den Shifu für jedes Hardwaregerät verwendet, welcher ein digitales Zwillings-Mikroservice ist. Gleichzeitig wird es auch lernen, wie man eine YAML-Konfigurationsdatei vervollständigt, die die vom Benutzer bereitgestellten Hardwaregeräte beschreibt.
- Als Nächstes beschreiben wir die Informationen des Roboterarms an ChatGPT. In diesem Schritt wird ChatGPT verstehen, wie man Gerätetreiber generiert.
- Wir müssen "Metadaten" über das Gerät bereitstellen, wie seine Fähigkeiten und die Verbindungsadresse:
I have a robotic arm with a suction pump that can pick up objects. You can open the pump and pick up an object by accessing localhost:8050/pump_on, and close the pump and release the object by accessing localhost:8050/pump_off.
The robotic arm itself can also move, and you can send the post request to localhost:8050/send_xyz with the json parameter like {"xyz":[-57.6,-186.8,197.1]}. The array first item is x-axis value, second item is y-axis value, third is z-axis value.
- Als Nächstes müssen wir die Fähigkeit des Geräts bereitstellen, damit ChatGPT später API und Gerätefähigkeiten verknüpfen kann:
Specifically, your python script should include several circle
- Move the robotic arm above the block
- Lower the robotic arm to the block and turn on the suction pump
- Lift the robotic arm to 197
- Move the robotic arm to the desired position
- turn off the pump to release the block
- Move the robotic above the block to start new circle
**when you move the arm above the block which means you should set the z-axis value with 197 or higher**
By these operations, you can move one block into another places, now I will introduce the require for you. you should design a python script for me, which can be run in raspberry. Are you ready?
- Wir müssen auch unsere Anforderungen für den Betrieb des Geräts bereitstellen und ChatGPT bitten, einen Python-Treiber zur Steuerung des Roboterarms zu schreiben. Wir können aus der Perspektive des Benutzers beschreiben, wie jemand dieses Gerät durch den von ChatGPT bereitgestellten Treiber nutzen kann. Hier haben wir einige Beispiele gegeben, um ChatGPT besser zu verstehen, was wir benötigen:
Requirement
1. There are five blocks which are "SHIFU", these five letters are arranged randomly. I will now tell you their coordinates, and you need to rearrange them in order.
2. The blocks have their own position and I will give it for you with an object
`{s:{-109.5,-157.2,90},h:{-55.7,-167.2,90},u:{-32.3,-235.2,90},i:{-112.4,-219.7,90},f:{-117,-115.2,90}}`
for one attribute like `{-109.5,-157.2,90}` is x = -109.5 y = -157 z= 90
3. you can adjust the z-axis value to hold up the block.
4. you should move this block into another side with y-axis > 0
5. your task is to hold up this random arranged block and rearrange them with one line in table (you can implement it with same y-axis value).
Now I will give you one example that hold up one block from {-11.4,-160.7,90.1} to {100.8,-170.2,197.1} with shell command. you should design a python program to implement above requirement
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[-11.4,-160.7,197.1]}' localhost:8051/send_xyz
sleep 2
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[-11.4,-160.7,90.1]}' localhost:8051/send_xyz
sleep 1.5
curl localhost:8051/pump_on
sleep 1.5
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[-11.4,-160.7,197.1]}' localhost:8051/send_xyz
sleep 1.5
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[100.8,-170.2,197.1]}' localhost:8051/send_xyz
sleep 1.5
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[100.8,-170.2,95.3]}' localhost:8051/send_xyz
sleep 1.5
curl localhost:8051/pump_off
sleep 2
curl -X POST -H "Content-Type: application/json" -d '{"xyz":[100.8,-170.2,197.1]}' localhost:8051/send_xyz
- Der Treiber ist fertig. Als Nächstes können wir diesen Treiber verwenden, um mit ChatGPT einen DeviceShifu zu generieren.
- Einen DeviceShifu mit ChatGPT zu generieren ist sehr einfach, da der Open-Source-Code von Shifu viele reiche und vollständige Beispiele für ChatGPT bereitgestellt hat. Wir müssen ihm nur sagen, was wir tun möchten.
Now you have the driver for the robot arm. Please write the deviceShifu for this robot arm.
- Unser letzter Schritt ist es, ChatGPT eine YAML-Konfigurationsdatei für diesen Roboterarm schreiben zu lassen. Da ChatGPT bereits aus einer großen Anzahl von YAML-Konfigurationsdatei-Beispielen durch das Open-Source-Projekt von Shifu gelernt hat, müssen wir nur die Anforderungen bereitstellen. Gleichzeitig können wir es direkt die Metadaten verwenden lassen, die wir zuvor im Treiber verwendet haben:
Write the config file for this robot arm in the required YAML file format. Re-use our configuration in the previos Python script.
- Nun ist ein Betriebsplan für einen AIoT-Roboterarm abgeschlossen. Lassen Sie uns einen Blick auf die Ergebnisse werfen, die erzielt wurden:
<video class="videoBox" autoplay="" loop="" controls="" src="ChatIoT.mp4"></video>



