Revolution: GPT4All und die Demokratisierung großer Sprachmodelle

Post image

Der Bereich der künstlichen Intelligenz durchläuft - nicht zuletzt dank GPT4All - eine aufregende Transformation. Das umfassende GPT4All-Ökosystem ist maßgeschneidert für die Erstellung und Bereitstellung von personalisierten, großen Sprachmodellen (LLMs). Im Gegensatz zu traditionellen Setups, die auf leistungsstarke Grafikprozessoreinheiten (GPUs) oder Cloud-Systeme angewiesen sind, arbeitet GPT4All effizient auf regulären Computern, die mit Standard-CPUs (Central Processing Units) ausgestattet sind und Advanced Vector Extensions (AVX) oder AVX2-Anweisungen unterstützen - im Grunde genommen sollte Ihr alltäglicher Laptop oder PC dafür geeignet sein! Dies reduziert die bisherige Abhängigkeit von spezialisierten AI-Chips und Cloud-basierten Lösungen.

Das Ziel von GPT4All klingt einfach, ist aber hochambitioniert: erstklassige, assistentenähnliche Sprachmodelle für alle anzubieten, sowohl für Einzelpersonen als auch für Unternehmen, ohne Einschränkungen hinsichtlich ihrer Verwendung oder Weitergabe. Diese GPT4All-Modelle sind kompakt (im Vergleich zu ihren kommerziellen Geschwistern), reichen von 3GB bis 8GB in der Größe, und können problemlos in bestehende Open-Source-Software-Setups integriert werden.

Nomic AI, das Unternehmen, das für GPT4All verantwortlich ist, stellt sicher, dass dieses Software-Ökosystem strenge Qualitäts- und Sicherheitsstandards einhält. Darüber hinaus zielt das Unternehmen darauf ab, eine Plattform zu schaffen, die es den Benutzern ermöglicht, mühelos ihre eigenen personalisierten LLMs zu trainieren und bereitzustellen.

Lassen Sie uns tiefer in das GPT4All-Ökosystem und seine verschiedenen Komponenten eintauchen.

Ökosystem

Wenn Sie zum ersten Mal auf GPT4All stoßen, steht vermutlich der Chat-Client im Fokus, der es Ihnen ermöglicht, LLMs mühelos auf Ihrem lokalen PC auszuführen und - wie von ChatGPT gewohnt - Dialoge zu führen. GPT4All bietet jedoch viel mehr als das. Es umfasst ein umfassendes Ökosystem, das aus verschiedenen Komponenten besteht.

Das GPT4All-Ökosystem ist Open-Source und beinhaltet:

  • GPT4All Chat-Client: Eine Multi-Plattform (Windows, OSX und Ubuntu) Chat-Schnittstelle zum Ausführen von lokalen LLMs.
  • GPT4All Bindings: Stellt Bindings für GPT4All für Python, Typescript, Golang, C# und Java bereit
  • GPT4All Training: Ermöglicht es Ihnen, Ihre eigenen GPT4All-Modelle zu trainieren.
  • GPT4All Datalake: Ein Open-Source-Datalake für gespendete GPT4All-Interaktionsdaten zur Unterstützung des Trainings Ihrer Modelle.

In diesem ersten Artikel werden wir uns hauptsächlich auf den GPT4All Chat-Client konzentrieren, der die am leichtesten zugängliche Komponente ist und eine großartige Möglichkeit bietet, mit GPT4All zu beginnen. Aber seien Sie versichert, dass dies nicht der letzte Artikel über die faszinierenden Möglichkeiten des GPT4All-Ökosystems sein wird.

Installation des GPT4All Chat Client

Die Installation des GPT4All Chat Clients ist ein einfacher Prozess, der nur wenige Schritte erfordert. Der erste Schritt besteht darin, den GPT4All Installer für Ihre Plattform herunterzuladen.

Nach dem Ausführen des Installers werden Sie aufgefordert, das Installationsverzeichnis auszuwählen. Der Installer erstellt das Verzeichnis automatisch, wenn es noch nicht existiert.

GPT4All Installer
GPT4All Installer

Nach Abschluss der Installation können Sie GPT4All starten, indem Sie auf das Desktop-Symbol klicken. Wenn Sie es auf der Konsole ausführen möchten, führen Sie einfach den chat Befehl im bin-Ordner im Installationsverzeichnis aus.

In der Benutzeroberfläche werden Sie aufgefordert, das Modell auszuwählen, das Sie verwenden möchten. Das ausgewählte Modell wird automatisch heruntergeladen und installiert. Eine vollständige Liste der unterstützten Modelle und der aktuellen Leistungskennzahlen finden Sie auf der GPT4All-Website (scrollen Sie nach unten zu “Performance Benchmarks”).

