ExLlama: Speicher-effiziente Llama-Implementierung für quantisierte Gewichte

ExLlama

3.5 | 261 | 0
Typ:
Open-Source-Projekte
Letzte Aktualisierung:
2025/10/18
Beschreibung:
ExLlama ist eine speichereffiziente, eigenständige Python/C++/CUDA-Implementierung von Llama für schnelle Inferenz mit 4-Bit-GPTQ-quantisierten Gewichten auf modernen GPUs.
Teilen:
Llama Inferenz
GPTQ Quantisierung
CUDA
Speichereffizienz
große Sprachmodelle

Übersicht von ExLlama

ExLlama: Speicher-Effiziente Llama Implementierung für Quantisierte Gewichte

ExLlama ist eine eigenständige Python/C++/CUDA Implementierung von Llama, die für Geschwindigkeit und Speichereffizienz bei der Verwendung von 4-Bit GPTQ Gewichten auf modernen GPUs entwickelt wurde. Dieses Projekt zielt darauf ab, eine schnellere und speichereffizientere Alternative zur Hugging Face Transformers Implementierung zu bieten, insbesondere für Benutzer, die mit quantisierten Modellen arbeiten.

Was ist ExLlama?

ExLlama ist als eine hochleistungsfähige Inferenz-Engine für die Llama-Familie von Sprachmodellen konzipiert. Es nutzt CUDA für GPU-Beschleunigung und ist für 4-Bit GPTQ quantisierte Gewichte optimiert, wodurch Benutzer große Sprachmodelle auf GPUs mit begrenztem Speicher ausführen können.

Wie funktioniert ExLlama?

ExLlama optimiert die Speichernutzung und Inferenzgeschwindigkeit durch verschiedene Techniken:

  • CUDA Implementierung: Nutzt CUDA für effiziente GPU-Berechnungen.
  • Quantisierungsunterstützung: Speziell für 4-Bit GPTQ quantisierte Gewichte entwickelt.
  • Speichereffizienz: Reduziert den Speicherbedarf im Vergleich zu Standardimplementierungen.

Hauptmerkmale und Vorteile:

  • Hohe Leistung: Optimiert für schnelle Inferenz.
  • Speichereffizienz: Ermöglicht das Ausführen großer Modelle auf weniger leistungsstarken GPUs.
  • Eigenständige Implementierung: Keine Notwendigkeit für die Hugging Face Transformers Bibliothek.
  • Web UI: Beinhaltet eine einfache Web UI für einfache Interaktion mit dem Modell (JavaScript geschrieben von ChatGPT, also Vorsicht!).
  • Docker Unterstützung: Kann in einem Docker Container für einfachere Bereitstellung und Sicherheit ausgeführt werden.

Wie benutzt man ExLlama?

  1. Installation:

    • Klonen Sie das Repository: git clone https://github.com/turboderp/exllama
    • Navigieren Sie zum Verzeichnis: cd exllama
    • Installieren Sie Abhängigkeiten: pip install -r requirements.txt
  2. Ausführen des Benchmarks:

    • python test_benchmark_inference.py -d <path_to_model_files> -p -ppl
  3. Ausführen des Chatbot Beispiels:

    • python example_chatbot.py -d <path_to_model_files> -un "Jeff" -p prompt_chatbort.txt
  4. Web UI:

    • Installieren Sie zusätzliche Abhängigkeiten: pip install -r requirements-web.txt
    • Führen Sie die Web UI aus: python webui/app.py -d <path_to_model_files>

Warum ExLlama wählen?

ExLlama bietet mehrere Vorteile:

  • Leistung: Liefert schnellere Inferenzgeschwindigkeiten im Vergleich zu anderen Implementierungen.
  • Zugänglichkeit: Ermöglicht Benutzern mit begrenztem GPU-Speicher, große Sprachmodelle auszuführen.
  • Flexibilität: Kann über das Python-Modul in andere Projekte integriert werden.
  • Benutzerfreundlichkeit: Bietet eine einfache Web UI für die Interaktion mit dem Modell.

Für wen ist ExLlama geeignet?

ExLlama ist geeignet für:

  • Forscher und Entwickler, die mit großen Sprachmodellen arbeiten.
  • Benutzer mit NVIDIA GPUs (30er-Serie und neuer empfohlen).
  • Diejenigen, die eine speichereffiziente und hochleistungsfähige Inferenzlösung suchen.
  • Jeder, der daran interessiert ist, Llama Modelle mit 4-Bit GPTQ Quantisierung auszuführen.

