Veröffentlicht: 13. Januar 2024
Dies ist der erste Teil einer dreiteiligen Reihe zu LLMs und Chatbots. Teil 2 zum Erstellen eines Chatbots mit WebLLM und Teil 3 zur Verwendung der Prompt API sind bereits verfügbar.
Large Language Models (LLMs) werden zu einem wichtigen Baustein in der Softwareentwicklung: LLMs eignen sich gut für die Generierung und Verarbeitung von Text in natürlicher Sprache und ermöglichen Anwendungsfälle wie die Datenextraktion, Zusammenfassung oder die Erleichterung von Dialogen mit Nutzerdaten.
In dieser Reihe erörtere ich die Vor- und Nachteile von On-Device-LLMs und zeige Ihnen, wie Sie einer vorhandenen Anwendung mithilfe von zwei lokalen und offlinefähigen Ansätzen Chatbot-Funktionen hinzufügen: der webbasierten LLM-Laufzeit WebLLM und der experimentellen Prompt API von Chrome.
Mögliche Anwendungsfälle
Wir erstellen einen Chatbot auf Basis einer klassischen To-do-Listen-Anwendung. Der Quellcode für jeden Schritt ist auf GitHub verfügbar. Nutzer können neue Aufgaben hinzufügen, sie als erledigt markieren und löschen.
Sie können eine Funktion hinzufügen, mit der Nutzer mehr über die Daten der To-do-Liste erfahren oder zusätzliche Funktionen ausführen können. Mit einer Chatbot-Funktion können Nutzer:
- Fragen Sie nach der Anzahl der offenen Aufgaben.
- Duplikate oder sehr ähnliche Aufgaben identifizieren
- Gruppieren Sie die Aufgaben in Gruppen.
- Sie erhalten Empfehlungen für neue Aufgaben, die auf bereits erledigten Aufgaben basieren.
- Aufgaben in verschiedene Sprachen übersetzen
- Exportieren Sie die To-do-Liste im XML-Format.
Dies sind nur einige Beispiele für Aufgaben, die LLMs bewältigen können.
Was sind Large Language Models?
LLMs sind künstliche neuronale Netzwerke, die Text in natürlicher Sprache verarbeiten und generieren. Die meisten aktuellen LLMs basieren auf der von Google entwickelten Transformer-Architektur. Beispiele hierfür sind die Gemini- und Gemma-Modelle von Google, die GPT-Modellreihe von OpenAI und die Open-Source-Modelle wie LLaMa von Meta AI und Mistral von Mistral AI.
Dank des Trainings mit riesigen Datenmengen haben LLMs eine beeindruckende Bandbreite an Funktionen. Sie verstehen zahlreiche Sprachen, haben Allgemeinwissen, können zwischen Sprachen übersetzen oder Programmiercode generieren. Der Umfang dieser Funktionen kann je nach Größe des Modells erheblich variieren, wie im Abschnitt LLM-Größen verstehen erläutert.
LLMs führen zu einem Paradigmenwechsel in der Softwarearchitektur, da natürliche Sprache jetzt zu einer Kernfunktion im Softwareentwicklungsprozess wird. Anstatt APIs über klar definierte Schnittstellen aufzurufen, reicht es aus, die Absicht in natürlicher Sprache in einem sogenannten Prompt auszudrücken.
Einschränkungen von LLMs
LLMs haben auch bestimmte Einschränkungen:
- Nicht deterministisches Verhalten: LLMs können unterschiedliche und gelegentlich sogar widersprüchliche Antworten auf denselben Prompt liefern, da ihre Ausgabe von probabilistischen Modellen und nicht von festen Regeln abhängt.
- Halluzinationen: Diese Modelle können manchmal falsche oder unsinnigen Informationen generieren, da sie sich auf gelernte Muster statt auf sachliche Richtigkeit verlassen.
- Prompt-Injections: LLMs können anfällig für Prompt-Injection-Angriffe sein, bei denen Nutzer Eingabeaufforderungen erstellen, die das Modell manipulieren, sodass es von seiner beabsichtigten Funktion abweicht oder unerwünschte Ergebnisse liefert.
Daher müssen Nutzer die von LLMs generierten Ergebnisse überprüfen, bevor sie entsprechende Maßnahmen ergreifen.
Bei On-Device-LLMs muss ihre Größe berücksichtigt werden. Sie erreichen Dateigrößen von mehreren Gigabyten und müssen vor der ersten Verwendung auf das Gerät des Nutzers heruntergeladen werden. Kleinere Modelle erzielen in der Regel Antworten von geringerer Qualität, insbesondere im Vergleich zu cloudbasierten Modellen.
Lokale Lösungen auswählen
Wenn Sie eine LLM in Ihre Webanwendung einbinden möchten, denken Sie vielleicht zuerst an einen Cloud-Anbieter. Zahlreiche Anbieter bieten hochwertige LLMs an, von denen einige exklusiv für bestimmte Anbieter sind. Cloudbasierte LLMs bieten eine schnelle Inferenzgeschwindigkeit zu einem angemessenen Preis, der in der Regel pro verarbeitetem Token berechnet wird.
Lokale Lösungen bieten dagegen überzeugende Vorteile. Da lokal gehostete LLMs direkt auf dem Gerät des Nutzers ausgeführt werden, bieten sie zuverlässigere Reaktionszeiten, sind auch dann verfügbar, wenn der Nutzer offline ist, und erfordern keine Abogebühren oder anderen laufenden Kosten für Entwickler. Sie können die Nutzersicherheit erheblich verbessern. Wenn Sie alle Aktivitäten auf dem Gerät speichern, können Sie die Übertragung personenidentifizierbarer Informationen an externe Anbieter oder Regionen vermeiden.
Demos
Sie können sich die fertigen Demos mit Chatbot-Funktionen ansehen, bevor Sie lernen, wie Sie einen Chatbot selbst erstellen.
- Ursprüngliche To-do-Anwendung
- To-do-Anwendung mit WebLLM
- To-do-App mit Prompt API
- Quellcode auf GitHub
Als Nächstes fügen Sie mit WebLLM einen Chatbot zur To-do-Liste-Anwendung hinzu.