Es ist wichtig zu beachten, dass diese kompakten Modelle recht groß sein können; zum Beispiel erfordert das 4-Bit-quantisierte Falcon-Modell einen Download von 3,8 GB - etwas Geduld ist gefragt.

GPT4All Modell-Auswahl
GPT4All Modell-Auswahl

Warten Sie, bis der Download abgeschlossen ist - dann sollten Sie das Modell verwenden können. Bitte beachten Sie, dass ein heruntergeladenes Modell manchmal nicht sofort auswählbar ist - daher müssen Sie möglicherweise GPT4All Chat neu starten, um es verwenden zu können.

Chat

Nach der Installation und Modellauswahl sollten Sie in der Lage sein, mit dem ausgewählten lokalen Modell zu chatten. Geben Sie einfach Ihre Frage ein und drücken Sie die Eingabetaste. GPT4All wird dann eine Antwort auf Ihre Frage generieren.

GPT4All Chat
GPT4All Chat

Sie werden feststellen, dass die Generierung von Antworten auf Ihre Fragen erhebliche Ressourcen erfordert, die je nach ausgewähltem Modell variieren. Haben Sie daher bitte etwas Geduld. Dies gibt einen Einblick in die erheblichen Rechenressourcen, die benötigt werden, um Antworten auf Ihre Anfragen mit ChatGPT zu generieren, das von einem umfangreichen Modell wie GPT-4 angetrieben wird. Dies wird Ihnen jedoch nicht bewusst sein, da die Berechnungen auf hochspezialisierten und leistungsfähigeren Hardwaregeräten in der Cloud durchgeführt werden.

GPT4All Resource Consumption
GPT4All Resource Consumption

Leider unterstützt GPT4All derzeit keine GPU-Nutzung. Daher hängen die Leistung und Geschwindigkeit des Modells hauptsächlich von der Leistung Ihrer CPU und der Anzahl der CPU-Kerne ab, die Sie in den GPT4All-Anwendungseinstellungen eingerichtet haben.

Dennoch ist es absolut faszinierend zu sehen, wie gut sogar die “verkleinerten” quantisierten Modelle Ihre Fragen beantworten können.

Und es wird noch besser.

Chat mit Ihren Dokumenten

Das LocalDocs Beta Plugin von GPT4All ermöglicht es Ihnen, “mit Ihren Dokumenten zu chatten”, d.h. Sie können Fragen stellen und neue Erkenntnisse aus Ihren Daten gewinnen. Besonders elegant ist, dass Sie die volle Kontrolle darüber haben, auf welche Dokumente das Modell zugreifen kann, und Ihre Daten Ihren Computer nicht verlassen.

LocalDocs pflegt einen Index der Inhalte der Dokumente in bestimmten Ordnern, so dass das Sprachmodell relevante Ausschnitte aus Dokumenten als Kontext verwenden kann, wenn es auf Ihre Anfragen antwortet. Es kann jedoch keine allgemeinen Metadatenanfragen beantworten oder ein einzelnes Dokument zusammenfassen. Das Plugin unterstützt verschiedene Dokumenttypen, einschließlich txt, doc, docx, pdf, xls, xlsx, csv, ppt und mehr.

Um dieses Plugin zu verwenden, sollten Sie einen Ordner auf Ihrem lokalen Computer erstellen, der die Dokumente enthält, auf die das Sprachmodell während der Chatsitzung zugreifen soll. Kopieren Sie anschließend Ihre Dokumente in diesen bestimmten Ordner. Richten Sie anschließend Ihren Ordner als Sammlung ein, indem Sie zu den GPT4All-Einstellungen navigieren, auf den Abschnitt ‘Plugins’ klicken und den Pfad zu Ihrem lokalen Dokumentenordner einschließen, während Sie einen Namen für die Sammlung angeben. Aktivieren Sie das Kontrollkästchen ‘Referenzen anzeigen’, um die von dem Sprachmodell verwendeten Dokumentausschnitte zu visualisieren.

Vergessen Sie nicht, die Sammlung für den Chat zu aktivieren, indem Sie auf das Datenbanksymbol klicken und das Kontrollkästchen neben den Sammlungen, die Sie in Ihrem Chat verwenden möchten, ankreuzen.

Wenn Sie eine Chatsitzung mit dem ausgewählten LLM starten, wird GPT4All die Dokumente in den ausgewählten Sammlungen als Wissensbasis verwenden, um Ihre Fragen zu beantworten.

