paint-brush
So führen Sie Ihren eigenen lokalen LLM durch (Aktualisiert für 2024)von@thomascherickal
19,583 Lesungen
19,583 Lesungen

So führen Sie Ihren eigenen lokalen LLM durch (Aktualisiert für 2024)

von Thomas Cherickal8m2024/03/21
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Der Artikel enthält detaillierte Anleitungen zur lokalen Verwendung generativer KI-Modelle wie Hugging Face Transformers, gpt4all, Ollama und localllm. Erfahren Sie, wie Sie die Leistungsfähigkeit der KI für kreative Anwendungen und innovative Lösungen nutzen können.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - So führen Sie Ihren eigenen lokalen LLM durch (Aktualisiert für 2024)
Thomas Cherickal HackerNoon profile picture
0-item

Von https://wallpapers.com/wallpapers/theoretical-physics-green-particles-ht1c16rgtu5ilkhc.html


Dies ist das Durchbruchsjahr für Generative AI


Nun, um es gelinde auszudrücken, hatte ich dieses Jahr die Qual der Wahl, was die Durchführung eines LLM-Modells vor Ort angeht.


Lasst uns beginnen:


1) HuggingFace-Transformatoren:

Alle Bilder wurden mit Bing Image Creator erstellt.

Um Hugging Face Transformers offline ohne Internetzugang auszuführen, befolgen Sie diese Schritte: Installieren Sie Transformers mit den erforderlichen Abhängigkeiten und stellen Sie sicher, dass Sie sich während der Installation nicht auf automatische Updates verlassen. Sie können die Installation über pip oder conda durchführen, wie in der Hugging Face-Dokumentation beschrieben.


 pip install transformers==4.xy

Laden Sie vorab trainierte Modelle von Ihrem lokalen Computer, nachdem Sie sie von Hugging Face Hub mit Internetzugang heruntergeladen haben. Speichern Sie das Modell mit save_pretrained() und laden Sie es später im Offlinemodus.

 from transformers import AutoModelForSequenceClassification, BertTokenizerFast

Laden Sie das Modell zum ersten Mal herunter und speichern Sie es

 model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") model.save_pretrained("/my/local/directory/bert-base-uncased")

Laden Sie das gespeicherte Modell später offline

 model = AutoModelForSequenceClassification.from_pretrained("/my/local/directory/bert-base-uncased") tokenizer = BertTokenizerFast.from_pretrained("/my/local/directory/bert-base-uncased")


Legen Sie die Umgebungsvariablen TRANSFORMERS_OFFLINE und HF_DATASETS_OFFLINE fest, um die Offline-Nutzung zu aktivieren.

 export TRANSFORMERS_OFFLINE=1 export HF_DATASETS_OFFLINE=1

Klonen Sie das Modell-Repository direkt, wenn Sie keine einzelnen Dateien herunterladen möchten.


 git clone https://huggingface.co/<username>/<repository> /my/local/directory


Stellen Sie sicher, dass alle erforderlichen Dateien in dem Verzeichnis vorhanden sind, in dem Sie Ihre Skripte ausführen möchten. Denken Sie daran, dass das Setzen von TRANSFORMERS_OFFLINE auf 1 allein nicht funktioniert, wenn das Modell nicht bereits lokal verfügbar ist. Sie müssen das Modell entweder mit Internetzugang herunterladen und lokal speichern oder das Modell-Repository klonen.




2) gpt4all


gpt4all ist ein Open-Source-Projekt, das jedem den Zugriff auf leistungsstarke KI-Modelle wie GPT-3 und deren Nutzung ermöglicht. Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Installation und Nutzung von gpt4all:

  1. Installation:
  • gpt4all erfordert Python 3.7 oder höher und einige Python-Paketabhängigkeiten. Der einfachste Weg, gpt4all zu installieren, ist über pip:
 pip install gpt4all
  1. Holen Sie sich einen API-Schlüssel:
  • Sie benötigen einen API-Schlüssel, um über gpt4all auf die Modelle zuzugreifen. Sie können einen kostenlosen API-Schlüssel erhalten, indem Sie sich unter https://platform.openai.com anmelden.
  1. Authentifizierung einrichten:
  • Sobald Sie Ihren API-Schlüssel haben, legen Sie eine Umgebungsvariable namens OPENAI_API_KEY mit Ihrem API-Schlüssel als Wert fest.
 export OPENAI_API_KEY="YOUR_API_KEY_HERE"
  1. Verwenden Sie gpt4all:
  • Jetzt können Sie gpt4all in Python verwenden, um auf GPT-3 und andere Modelle zuzugreifen. Hier ist ein Beispiel, das Davinci (eine Version von GPT-3) dazu auffordert, eine Textpassage zusammenzufassen:
 from gpt4all import completions summary = completions.generate(engine="text-davinci-003", prompt="Summarize this text: [insert long text here]", max_tokens=50) print(summary.text)
  • Weitere Beispiele zur Verwendung verschiedener Modelle finden Sie in der gpt4all-Dokumentation


3) ollamma


