ExLlama
Ü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?
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
- Klonen Sie das Repository:
Ausführen des Benchmarks:
python test_benchmark_inference.py -d <path_to_model_files> -p -ppl
Ausführen des Chatbot Beispiels:
python example_chatbot.py -d <path_to_model_files> -un "Jeff" -p prompt_chatbort.txt
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>
- Installieren Sie zusätzliche Abhängigkeiten:
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"
Mit LM Studio können Sie lokale KI-Modelle wie gpt-oss, Qwen, Gemma und DeepSeek privat und kostenlos auf Ihrem Computer ausführen. Es unterstützt Entwicklerressourcen wie JS- und Python-SDKs.
Friendli Inference ist die schnellste LLM-Inferenz-Engine, optimiert für Geschwindigkeit und Kosteneffizienz, die GPU-Kosten um 50-90 % senkt und gleichzeitig einen hohen Durchsatz und eine geringe Latenz bietet.
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.
Erstellen Sie eine von Perplexity inspirierte KI-Antwort-Engine mit Next.js, Groq, Llama-3 und Langchain. Erhalten Sie effizient Quellen, Antworten, Bilder und Folgefragen.
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.
Der Nebius AI Studio Inference Service bietet gehostete Open-Source-Modelle für schnellere, günstigere und genauere Ergebnisse als proprietäre APIs. Skalieren Sie nahtlos ohne MLOps, ideal für RAG und Produktionsworkloads.
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.
xTuring ist eine Open-Source-Bibliothek, die Benutzern ermöglicht, Large Language Models (LLMs) effizient anzupassen und zu optimieren, mit Fokus auf Einfachheit, Ressourcenoptimierung und Flexibilität für die KI-Personalisierung.
Inweave ist eine KI-gestützte Plattform für Startups und Scaleups, die Workflows effizient automatisiert. Bereitstellen anpassbarer KI-Assistenten mit Top-Modellen wie GPT und Llama über Chat oder API für nahtlose Produktivitätsgewinne.
Sagify ist ein Open-Source-Python-Tool, das Machine-Learning-Pipelines auf AWS SageMaker vereinfacht und eine einheitliche LLM-Gateway für die nahtlose Integration proprietärer und Open-Source-Großsprachmodelle bietet.
LlamaChat ist eine macOS-App, mit der Sie lokal auf Ihrem Mac mit LLaMA-, Alpaca- und GPT4All-Modellen chatten können. Laden Sie es jetzt herunter und erleben Sie lokales LLM-Chatten!
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.
Venice.ai: Private und unzensierte KI für Text, Bilder, Charaktere und Code. Greifen Sie privat auf führende Open-Source-Modelle zu.
Fireworks AI bietet blitzschnelle Inferenz für generative KI unter Verwendung modernster Open-Source-Modelle. Optimieren und stellen Sie Ihre eigenen Modelle ohne zusätzliche Kosten bereit. Skalieren Sie KI-Workloads global.