GPT4All LocalDocs
GPT4All LocalDocs

Wie funktioniert das unter der Haube?

Der Ansatz, den das LocalDocs-Plugin verwendet, wird als Retrieval Augmented Generation (RAG) bezeichnet und umfasst zwei Schlüsselschritte: Abruf und Generierung. Zunächst holt die Technik relevante Informationen basierend auf einer gegebenen Abfrage ab und verwendet dann diese erworbenen Informationen, um eine Antwort zu erstellen.

Um den Kontext der Antworten des LLM zu verbessern, extrahiert LocalDocs relevante Abschnitte aus jedem Dokument innerhalb der aktivierten Sammlungen, wobei die aktuelle Frage des Benutzers als Leitfaden dient. Diese extrahierten Dokumentausschnitte dienen dazu, dem Sprachmodell das Inhaltswissen aus Ihren Dokumenten zu vermitteln, was dem LLM ermöglicht, Antworten zu erzeugen, die informativ und aufschlussreich sind. Der Abruf beinhaltet die Verwendung von “klassischen” n-Gramm- und TF-IDF-basierten Methoden um zu entscheiden, welche Dokumentausschnitte als Kontext verwendet werden sollten. Dies garantiert eine vergleichbare Qualität mit Embedding-basierten Abrufansätzen, ist aber um Größenordnungen schneller.

Es ist wichtig zu betonen, dass obwohl LocalDocs dem LLM den Kontext aus zusätzliche lokalen Daten bereitstellt, könnte der LLM immer noch Antworten generieren, die fehlerhaft oder “halluziniert” sein könnten.

Bitte überprüfen Sie daher den generierten Inhalt, bevor Sie ihn für wichtige Aufgaben verwenden.

GPT4All “Server Mode”

Mit Ihren Dokumenten lokal zu chatten ist eine großartige Funktion, aber wäre es nicht noch besser, wenn Sie Ihr lokales LLM in Ihren eigenen Anwendungen verwenden könnten? Hier kommt der “Server-Modus” von GPT4All ins Spiel. Er ermöglicht es Ihnen, einen lokalen API-Endpunkt zu erstellen, der Ihnen API-Zugriff auf Ihr persönliches LLM gibt. Dieser Endpunkt kann für die lokale Softwareentwicklung genutzt und das LLM damit in Ihre eigenen Anwendungen integriert werden.

Um diese Funktion zu nutzen, aktivieren Sie den API-Server in den Anwendungseinstellungen und GPT4All startet einen OpenAI-kompatiblen API-Endpunkt auf localhost:4891.

Sie können den completions-Service der API einfach mit curl testen:

curl "http://localhost:4891/v1/completions" -H "Content-Type: application/json" \
-H "Authorization: Bearer any" \
-d '{ "model": "gpt4all-j-v1.3-groovy", "prompt": "Hello!", "max_tokens": 256, "temperature": 0.7 }'

Um zu sehen, welche Modelle verfügbar sind, können Sie die folgende Anfrage verwenden:

curl "http://localhost:4891/v1/models" -H "Content-Type: application/json" -Hmodels -H "Authorization: Bearer any"

Sie können die API auch programmgesteuert in Ihren eigenen Anwendungen verwenden, z.B. mit einem einfachen HTTPClient oder einem ausgefeilten Framework wie LangChain .

Bitte beachten Sie: Während unserer Tests mit LangChain haben wir teilweise leere Antworten von der API erhalten und wir untersuchen noch warum das passiert ist. In einem zukünftigen Artikel werden wir Ihnen zeigen, wie Sie die API in Ihren eigenen Anwendungen verwenden können.

Einbindung von LLMs in Ihre Anwendung mit den GPT4All Bindings

Als zusätzlichen Bonus bietet GPT4All Bindings für mehrere Programmiersprachen an. Diese ermöglichen es Ihnen, LLMs nahtlos in Ihre eigenen Anwendungen zu integrieren und die Fähigkeiten von lokalen LLMs zu nutzen, ohne mit einem API-Endpunkt interagieren zu müssen.

Dieses Thema verdient jedoch einen eigenen Artikel.

Fazit

GPT4All ist ein vielversprechendes Projekt, das darauf abzielt, die Nutzung von LLMs zu demokratisieren, indem es sie für alle zugänglich macht. Das Projekt steckt noch in den Kinderschuhen, ist aber bereits sehr nutzbar und zeigt großes Potenzial. Das Team hinter GPT4All ist sehr aktiv und verbessert die Software kontinuierlich. Wenn Sie also an LLMs interessiert sind, sollten Sie auf jeden Fall GPT4All ausprobieren.

You May Also Like