Dieses Repository bietet einen potenziellen Rahmen mit praktischen Beispielen für die Entwicklung von Anwendungen, die auf quantisierten Open-Source-Sprachmodellmodellen (LLMs) in Verbindung mit LangChain basieren. Dieser Leitfaden konzentriert sich insbesondere auf die Implementierung und Nutzung von 4-Bit-quantisierten GPTQ-Varianten verschiedener LLMs, wie WizardLM und WizardLM-Mega. Während die Online-Ressourcen zu diesem speziellen Thema begrenzt sind, zielt dieses Repository darauf ab, diese Lücke zu schließen und umfassende Leitfäden anzubieten.
Der lokale Betrieb von LLMs bietet zahlreiche Vorteile, wobei der Datenschutz ein entscheidender Faktor ist. Indem Sie Ihre Daten auf Ihrer eigenen Hardware speichern, können Sie die Funktionen dieser Modelle nutzen, ohne auf externe APIs angewiesen zu sein, was eine bessere Kontrolle über Ihre Daten gewährleistet und die Entwicklung spannender Anwendungen ermöglicht.
nvidia-smi
sollte funktionieren)Hinweis: Docker-Unterstützung wird hinzugefügt.
Die folgenden GPTQ-Modelle werden derzeit unterstützt:
Um mit der Verwendung von GPTQ-Modellen mit Langchain zu beginnen, sind einige wichtige Schritte erforderlich:
quant_cuda
richtig einrichtendemo.py
ausführen und das LLM mit LangChain verwenden, genau wie Sie es für OpenAI-Modelle tun.Installieren Sie Miniconda, indem Sie den Anweisungen auf der offiziellen Website folgen.
Um zu überprüfen, ob Conda korrekt eingerichtet wurde
$ conda --version
Initialisieren Sie Conda auf Ihrer Shell
$ conda init
Erstellen Sie eine neue Conda-Umgebung. Stellen Sie sicher, dass Sie die angegebene Python-Version verwenden, da diese nur unter 3.10.9
getestet wurde
$ conda create -n wizardlm_langchain python=3.10.9
Sobald die neue Umgebung erstellt ist, aktivieren Sie sie.
$ conda activate wizardlm_langchain
Der gesamte oben beschriebene Prozess von 2 bis 4 wird mithilfe des Bash-Skripts setup.sh
automatisiert. Fühlen Sie sich frei, es nach Ihren Wünschen zu modifizieren.
$ bash ./setup.sh
Bei korrekter Einrichtung der Umgebung sollten alle Schritte idealerweise fehlerfrei ablaufen.
Wenn beim Ausführen der Demo die folgende Ausnahme auftritt:
Exception: Error while deserializing header: HeaderTooLarge
Dann bedeutet dies, dass das Modell nicht vollständig heruntergeladen wurde. Sie können also versuchen, es mit dem Befehl git clone
in setup.py
erneut herunterzuladen.
Bevor Sie die Demo ausführen, empfiehlt es sich, die Umgebung zu deaktivieren und erneut zu aktivieren, wenn Sie sie zum ersten Mal einrichten.
Führen Sie die Demo aus:
$ python demo.py
Wenn Sie setup.sh
verwenden, wird standardmäßig das Modell „wizardLM-7B-GPTQ“ heruntergeladen. Wenn Sie jedoch andere Modelle verwenden möchten, die mit diesem Projekt getestet wurden, können Sie das Skript download_model.sh
verwenden.
$ download_model.sh < HUGGING FACE MODEL NAME >
# Example
$ ./download_model.sh " TheBloke/WizardLM-7B-uncensored-GPTQ "
Hinweis: Wenn Sie nicht die vollständigen Modelle von HF herunterladen können, stellen Sie sicher, dass Git LFS richtig konfiguriert ist. Der Befehl
git lfs install
kann manchmal die Aufgabe erledigen.
Sobald Sie den Einrichtungsprozess abgeschlossen haben, können Sie die GPTQ-Modelle mit LangChain verwenden, indem Sie die folgenden Schritte ausführen:
Stellen Sie sicher, dass Sie das Stammverzeichnis des Projekts
wizardlm_langchain
an PYTHONPATH anhängen, um es global verwenden zu können
Sehen Sie sich das Beispielskript demo.py
an, um zu verstehen, wie es verwendet wird.
Beiträge zu diesem Repository sind willkommen. Wenn Sie Probleme feststellen oder Verbesserungsvorschläge haben, können Sie gerne ein Problem eröffnen oder eine Pull-Anfrage einreichen.
Bitte beachten Sie beim Spenden die folgenden Richtlinien:
Dieses Repository ist unter der GNU Public License lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.
Wir möchten die Beiträge der Open-Source-Community und der Entwickler der in diesem Repository verwendeten ursprünglichen GPTQ-Modelle würdigen. Ein Millionen Dank an oobabooga/text-generation-webui, ihre Arbeit war eine große Hilfe bei der Einrichtung von GPTQ-Modellen mit Langchain.