Lokales Intelligentes Q&A-System

Im heutigen Bereich der KI werden allgemeine große Sprachmodelle (wie GPT-3, GPT-4 usw.) weit verbreitet zum Aufbau von Chatbots eingesetzt. Diese Modelle verfügen über leistungsstarke Fähigkeiten zur Verarbeitung natürlicher Sprache und können eine Vielzahl von Fragen bearbeiten, indem sie Antworten erzeugen, die der menschlichen Sprache ähneln. Trotz ihrer hervorragenden Leistung in allgemeinen Szenarien fehlt diesen Modellen jedoch oft die Präzision in domänenspezifischen Q&A-Szenarien. Dies liegt daran, dass allgemeinen großen Sprachmodellen ein tiefes Verständnis spezifischer Domänenkenntnisse fehlt; ihre Trainingsdaten sind umfangreich, aber nicht zielgerichtet, was zu ungenauen, weitschweifigen oder irrelevanten Antworten führt, wenn sie mit spezifischen Szenarien umgehen.

Um dieses Problem anzugehen, hat die Industrie eine Reihe von Lösungen vorgeschlagen, die auf spezifische Szenarien zugeschnitten sind, um die Professionalität und Genauigkeit von Chatbots zu verbessern. Dieser Artikel wird diese Lösungen im Detail vorstellen und sie anhand eines einfachen Beispiels demonstrieren.

Warum LLM lokal bereitstellen?

Die lokale Bereitstellung großer Sprachmodelle (lokalisierte Bereitstellung) ist eine Wahl, die auf unterschiedlichen Geschäftsanforderungen und technischen Szenarien basiert. Hier sind einige der Hauptgründe:

Datenschutz und Sicherheit

In Szenarien mit strengen Anforderungen an Datenschutz und Sicherheit, wie im Gesundheitswesen, im Finanzwesen und in Regierungen, ist die lokalisierte Bereitstellung die unvermeidliche Wahl. Sensible Daten in diesen Bereichen sind möglicherweise aufgrund strenger gesetzlicher und regulatorischer Anforderungen nicht für das Hochladen in die Cloud zur Verarbeitung geeignet. Die lokale Bereitstellung großer Sprachmodelle stellt sicher, dass Daten die lokale Netzwerkumgebung nicht verlassen, wodurch Datenlecks oder externe Risiken vermieden werden.

Reduzierte Netzwerkabhängigkeit

Die Bereitstellung in der Cloud ist in der Regel von der Internetverbindung abhängig. In Situationen mit instabilen Netzwerkbedingungen oder begrenzter Bandbreite kann die Leistung des Cloud-Service-Zugriffs leiden. Die lokalisierte Bereitstellung vermeidet die Abhängigkeit von externen Netzwerken und stellt sicher, dass das System jederzeit effizient läuft, insbesondere in Szenarien, die Echtzeit-Antworten erfordern.

Anpassung und Kontrolle

Die lokale Bereitstellung großer Sprachmodelle ermöglicht es Entwicklern, die Modelle anzupassen und zu optimieren, um spezifische Geschäftsanforderungen besser zu erfüllen. Bei Cloud-Diensten können Benutzer nur auf generische APIs zugreifen, während die lokale Bereitstellung Entwicklern ermöglicht, Modelle feinabzustimmen, zu erweitern und mehr Flexibilität bei der Anpassung des Modellverhaltens zu haben.

Kostenoptimierung

Während die Cloud bequeme Skalierbarkeit und Wartungsdienste bietet, kann die langfristige Nutzung großer Modelle in der Cloud erhebliche Kosten verursachen, insbesondere für Unternehmen, die kontinuierliche Modellaufrufe benötigen. Die lokale Bereitstellung von Modellen kann Cloud-Service-Kosten einsparen, insbesondere für Unternehmen mit großvolumiger Nutzung.

Lösungen für die Einschränkungen allgemeiner Modelle

Angesichts des Problems unzureichender Leistung allgemeiner Modelle in spezifischen Szenarien wurden die folgenden Lösungen weit verbreitet angewendet und anerkannt:

Wissensverstärkte Modelle (Retrieval-Augmented Generation, RAG)

