Lm.rs: Minimale Rust-basierte CPU-LLM-Inferenz ohne Abhängigkeiten
(github.com/samuel-vitorino)lm.rs: Lokale Sprachmodell-Inferenz auf der CPU mit Rust ausführen
-
Einführung
- lm.rs ist ein Projekt, mit dem sich Sprachmodell-Inferenz mit Rust auf der CPU ausführen lässt.
- Es ist von Karpathys
llama2.cundllm.cinspiriert und so konzipiert, dass Sprachmodelle mit minimalem Code ohne ML-Bibliotheken ausgeführt werden können. - Unterstützt wurde zunächst nur Googles Gemma-2-Modell, inzwischen werden auch Llama 3.2 und das Bildmodell PHI-3.5 unterstützt.
-
Vorbereitete Modelle
- Benchmark- und Download-Links für verschiedene Modelle und Tokenizer werden bereitgestellt.
- Die Verwendung quantisierter Modelle wie Q8_0 und Q4_0 wird empfohlen.
- Die Geschwindigkeit wurde auf einem AMD Epyc mit 16 Kernen gemessen.
-
Modellkonvertierung
- Modelle von Google/Meta können in das
lmrs-Format konvertiert werden. - Nach der Installation der Python-Abhängigkeiten können Modelle und Tokenizer mit den Skripten
export.pyundtokenizer.pykonvertiert werden.
- Modelle von Google/Meta können in das
-
Build
- Der Rust-Code kann mit
cargokompiliert und ausgeführt werden. - Um multimodale Funktionen zu aktivieren, muss das Feature
multimodaleingebunden werden.
- Der Rust-Code kann mit
-
TODOs
- Zusätzliche Sampling-Methoden hinzufügen.
- 9B- und 27B-Modelle testen.
- Schleifen für Multi-Head-Attention parallelisieren.
- Performance-Metriken hinzufügen.
- Funktion zum Bereitstellen von System-Prompts hinzufügen.
- Quantisierungsunterstützung ergänzen (
int8,int4).
# GN⁺-Zusammenfassung
- lm.rs bietet eine effiziente Möglichkeit, Sprachmodelle mit Rust auf der CPU auszuführen. Da dies ohne ML-Bibliotheken möglich ist, ist es besonders in schlanken Umgebungen nützlich.
- Es eignet sich auch für Entwickler, die gerade erst mit Rust beginnen, und unterstützt verschiedene Modelle, was eine hohe Erweiterbarkeit ermöglicht.
- Durch die Unterstützung multimodaler Modelle wie PHI-3.5 sind auch Funktionen zur Bildverarbeitung enthalten.
- Ein Projekt mit ähnlicher Funktionalität ist die Transformers-Bibliothek von Hugging Face.
1 Kommentare
Hacker-News-Kommentare
1.2G llama3.2-1b-it-q80.lmrsschnell, wobei die CPU-Auslastung bei 1000 % über 13 Threads lagunsafeimplementieren lässt