Microsoft veröffentlicht BitNet als Open Source: Offizielles Inferenz-Framework für 1-Bit-LLMs
Microsoft hat ein offizielles Inferenz-Framework für einbit-LLMs namens bitnet.cpp vorgestellt. Das Projekt, verfügbar unter GitHub-microsoft/BitNet, ermöglicht eine schnelle und verlustfreie Inferenz von Modellen mit einer Bit-Tiefe von 1,58 Bit, wie beispielsweise BitNet b1.58, auf lokalen CPUs und GPUs. Die erste Release-Version konzentriert sich primär auf die CPU-Inferenz, wobei die Unterstützung für Neuronalen Prozessoren (NPUs) angekündigt wurde. Die technischen Leistungsdaten zeigen signifikante Effizienzsteigerungen. Auf ARM-Prozessoren erreicht bitnet.cpp Beschleunigungsfaktoren zwischen 1,37 und 5,07, wobei größere Modelle einen höheren Gewinn verzeichnen. Gleichzeitig sinkt der Energieverbrauch um 55,4 bis 70,0 Prozent. Auf x86-Architekturen sind die Geschwindigkeitsgewinne noch höher, mit einem Faktor von 2,37 bis 6,17 und einer Reduzierung des Energieverbrauchs zwischen 71,9 und 82,2 Prozent. Besonders hervorzuheben ist die Fähigkeit des Frameworks, ein 100-Milliarden-Parameter-Modell auf einer einzigen CPU auszuführen. Dabei werden Geschwindigkeiten von fünf bis sieben Tokens pro Sekunde erreicht, was dem Lesetempo eines Menschen entspricht. Dies hebt die potenzielle Anwendbarkeit von Large Language Models auf Endgeräten erheblich. Aktuelle Optimierungen umfassen parallele Kernel-Implementierungen mit konfigurierbarem Tiling und Unterstützung für Quantisierung von Embeddings. Diese Verbesserungen führen zu zusätzlichen Geschwindigkeitssteigerungen von 1,15 bis 2,1 gegenüber der ursprünglichen Implementierung über verschiedene Hardwareplattformen hinweg. Das Framework ist auf Basis von llama.cpp entwickelt und nutzt Lookup-Tabellen-Methoden, die ursprünglich in T-MAC eingeführt wurden. Für die Inferenz von allgemeinen Low-Bit-LLMs jenseits ternärer Modelle wird die Nutzung von T-MAC empfohlen. Unterstützt werden verschiedene Modelle, darunter BitNet-b1.58-Varianten (2B, 3B, groß), Llama3 mit 8B Parametern und Falcon3-Familienmodelle von 1B bis 10B Parametern. Die Unterstützung variiert je nach Quantisierungstyp (I2_S, TL1, TL2) und Prozessorarchitektur (x86 oder ARM). Das Projekt wurde am 17. Oktober 2024 mit der Version 1.0 veröffentlicht, gefolgt von Updates zur GPU-Inferenz im Mai 2025 und weiteren Optimierungen im Jahr 2026. Die Entwicklung zielt darauf ab, die Entwicklung von einbit-LLMs in großem Maßstab bezüglich Modellgröße und Trainingsdaten anzuregen. Die Installation erfolgt über den Quellcode-Repository-Klon, wobei Abhängigkeiten installiert und das Projekt gebaut werden müssen. Die Verwendung erfolgt über Skripte wie setup_env.py zur Umgebungskonfiguration und run_inference.py für die eigentliche Inferenz. Verschiedene Parameter erlauben die Steuerung von Threads, Kontextgröße, Temperatur und Chat-Modi. Für Nutzer, die Fehler bei der Kompilierung mit aktuellen llama.cpp-Versionen erleben, bietet das Projekt Lösungen für bekannte Probleme mit dem Standard-Chrono-Modul oder spezifische Windows-Konfigurationen mit Clang und Visual Studio. Die technische Dokumentation und ein technischer Bericht liefern detaillierte Hintergrundinformationen zu den zugrundeliegenden Algorithmen und den Optimierungserfolgen.