RAG ist ein technisches Framework, das Retrieval mit Generierung kombiniert und die Wissenslücken großer Sprachmodelle durch die Einführung externer Wissensdatenbanken adressiert. In der RAG-Architektur wird die Anfrage des Benutzers zunächst an ein Retrieval-Modul gesendet, das relevante Dokumente oder Informationen aus einer vorgefertigten Wissensdatenbank extrahiert. Diese Informationen werden dann mit dem Generierungsmodell kombiniert, um genauere Antworten zu erzeugen. Diese Methode nutzt die sprachlichen Fähigkeiten des Generierungsmodells und gewährleistet gleichzeitig die Professionalität und Genauigkeit der Antworten. Dieser Ansatz ist besonders geeignet für domänenspezifische Q&A-Szenarien wie Gesundheitswesen, Recht oder unternehmensinterne Wissens-Q&A.

RAG

Bildquelle: https://transformers.run/c1/transformer/

Feinabstimmung von Modellen

Die Feinabstimmung ist eine weitere gängige Methode, die zur Optimierung allgemeiner Modelle für spezifische Szenarien verwendet wird. Durch die Feinabstimmung vortrainierter Sprachmodelle können die Modelle besser an domänenspezifische Daten und Aufgaben angepasst werden. Beispielsweise kann man große Sprachmodelle mit internen Unternehmensdokumenten, technischen Handbüchern oder branchenspezifischen Q&A-Daten neu trainieren. Dieser Ansatz kann die Leistung des Modells in spezifischen Domänen erheblich verbessern.

Der Nachteil der Feinabstimmung ist, dass sie eine erhebliche Menge an domänenspezifischen Daten erfordert, und der Trainingsprozess kann beträchtliche Rechenressourcen erfordern. Sobald die Feinabstimmung jedoch abgeschlossen ist, wird das Modell professioneller und präziser im Umgang mit domänenspezifischen Problemen.

Darüber hinaus gibt es viele andere Lösungen wie Wissensgraphen, regelbasierte Systeme, hybride Systeme und mehr. Die geeignete Methode kann je nach tatsächlicher Situation gewählt werden.

Aufbau eines domänenspezifischen Q&A-Systems mit RAG

Wir werden anhand eines einfachen Beispiels demonstrieren, wie man einen wissensdatenbankgesteuerten Chatbot mit RAG aufbaut. Zur Demonstration verwenden wir Ollama als Inferenz-Engine zum Laden des großen Sprachmodells, Anything LLM zum Aufbau der RAG-Wissensdatenbank, und stellen alle Dienste auf einem lokalen Jetson-Gerät bereit.

  • Ollama: Inferenz-Engine für große Sprachmodelle
  • Anything LLM: KI-Anwendungsentwicklungstool
  • Jetson: Leistungsstarkes Edge-Computing-Gerät

RAG

Schritt 1. Ollama installieren und ausführen

Hier verwenden wir jetson-examples, um das große Sprachmodell schnell auf dem Jetson-Gerät bereitzustellen.

bash
sudo apt install python3-pip
pip3 install jetson-examples
reComputer run ollama
ollama run llama3

Bitte halten Sie dieses Terminal aktiv.

Schritt 2. AnythingLLM installieren und ausführen

Wir können AnythingLLM direkt mit Docker bereitstellen:

bash
docker pull mintplexlabs/anythingllm

export STORAGE_LOCATION=$HOME/anythingllm 
mkdir -p $STORAGE_LOCATION 
touch "$STORAGE_LOCATION/.env" 
docker run -d -p 3001:3001 --cap-add SYS_ADMIN \
    -v ${STORAGE_LOCATION}:/app/server/storage \
    -v ${STORAGE_LOCATION}/.env:/app/server/.env \
    -e STORAGE_DIR="/app/server/storage" \
    mintplexlabs/anythingllm

Schritt 3. Die lokale Wissensdatenbank konfigurieren

Sobald AnythingLLM erfolgreich gestartet ist, können wir einen Browser verwenden, um http://<ip-jetson>:3001 zu öffnen, auf seine WebUI-Oberfläche zuzugreifen und die Wissensdatenbank-Datei in der WebUI hochzuladen.

Hier habe ich ChatGPT verwendet, um einige Kurzgeschichten zu generieren, und diese Geschichten in AnythingLLM hochgeladen.

upload

Schritt 4. Wirksamkeitstest

test

Weitere Inhalte