Hardware Anforderungen:

  • NVIDIA GPUs (RTX 30er-Serie oder neuer empfohlen)
  • ROCm Unterstützung ist theoretisch, aber ungetestet

Abhängigkeiten:

  • Python 3.9+
  • PyTorch (getestet auf 2.0.1 und 2.1.0 nightly) mit CUDA 11.8
  • safetensors 0.3.2
  • sentencepiece
  • ninja
  • flask und waitress (für Web UI)

Docker Unterstützung:

ExLlama kann in einem Docker Container für einfachere Bereitstellung und Sicherheit ausgeführt werden. Das Docker Image unterstützt NVIDIA GPUs.

Ergebnisse und Benchmarks:

ExLlama demonstriert signifikante Leistungsverbesserungen im Vergleich zu anderen Implementierungen, insbesondere in Bezug auf Tokens pro Sekunde (t/s) während der Inferenz. Benchmarks werden für verschiedene Llama Modellgrößen (7B, 13B, 33B, 65B, 70B) auf verschiedenen GPU-Konfigurationen bereitgestellt.

Beispielhafte Verwendung

import torch
from exllama.model import ExLlama, ExLlamaCache, ExLlamaConfig
from exllama.tokenizer import ExLlamaTokenizer

## Initialisiere Modell und Tokenizer
model_directory = "/path/to/your/model"
tokenizer_path = os.path.join(model_directory, "tokenizer.model")
model_config_path = os.path.join(model_directory, "config.json")

config = ExLlamaConfig(model_config_path)
config.model_path = os.path.join(model_directory, "model.safetensors")

tokenizer = ExLlamaTokenizer(tokenizer_path)
model = ExLlama(config)
cache = ExLlamaCache(model)

## Bereite Eingabe vor
prompt = "The quick brown fox jumps over the lazy"
input_ids = tokenizer.encode(prompt)

## Generiere Ausgabe
model.forward(input_ids, cache)
token = model.sample(temperature = 0.7, top_k = 50, top_p = 0.7)

output = tokenizer.decode([token])
print(prompt + output)

Kompatibilität und Modellunterstützung:

ExLlama ist mit einer Reihe von Llama Modellen kompatibel, einschließlich Llama 1 und Llama 2. Das Projekt wird kontinuierlich aktualisiert, um neue Modelle und Funktionen zu unterstützen.

ExLlama ist ein leistungsstarkes Werkzeug für alle, die Llama Modelle effizient ausführen möchten. Sein Fokus auf Speicheroptimierung und Geschwindigkeit macht es zu einer ausgezeichneten Wahl für Forschung und praktische Anwendungen.

Beste Alternativwerkzeuge zu "ExLlama"

vLLM
Kein Bild verfügbar
457 0

vLLM ist eine Inferenz- und Serving-Engine mit hohem Durchsatz und Speichereffizienz für LLMs, die PagedAttention und kontinuierliche Batchverarbeitung für optimierte Leistung bietet.

LLM-Inferenz-Engine
PagedAttention
ChatLLaMA
Kein Bild verfügbar
353 0

ChatLLaMA ist ein LoRA-trainierter KI-Assistent basierend auf LLaMA-Modellen, der benutzerdefinierte persönliche Gespräche auf Ihrem lokalen GPU ermöglicht. Mit Desktop-GUI, trainiert auf Anthropics HH-Datensatz, verfügbar für 7B-, 13B- und 30B-Modelle.

LoRA-Feinabstimmung
llama.cpp
Kein Bild verfügbar
329 0

Ermöglichen Sie eine effiziente LLM-Inferenz mit llama.cpp, einer C/C++-Bibliothek, die für verschiedene Hardware optimiert ist und Quantisierung, CUDA und GGUF-Modelle unterstützt. Ideal für lokale und Cloud-Bereitstellung.

LLM-Inferenz
C/C++-Bibliothek
Featherless.ai
Kein Bild verfügbar
489 0

Führen Sie sofort jedes Llama-Modell von HuggingFace aus, ohne Server einzurichten. Über 11.900 Modelle verfügbar. Ab 10 US-Dollar pro Monat für unbegrenzten Zugriff.

LLM-Hosting
KI-Inferenz
serverlos