Hast du schon einmal davon geträumt, die beeindruckende Kraft eines großen Sprachmodells, ähnlich ChatGPT, direkt in deinen vier Wänden zu nutzen? In diesem Beitrag zeige ich dir, wie du dieses spannende Vorhaben auf einem NVIDIA Jetson Board verwirklichen kannst. Bereit für ein Abenteuer in der Welt der Künstlichen Intelligenz? Dann legen wir los!
Grundlagen: Was Du wissen musst
Bevor wir einsteigen, lass uns einen Blick auf die Hardware werfen, die Du benötigst:
- ReSpeaker Mikrofon Array v2.0 – Ein hochentwickeltes Mikrofon-Array von Seeed Studio.
- reComputer Jetson-20-1-H2 – Ausgestattet mit dem Jetson Xavier NX 16 GB Modul, einem Aluminiumgehäuse und einem vorinstallierten JetPack-System.
- Bluetooth Speaker
Die Revolution der Sprachmodelle
Stell dir vor, dein Computer versteht und spricht fast wie ein Mensch! Genau das ermöglichen Sprachmodelle, die die Welt der natürlichen Sprachverarbeitung revolutioniert haben. Eines dieser beeindruckenden Modelle ist ChatGPT von OpenAI. Und denk mal, es gibt noch viel mehr auf dem Markt, wie Google Bard oder Bing AI Chat. Aber weißt du was? Alle diese cleveren Helfer brauchen normalerweise eine Internetverbindung, um zu funktionieren.
Jetzt kommt der spannende Teil: Was, wenn du solche Modelle auch ohne ständiges Online-Sein nutzen könntest? Genau hier setzt die Idee an, diese Technologie auf Edge-Geräten wie Einplatinencomputern für Offline-Anwendungen zu verwenden. Inspiriert hat mich dabei ein Beitrag der das Konzept von VoiceGPT vorstellte – ein Sprachassistent, der auf dem Raspberry Pi die Fähigkeiten von ChatGPT nutzt. Aber ich gehe einen Schritt weiter und setze auf das Nvidia Jetson Board.
Das Nvidia Jetson Board ist ein echtes Kraftpaket, bekannt für seine starke GPU und kompakte Größe. Es ist wie geschaffen, um anspruchsvolle Sprachmodelle zum Laufen zu bringen. Stell dir vor, du könntest ein ChatGPT-ähnliches Modell direkt auf diesem Board betreiben! Das bedeutet weniger Verzögerungen im Netzwerk, mehr Datenschutz und die Freiheit, in Umgebungen mit begrenzten Ressourcen zu arbeiten – ganz ohne Internet.
Schneller Überblick: Dein Weg zum eigenen ChatGPT-ähnlichen Modell
Werfe doch mal einen Blick auf das Bild unten! Es zeigt dir, was du brauchst, um ein ChatGPT-ähnliches Sprachmodell (LLM) auf einem NVIDIA Jetson Board zum Laufen zu bringen. Ganz einfach: Folge dem Hardware-Diagramm, das ich für dich vorbereitet habe.
Du benötigst ein Respeaker USB Mikrofon-Array, einen Einplatinencomputer (SBC) wie das NVIDIA Jetson und einen Bluetooth-Lautsprecher. Klingt spannend, oder? Mit dieser Kombination bist du bestens ausgestattet, um in die Welt der fortschrittlichen Sprachmodelle einzutauchen. Los geht’s!
Mit dieser Hardware-Konfiguration fängt das Mikrofon-Array Audiodaten von dir auf, die dann vom Jetson-Board verarbeitet werden. Das Jetson-Board betreibt das ChatGPT-ähnliche Sprachmodell und erzeugt eine Textantwort auf deine Eingaben. Diese Textantwort wird dann an den Bluetooth-Lautsprecher weitergegeben, der sie in Sprache umwandelt. Der gesamte Vorgang, von der Erfassung des Audioeingangs bis zur Erzeugung von Textantworten und deren Umwandlung in Sprache, wird lokal am Rand des Netzwerks durchgeführt. Das bedeutet, dass alle notwendigen Berechnungen und Prozesse direkt auf dem NVIDIA Jetson-Board stattfinden, ohne dass eine Internetverbindung benötigt wird. Dies gewährleistet deine Privatsphäre und reduziert die Latenz, indem vermieden wird, Daten an einen entfernten Server zu senden.
Im unten bereitgestellten Bild kannst du mein Demosetup mit dem Nvidia Jetson-Board, dem Mikrofon-Array und dem Bluetooth-Lautsprecher sehen.
Maschinelle Lernpipeline für Sprachassistenten
Die maschinelle Lernpipeline für einen Sprachassistenten umfasst typischerweise mehrere Schritte, um gesprochene Sprache in eine sinnvolle Antwort umzuwandeln. Hier ist ein Diagramm der Software-Pipeline:
Mikrofoneingang: Die Pipeline beginnt mit der Erfassung des Audioeingangs vom Nutzer durch ein Mikrofon.
Aufweck-Erkennung: Das aufgenommene Audio wird zunächst analysiert, um festzustellen, ob der Nutzer einen Aufweckbefehl initiiert hat. Wird der Aufweckbefehl erkannt, schreitet der Sprachassistent zur nächsten Phase vor, andernfalls bleibt er im Standby-Modus.
Automatische Spracherkennung (ASR): Sobald der Aufweckbefehl erkannt wird, werden die Audiodaten durch ein Automatisches Spracherkennungssystem geleitet. Die ASR-Technologie wandelt gesprochene Sprache in geschriebenen Text um und ermöglicht es dem Sprachassistenten, die Sprache des Nutzers zu verstehen.
Großes Sprachmodell: Die Ausgabe des ASR-Systems, also der erkannte Text, wird dann an ein großes Sprachmodell eines Chatbots weitergeleitet.
Text-zu-Sprache (TTS): Nachdem das Chatbot-Sprachmodell eine Antwort generiert hat, wird die textbasierte Ausgabe mithilfe eines Text-zu-Sprache-Systems in gesprochene Worte umgewandelt.
Wie man ein großes Sprachmodell auf einem Nvidia Jetson-Board betreibt
In diesem Projekt werden wir die Funktionen und Fähigkeiten des FastChat-Repositorys erkunden. Um ein FastChat-Modell auf einem Nvidia Jetson Xavier NX Board zu implementieren, folge diesen Schritten:
Installiere die FastChat-Bibliothek mit dem pip-Paketmanager. Führe dazu den folgenden Befehl aus:
pip3 install fschat
Dies wird automatisch die Gewichte von Hugging Face herunterladen. Führe dann den folgenden Befehl aus:
python3 -m fastchat.serve.cli --model-path lmsys/fastchat-t5-3b-v1.0
Abschließend sieht das Testvideo wie folgt aus:
Der Code läuft direkt auf dem Jetson-Board, ohne dass irgendwelche Daten in die Cloud übertragen werden. Auch wenn das Video eine etwas langsame Performance beim ersten Laden des Modells und der Token-Erzeugung zeigt, werden wir uns jetzt verschiedene Techniken anschauen, um die Leistung deines Jetson-Boards zu verbessern.
Übertakten der CPU und GPU des Jetson Xavier NX
Übertakten ist im Grunde genommen eine Methode, um die Leistung deiner Hardware zu steigern, indem du verschiedene Geräteeinstellungen anpasst.
Vor dem Übertakten:
Du kannst die Leistung deines Jetson Xavier verbessern, indem du den Anweisungen in diesem GitHub-Repository folgst. Das Repository enthält alle notwendigen Informationen, um die maximalen Taktfrequenzen zu aktivieren, die unten angezeigt werden.
Nach dem Übertakten:
Wie wir sehen können, sind die Frequenzwerte von CPU und GPU nach dem Übertakten besser als zuvor. Du kannst auch die aktuelle Leistung der Nvidia Jetson-Boards mit dem von Raffaello Bonghi entwickelten Tool “jetson-stats” überprüfen.
Alles zusammenbringen
Für dieses Projekt habe ich die Erkennung von Aufweckwörtern und die automatische Spracherkennung mit der Vosk API integriert. Anschließend kam die Text-to-Speech-Komponente Piper zum Einsatz. Sie wurde mit FastAPI implementiert, einem Web-Framework, das den schnellen Aufbau von APIs ermöglicht. Wenn der Chatbot eine Antwort generiert, wird der Text an das TTS-Modul gesendet. FastAPI empfängt die Textdaten, verarbeitet sie und wandelt sie in natürlich klingende Sprache um. Das so erzeugte Audio wird dann als Antwort an den Nutzer zurückgegeben, sodass das System mit dem Nutzer über die Stimme interagieren kann.
Hier ist ein Demonstrationsvideo, das zeigt, wie das Endergebnis aussieht.
Insgesamt ermöglicht diese Implementierung eines Sprachassistenten, gesprochene Befehle und Sprache zu verstehen, sie mit einem Chatbot zu verarbeiten und gesprochene Antworten zu generieren. Dies bietet den Nutzern ein Gesprächserlebnis mit einem ChatGPT-ähnlichen Großen Sprachmodell auf NVIDIA Jetson-Boards.
Fazit
Das war’s für heute! Ich habe erkundet, wie man ein ChatGPT-ähnliches großes Sprachmodell auf dem NVIDIA Jetson einrichtet und betreibt, um dir lokal KI-Konversationsfähigkeiten zu ermöglichen.
Alle in dieser Geschichte erwähnten Codes sind in meinem Github-Repo verfügbar.
Ich hoffe, du fandest diesen Beitrag nützlich und danke fürs Lesen. Wenn du Fragen oder Feedback hast, hinterlasse gerne einen Kommentar unten. Bleib dran!
Ich hoffe, dieser Beitrag hat Dein Interesse geweckt und hilft Dir, Dein eigenes KI-Projekt zu starten. Hast Du Fragen oder Feedback? Hinterlasse gerne einen Kommentar unten. Bleib kreativ und experimentierfreudig!
Shakhizat Nurgaliyev
Wir sind begeistert, dir heute einen spannenden Artikel präsentieren zu können, der uns von Shakhizat Nurgaliyev zur Verfügung gestellt wurde. Shakhizat ist ein leidenschaftlicher Entwicklungsingenieur für eingebettete Systeme mit einer beeindruckenden Expertise in den Bereichen Robotik und Internet der Dinge (IoT). Seine Spezialisierung liegt in der Entwicklung autonomer und intelligenter Systeme, die maschinelles Lernen nutzen, um auf ihre Umgebung zu reagieren. Von der Konzeption bis zur Programmierung bringt er umfangreiche Erfahrung mit, die maßgeblich zur Weiterentwicklung von Robotik und IoT beiträgt.