Ollamma ist eine Open-Source-Bibliothek, die einfachen Zugriff auf große Sprachmodelle wie GPT-3 bietet. Hier sind die Details zu den Systemanforderungen, der Installation und der Verwendung:

System Anforderungen:

  • Python 3.7 oder höher
  • Anfragen-Bibliothek
  • Gültiger OpenAI API-Schlüssel

Installation:

 pip install ollamma

Verwendung:

  1. API-Schlüssel festlegen
 import os os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
  1. Importieren und Erstellen des Clients
 from ollamma import Client client = Client()
  1. Text generieren
 response = client.generate( engine="text-davinci-003", prompt="Hello world", max_tokens=100 ) print(response.generations[0].text)

Mit der Methode „Generieren“ können Sie die Engine, die Eingabeaufforderung und Parameter wie die maximale Anzahl an Token angeben, um Ihre Anfrage zu konfigurieren.

Sie können auch Engines optimieren, Inhalte moderieren und mehr. Weitere Einzelheiten zu allen verfügbaren Methoden finden Sie in der Ollamma-Dokumentation.

Zusammenfassend lässt sich also sagen: Ollamma macht es wirklich einfach, GPT-3 und andere Modelle nach der Installation und Konfiguration mit nur wenigen Zeilen Python-Code zu nutzen!


4) LM Studio


LM Studio ist ein Open-Source-Tool, das den Prozess des Trainierens, Auswertens und lokalen Verwendens modernster Sprachmodelle optimiert. So bringen Sie LM Studio lokal zum Laufen:


  1. Installation:
    LM Studio erfordert Docker und Docker Compose. So installieren Sie es:

a. Installieren Sie Docker Engine und Docker Compose auf Ihrem Computer
b. Klonen Sie das LM Studio GitHub-Repository:
git clone https://github.com/lm-studio/lm-studio.git


  1. Aufbau:
    LM Studio verwendet Konfigurationsdateien im Ordner config/ . Zu den üblichen Dateien gehören:

a. model.yaml : Modellarchitekturen angeben
b. training.yaml : Trainingsparameter festlegen
c. evaluation.yaml : Auswertungseinstellungen anpassen


  1. LM Studio ausführen:
    Die Hauptschnittstelle ist Docker Compose. Einige allgemeine Befehle:

a. Images erstellen: docker-compose build
b. Starten Sie alle Dienste: docker-compose up -d
c. Protokolle anzeigen: docker-compose logs -f
d. Dienste stoppen: docker-compose down


Die Dienste stellen verschiedene Ports bereit, die Sie zur Interaktion mit der Benutzeroberfläche, APIs, Notebooks und mehr verwenden können.

Zusammenfassend lässt sich also sagen, dass LM Studio das Experimentieren mit lokalen Sprachmodellen optimiert. Benutzer müssen lediglich das Repository klonen, Einstellungsdateien konfigurieren und einfache Docker-Befehle verwenden, um mit dem Trainieren, Auswerten und Verwenden von Modellen zu beginnen.


5) lokales


Ich finde, das ist die bequemste und einfachste Methode von allen. Die vollständige Erklärung finden Sie unter dem folgenden Link:

https://cloud.google.com/blog/products/application-development/new-localllm-lets-you-develop-gen-ai-apps-locally-without-gpus

Zusammengefasst:

localllm in Kombination mit Cloud Workstations revolutioniert die KI-gesteuerte Anwendungsentwicklung, indem Sie LLMs lokal auf CPU und Speicher innerhalb der Google Cloud-Umgebung verwenden können. Durch den Wegfall der Notwendigkeit von GPUs können Sie die Herausforderungen des GPU-Mangels überwinden und das volle Potenzial von LLMs ausschöpfen. Mit gesteigerter Produktivität, Kosteneffizienz und verbesserter Datensicherheit können Sie mit localllm mühelos innovative Anwendungen erstellen.


6) llamma.cpp

Um Llama.cpp für lokales Training und Inferenz zu installieren und zu verwenden, führen Sie diese Schritte aus:

Installieren Sie Abhängigkeiten:

 Python 3 CMake Optional (for GPU acceleration) NVIDIA drivers, CUDA, and cuDNN For Windows, use Visual Studio Community with Desktop C++ Environment and Python 3 Clone the repository:

git clone --recursive https://github.com/abetlen/llama-cpp-python.git Wenn Sie die GPU-Beschleunigung verwenden möchten, legen Sie die Umgebungsvariable wie im Repo beschrieben fest (z. B. unter Linux):

 export CMAKE_ARGS="-DLLAMA_CUBLAS=ON" Install Llamma.cpp:

Für den lokalen Build und die Systemkompilierung:

 cd llama-cpp-python pip install -e . For Windows, or if you want prebuilt binaries, consider the following: No GPU support: pip install llama-cpp-python[server]

Optional können Sie eine High-Level-Schnittstelle mit dem folgenden Befehl verwenden:

 python -m llama_cpp.server --model models/7B/llama-model.gguf With GPU support: set FORCE_CMAKE=1 set CMAKE_ARGS=-DLLAMA_CUBLAS=ON pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

