Schnelles Serving großer Sprachmodelle auf PCs mit Consumer-GPUs
(github.com/SJTU-IPADS)PowerInfer: Schnelles Serving großer Sprachmodelle mit Consumer-GPUs
- PowerInfer ist eine CPU/GPU-LLM-Inferenz-Engine, die Aktivierungslokalität nutzt.
- PowerInfer und llama.cpp laufen auf derselben Hardware und nutzen den VRAM einer RTX 4090 vollständig aus.
Überblick
- PowerInfer ist eine Engine, die schnelle Inferenz großer Sprachmodelle (LLMs) auf einem einzelnen Consumer-GPU in einem Personal Computer (PC) ermöglicht.
- Das Design von PowerInfer basiert darauf, die hohe Lokalität auszunutzen, die bei der LLM-Inferenz auftritt und sich durch eine Potenzgesetz-Verteilung bei der Neuronenaktivierung auszeichnet.
- Diese Verteilung zeigt, dass eine kleine Zahl „heißer“ Neuronen konsistent aktiviert wird, während die Mehrheit der „kalten“ Neuronen je nach Eingabe variiert.
- PowerInfer nutzt diese Erkenntnis für eine hybride GPU-CPU-Inferenz-Engine: „Heiße“ Neuronen werden vorab auf die GPU geladen, während „kalte“ Neuronen auf der CPU berechnet werden, wodurch der GPU-Speicherbedarf und der Datentransfer zwischen CPU und GPU stark reduziert werden.
- PowerInfer integriert einen adaptiven Prädiktor und einen neuronensensitiven Sparse-Operator, um die Effizienz von Neuronenaktivierung und Rechensparsität zu optimieren.
- In der Evaluierung erreichte PowerInfer auf einer einzelnen NVIDIA RTX 4090 GPU für verschiedene LLMs (z. B. OPT-175B) im Durchschnitt 13,20 Token/s und maximal 29,08 Token/s und lag damit nur 18 % hinter einer Server-GPU der Klasse A100.
- Bei gleichbleibender Modellgenauigkeit ist es bis zu 11,69-mal schneller als llama.cpp.
Merkmale
-
Auf Lokalität fokussiertes Design: Nutzt Sparse-Aktivierungen und das Konzept „heißer“/„kalter“ Neuronen für effiziente LLM-Inferenz und ermöglicht hohe Geschwindigkeit bei geringem Ressourcenbedarf.
-
Hybride CPU/GPU-Nutzung: Integriert Speicher- und Rechenkapazitäten von CPU und GPU nahtlos für ausgewogene Workloads und schnelle Verarbeitung.
-
Einfache Integration: Kompatibel mit verbreiteten ReLU-sparsamen Modellen.
-
Einfache lokale Bereitstellung: Tiefgreifend für lokale Deployments auf Consumer-Hardware optimiert und ermöglicht latenzarme LLM-Inferenz und Serving auf einer einzelnen GPU.
-
Abwärtskompatibilität: Anders als llama.cpp, aber die meisten
examples/wie Server und Batch-Generierung lassen sich ähnlich wie bei llama.cpp verwenden.
Erste Schritte
- Hinweise zu Installation und Modellgewichten werden bereitgestellt.
Konfiguration und Installation
- Anleitung zum Abrufen des Codes und zum Build.
Modellgewichte
- PowerInfer-Modelle werden im PowerInfer GGUF-Format gespeichert, das LLM-Gewichte und Prädiktor-Gewichte enthält.
- PowerInfer-GGUF-Gewichte können über Hugging Face heruntergeladen werden.
- Anleitung, wie sich ursprüngliche Modellgewichte und Prädiktor-Gewichte in PowerInfer GGUF konvertieren lassen.
Inferenz
- Es werden Anleitungen für reine CPU-Nutzung oder hybride CPU-GPU-Inferenz bereitgestellt, die den gesamten verfügbaren VRAM nutzt.
Quantisierung
- Hinweise zu optimierter Quantisierungsunterstützung und deren Nutzung für INT4-(
Q4_0)-Modelle.
Evaluierung
- PowerInfer erzielt für FP16- und INT4-Modelle Geschwindigkeitssteigerungen von bis zu 11x bzw. 8x.
Häufig gestellte Fragen
- Hinweise zur Behebung des Fehlers
CUDA_ERROR_OUT_OF_MEMORYund Unterstützung für weitere Troubleshooting-Probleme.
Roadmap
- Geplante Veröffentlichungen für den Kerncode von PowerInfer, das Modell Mistral-7B, Windows-Support, text-generation-webui, Code zur Perplexity-Evaluierung, Metal-Support für Mac, Code für OPT-Modelle, Code zum Training des Prädiktors, Online-Aufteilung des FFN-Netzwerks, Multi-GPU-Support und mehr.
Paper und Zitation
- Technische Details zu PowerInfer sind im Paper verfügbar.
- Wenn PowerInfer nützlich ist oder bei verwandten Projekten und Forschung hilft, wird um Zitierung des Papers gebeten.
Danksagung
- Dank an die modifizierbare Operator-Bibliothek ggml und die Runtime von llama.cpp.
- Dank an die Unterstützung von THUNLP für ReLU-basierte Sparse-Modelle.
- Dank an die Deja-Vu-Forschung, die PowerInfer inspiriert hat.
GN⁺-Meinung
- PowerInfer ist eine innovative Engine, die schnelle und effiziente Inferenz großer Sprachmodelle mit Consumer-GPUs ermöglicht.
- Durch das Konzept „heißer“/„kalter“ Neuronen und die hybride CPU/GPU-Nutzung bietet sie Inferenzgeschwindigkeiten nahe an Server-Niveau bei gleichzeitig sparsamem Ressourceneinsatz.
- Diese Technik eröffnet Einzelentwicklern und kleinen Teams in AI-Forschung und -Entwicklung die Möglichkeit, Hochleistungsmodelle zu erproben und bereitzustellen, ohne Zugang zu Hardware auf Server-Niveau zu haben.
Noch keine Kommentare.