Optional können Sie für Windows eine High-Level-Schnittstelle verwenden:

 python -m llama_cpp.server --model "path/to/your/model" Download and place Llama models in the models/ subdirectory within the Llama.cpp repository if they are not included (models like llama-model.gguf or ggml-* files are available on Hugging Face or GGML).


Testen Sie die Installation:


 The llama_cpp/llama_cpp.py script provides a simple high-level interface in Python. Replace llama-model.gguf with your downloaded Llama model to test inference. If you want to train your own Llama model, you'll need to train it according to the official documentation and manually convert the GGML files into GGUF files (for GPU deployment).



7) Oobagooba

Dies ist eine Open-Source-Gradio-Implementierung einer WebUI zur Textgenerierung mit Langchain.


Einige Auszüge aus der Datei README.md:

Textgenerierung-WebUI-Erweiterungen

Dies ist ein Verzeichnis von Erweiterungen für https://github.com/oobabooga/text-generation-webui

Wenn Sie Ihre eigene Erweiterung erstellen, können Sie sie gerne in einem PR an diese Liste senden.

Langzeitgedächtnis

Eine ausgeklügelte Erweiterung, die ein Langzeitgedächtnis für Bots im Chat-Modus erstellt.

https://github.com/wawawario2/long_term_memory

AllTalk TTS

AllTalk basiert auf der Coqui-TTS-Engine, ähnlich der Coqui_tts-Erweiterung für die WebUI zur Textgenerierung, unterstützt jedoch eine Vielzahl erweiterter Funktionen.

  • Benutzerdefinierte Starteinstellungen: Passen Sie Ihre Standard-Starteinstellungen an. Bildschirmfoto
  • Erzähler: Verwenden Sie unterschiedliche Stimmen für Hauptfigur und Erzähler. Beispielerzählung
  • Niedriger VRAM-Modus: Ideal für Personen mit kleinem GPU-Speicher oder wenn Ihr VRAM von Ihrem LLM gefüllt ist. Bildschirmfoto
  • DeepSpeed: Eine 3- bis 4-fache Leistungssteigerung durch TTS. DeepSpeed Windows/Linux-Anweisungen Bildschirmfoto
  • Lokale/benutzerdefinierte Modelle: Verwenden Sie eines der XTTSv2-Modelle (API Local und XTTSv2 Local).
  • Optionale WAV-Dateiwartung: Konfigurierbares Löschen alter Ausgabe-WAV-Dateien. Bildschirmfoto
  • Feinabstimmung: Trainieren Sie das Modell gezielt mit einer Stimme Ihrer Wahl für eine bessere Wiedergabe.
  • Dokumentation: Vollständig dokumentiert mit integrierter Webseite. Bildschirmfoto
  • Konsolenausgabe: Löschen Sie die Befehlszeilenausgabe bei etwaigen Warnungen oder Problemen.
  • API-Suite und Drittanbieter-Unterstützung über JSON-Aufrufe. Kann mit Drittanbieter-Anwendungen über JSON-Aufrufe verwendet werden.
  • Kann als eigenständige App ausgeführt werden, nicht nur innerhalb der Textgenerierungs-WebUI.

https://github.com/erew123/alltalk_tts

EdgeGPT

Erweiterung für Text Generation Webui basierend auf EdgeGPT von acheong08, für einen schnellen Internetzugriff für Ihren Bot.

https://github.com/GiusTex/EdgeGPT

XTTSv2

Eine Variante der coqui_tts-Erweiterung im Hauptrepository. Beide verwenden das XTTSv2-Modell, aber dieses verfügt über eine „Erzähler“-Funktion für Text, der *zwischen Sternchen* geschrieben ist.

https://github.com/kanttouchthis/text_generation_webui_xtts

Spielplatz für Schriftsteller

Diese Erweiterung bietet ein unabhängiges erweitertes Notizbuch, das immer auf der oberen Registerkarte angezeigt wird. Es verfügt über viele Funktionen, die im Notizbuch nicht vorhanden sind:

  • Zwei unabhängige Notebooks A und B, die immer vorhanden sind, unabhängig vom Modus
  • Inline-Anweisung (Möglichkeit, direkt im Text Fragen zu stellen oder Aufgaben zu erteilen)
  • Auswählen und einfügen - Text in der Mitte Ihres Textes generieren
  • Perma-Gedächtnis, Zusammenfassung, Paraphrasierung
  • LoRA-Rama - zeigt LoRA-Checkpoints und die Möglichkeit, zwischen ihnen zu wechseln
  • LoRA-Skalierung (experimentell) - Passen Sie die LoRA-Auswirkung mit einem Sclider an

https://github.com/FartyPants/Playground

Und es gibt noch so viel mehr zu entdecken: Schauen Sie sich an:

https://github.com/oobabooga/text-generation-webui-extensions



Abschluss?


Und es gibt noch mehr! So viel mehr! LangChain, llm, ollamma, die Liste wird einfach immer länger!

Auf ein herrliches Jahr voller wunderbarer Kreativität. Prost!