21. August 2026 · Von YasKad
microsoft/BitNet

bitnet.cpp: lokale Inferenz für ternäre Sprachmodelle

microsoft/BitNet · 40.348★ · 3.740 forks

Alles Wissenswerte über microsoft/BitNet: Microsofts offizielles Framework zum Ausführen von 1,58-Bit-Sprachmodellen mit optimierten CPU- und GPU-Kernen.


Was BitNet ist

bitnet.cpp ist Microsofts offizielles Inferenz-Framework für 1-Bit-Sprachmodelle, insbesondere BitNet b1.58. Sein Zweck ist es, ternäre Gewichte und quantisierte Aktivierungen über spezialisierte Kerne auszuführen, nicht ein konventionell trainiertes Modell nachträglich in eine beliebige Quantisierung umzuwandeln.

Das Projekt deckt konversationelle Generierung ab und seit Juli 2026 mehrsprachige Embedding-Modelle. Letztere erzeugen dichte Vektoren für Retrieval, Clustering, semantische Ähnlichkeit, Klassifizierung, Paralleltext-Mining und Reranking.

Der Ursprung: von einer Forschungslinie zu einer Inferenz-Engine

Die dem Repository vorausgehende Forschung reicht zurück bis zum ursprünglichen BitNet-Paper, veröffentlicht am 17. Oktober 2023; das README datiert die Vorstellung von BitNet b1.58 auf den 27. Februar 2024. Das Repository microsoft/BitNet wurde am 5. August 2024 erstellt, und seine Version 1.0 wurde am 17. Oktober desselben Jahres angekündigt.

Der technische Kontext ist eine Spannung zwischen dem Interesse an ternären Gewichten und dem Fehlen eines praktikablen Inferenzpfads am Edge. Der Bericht von 2024 präsentiert einen Software-Stack für schnelle, verlustfreie Inferenz von BitNet b1.58 auf CPU, während der Systembericht von 2025 die Matrixmultiplikation mit gemischter Präzision als dominierende Kostenquelle identifiziert und die Kernfamilien TL und I2_S vorschlägt.

Ultra-detaillierte 8K-Dunkelmodus-Cyberpunk-Visualisierung ternärer neuronaler Netzwerkgewichte: leuchtende digitale Neonknoten, beschränkt auf drei unterschiedliche Farben – tiefes Karmesinrot für -1, helles Bernstein für 0 und elektrisches Blau für +1 – die ein komplexes, vernetztes geometrisches Gitter bilden.

Es wurde kein einzelner Beitrag gefunden, der das Repository einer einzelnen Person zuschreibt. Die überprüfbare Autorenschaft des Systemberichts umfasst Jinheng Wang, Hansong Zhou, Ting Song, Shijie Cao, Yan Xia, Ting Cao, Jianyu Wei, Shuming Ma, Hongyu Wang und Furu Wei; das besitzende Konto ist die Organisation Microsoft.

Philosophie und Prinzipien

Der Ansatz verspricht nicht, dass jedes LLM kostenlos in ein 1-Bit-Modell umgewandelt werden kann. BitNet-Modelle werden mit ternären Gewichten {-1, 0, +1} und 8-Bit-Aktivierungen trainiert; die Embedding-Dokumente stellen klar, dass es sich nicht um Quantisierung nach dem Training handelt.

Seine Betriebsprinzipien sind:

  • Die ternäre Struktur von Grund auf nutzen: I2_S packt die Gewichte, und TL nutzt ternäre Nachschlagetabellen, um Arbeit und Datenbewegung zu reduzieren.
  • Effiziente lokale Ausführung priorisieren: Der CPU-Bericht kommuniziert Beschleunigungen von 2,37× bis 6,17× auf x86 und 1,37× bis 5,07× auf ARM gegenüber Referenzen voller Präzision, unter seinen experimentellen Konfigurationen.
  • Einen interoperablen Pfad beibehalten: Das Projekt stützt sich auf llama.cpp, und seine I2_S-Operationen sind in dessen Berechnungsgraphen integriert; es ist kein isolierter Ersatz für das GGUF-Ökosystem.

Futuristische Dunkelmodus-Cyberpunk-Szene, die hochgeschwindige lokale Inferenz auf CPU- und GPU-Hardware darstellt: ein durchscheinendes, leuchtendes Silizium-Chip-Layout mit kunstvollen Neonschaltkreisen, das einen x86- oder ARM-Prozessor darstellt, mit hellen cyanfarbenen und magentafarbenen Datenströmen, die schnell durch die Verarbeitungskerne fließen.

Wie es funktioniert

Der übliche CPU-Ablauf lädt ein kompatibles GGUF-Modell herunter, baut das Projekt und führt run_inference.py aus. Das Ausführbare akzeptiert den Modellpfad, einen Prompt, die Token-Anzahl, Threads, Kontext, Temperatur und den Konversationsmodus.

Auf der CPU parallelisieren die Kerne die Berechnung von Gewichten und Aktivierungen und erlauben es, Blöcke und Parallelität in include/gemm-config.h anzupassen. Die Dokumentation empfiehlt Aktivierungsparallelität für I2_S, da sie das Entpacken der Gewichte amortisiert.

Es gibt außerdem einen W2A8-GPU-Pfad: einen CUDA-Kernel für ein Matrix-Vektor-Produkt mit 2-Bit-Gewichten und 8-Bit-Aktivierungen. Der Leitfaden beschreibt 16×32-Gewichtsblöcke, das Packen von Zwei-Bit-Werten und die Verwendung der dp4a-Instruktion; seine Zahlen sind eigene Messungen auf einer 40-GB-NVIDIA-A100, kein unabhängiger Vergleich.

Sehr detaillierte Dunkelmodus-Cyberpunk-Illustration eines GPU-Kernels, der ein Matrix-Vektor-Produkt ausführt: ein massives, leuchtendes Raster aus 16x32-Blöcken, das in einer dunklen Leere schwebt, mit 2-Bit-Gewichten, dargestellt als kompakte Neonwürfel, und 8-Bit-Aktivierungen als helle, fließende Energieströme, vor einer abstrakten, holografischen NVIDIA-A100-GPU-Silhouette.

Offizieller und halboffizieller Status

Das Repository beschreibt sich selbst explizit als Microsofts offizielles Inferenz-Framework für 1-Bit-LLMs. Es verlinkt außerdem Microsofts offizielle Modelle auf Hugging Face, darunter BitNet-b1.58-2B-4T und zwei Embedding-Modelle.

Sein halboffizieller Status gegenüber llama.cpp ist technischer, nicht institutioneller Natur: Das README erklärt, dass das Projekt auf diesem Framework aufbaut und seine Kerne auf T-MACs Methodiken zurückgreifen. Es wurde kein Beleg dafür gefunden, dass BitNet als Marktplatz, formaler Standard oder von einem Drittunternehmen zertifiziertes Produkt aufgenommen wurde.

Das Ökosystem

Microsoft-Komponenten und -Modelle

  • microsoft/T-MAC: eine Nachschlagetabellen-Methodik, die das README als Grundlage der Kerne von bitnet.cpp identifiziert; für allgemeine Low-Precision-LLM-Inferenz empfiehlt es T-MAC.
  • microsoft/VibeASR.cpp: eine mehrsprachige Echtzeit-Spracherkennungs-Engine auf CPU, die das README am 23. Juli 2026 ankündigte und die BitNet-I2_S-Quantisierung nutzt.
  • microsoft/BitNet-b1.58-2B-4T, microsoft/BitNet-embedding-0.6B und microsoft/BitNet-embedding-270M: vom Projekt auf Hugging Face verlinkte Modelle. Die Embedding-Modelle sind mehrsprachig und werden mit Retrieval, Klassifizierung und weiteren semantischen Abläufen dokumentiert.

Das Repository präsentiert in seinen Hauptinformationen keinen Katalog von Schwesterkomponenten; die dokumentierten First-Party-Beziehungen sind T-MAC, VibeASR.cpp und die oben verlinkten Modelle.

Community-Anpassungen und verwandte Projekte

  • Beomi/BitNet-Transformers: eine BitNet-Implementierung für Hugging Face Transformers mit Llama-Architektur; die GitHub-Suche lieferte 316 Sterne.
  • Oxen-AI/BitNet-1.58-Instruct: eine Implementierung zur Instruktionsabstimmung für BitNet 1.58; 33 Sterne in derselben Suche.
  • JohnMasen/BitNetSharp: eine C#-Implementierung von Microsofts BitNet; 2 Sterne.
  • Liminal-Commons/bitnet-mcp: ein MCP-Wrapper zur Textgenerierung über einen llama-Server mit BitNet-b1.58-2B-4T; die Suche lieferte ihn mit 0 Sternen.

Die exakte Suche förderte auch einfache Forks zutage, wie Scottcjn/BitNet mit 66 Sternen. Es wird als Fork eingestuft, da es die Beschreibung des Originals beibehält; es wird nicht als unabhängiger Port dargestellt. Es wurde keine nicht-englische Übersetzung mit expliziter Beziehung zum Repository gefunden.

Zahlen des Repos

Messung: 11. August 2026, GitHub-API.

MetrikWert
Sterne39.973
Forks3.687
Echte Abonnenten349
Commits110
Von der API gemeldete offene Issues315
HauptspracheC++
LizenzMIT
Erstellung5. August 2024
Letzter Code-Push27. Juli 2026
GitHub-ReleasesKein formales Release gefunden

Ultra-detaillierte 8K-Dunkelmodus-Cyberpunk-Illustration, die das Open-Source-GitHub-Ökosystem und Community-Anpassungen darstellt: ein zentraler, leuchtender Neon-Repository-Knoten mit der Beschriftung „microsoft/BitNet" verbindet sich mit mehreren kleineren, leuchtenden Satellitenknoten, die Community-Forks und Integrationen wie „T-MAC", „VibeASR.cpp" und „llama.cpp" darstellen.

Die Gesamtzahl von 110 Commits stammt vom letzten Paginierungs-Link der API. open_issues_count kann offene Pull Requests einschließen. Ebenso spiegelt watchers_count in GitHubs allgemeiner Antwort die Sterne wider; deshalb wird subscribers_count als tatsächliche Abonnenten angegeben.

Die von der API zurückgegebenen führenden Contributor nach Beitragszahl sind potassiummmm (19), tsong-ms (16), younesbelkada (15), isHuangXin (11) und XsquirrelC (7).

Wie man beiträgt

Es wurde weder eine CONTRIBUTING.md-Anleitung noch eine spezifische Richtlinie zu Forks, Branches oder Pull Requests gefunden. Im Root-Verzeichnis finden sich jedoch ein Verhaltenskodex und eine Sicherheitsrichtlinie, und die Pull-Request-Aktivität zeigt Community-Vorschläge; das belegt vorhandene Kollaborationskanäle, entspricht aber keinem dokumentierten Beitragsprozess.

Kurzanleitung zur Nutzung

Installation und erster Start

  1. Python 3.10 oder neuer, CMake 3.22 oder neuer, Clang 18 oder neuer und, wie empfohlen, Conda sind erforderlich.
  2. Mit Submodulen klonen und die Umgebung erstellen:
git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
conda create -n bitnet-cpp python=3.10
conda activate bitnet-cpp
pip install -r requirements.txt
  1. Das offizielle GGUF-Modell herunterladen und den Build vorbereiten:
huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T
python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s

Die Vorbereitung baut das Projekt; das erste nützliche Ergebnis ist die GGUF-Datei im Modellverzeichnis und die erstellten Binärdateien.

Elegante, dunkel gestaltete Cyberpunk-Terminal-Oberfläche, die den Einrichtungs- und Inferenz-Workflow von bitnet.cpp ausführt: leuchtender neongrüner und cyanfarbener Kommandozeilentext auf tiefschwarzem Bildschirm, der Ausschnitte wie git clone, setup_env.py und run_inference.py -cnv zeigt.

Übliche Arbeitsabläufe

  • Lokale Konversation: python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv startet den Konversationsmodus; der Prompt wird als Systemnachricht verwendet.
  • Leistungstest: python utils/e2e_benchmark.py -m /path/to/model -n 200 -p 256 -t 4 misst die Generierung mit 200 Token, einem 256-Token-Prompt und vier Threads.
  • Gewichtskonvertierung: nach dem Herunterladen von safetensors-Gewichten erzeugt python ./utils/convert-helper-bitnet.py ./models/bitnet-b1.58-2B-4T-bf16 die GGUF-Variante.
  • Embeddings: mit dem im Leitfaden genannten Submodul-Branch liefert ./build/bin/llama-embedding -m /path/to/save/model/bitnet-embedding-0.6b/ggml-model-i2_s.gguf -p "query: What is BitNet?" --embd-normalize 2 --embd-output-format array einen normalisierten Vektor.

Ultra-detaillierte Dunkelmodus-Cyberpunk-Visualisierung mehrsprachiger Text-Embeddings: Ströme leuchtenden, vernetzten Textes in verschiedenen Weltsprachen fließen in einen zentralen, dichten, kugelförmigen Vektorraum, dargestellt durch Tausende winziger, leuchtender Neonpunkte, die eine komplexe 3D-Konstellation bilden.

Wesentliche Konfiguration

  • setup_env.py -md: legt das lokale Modellverzeichnis fest; -q wählt i2_s oder tl1.
  • run_inference.py -t, -c und -temp: steuern Threads, Kontextgröße und Temperatur.
  • include/gemm-config.h: enthält ROW_BLOCK_SIZE, COL_BLOCK_SIZE und PARALLEL_SIZE, um den CPU-Kernel an Cache und Architektur anzupassen.
  • --quant-embd: eine Option von setup_env.py zum Konvertieren der Embeddings nach Q6_K.

Häufige Fallstricke und Lösungen

  • Die aktuelle Dokumentation verwendet huggingface-cli; ein aktueller Pull Request erklärt, dass neuere Versionen von huggingface_hub dieses Ausführbare entfernt haben, und schlägt vor, es durch hf zu ersetzen. Erscheint „command not found”, handelt es sich um eine bekannte Inkompatibilität dieses dokumentierten Ablaufs; die verfügbare Hugging-Face-Oberfläche nutzen oder der vorgeschlagenen Korrektur folgen.
  • Unter Windows muss die Visual Studio 2022 Developer Console verwendet werden. Wird clang nicht erkannt, weist das README an, die Visual-Studio-Tools vor dem Build zu initialisieren.
  • Das README vermerkt std::chrono-Fehler beim Bauen des llama.cpp-Submoduls und verweist auf einen bestimmten Commit als Lösung. Es gibt außerdem Build-Probleme mit nicht unterstützten Compiler-Flags; es sollte nicht angenommen werden, dass jeder GCC die erforderliche Clang-Version ersetzt.
  • Bei Embedding-Modellen verlangt der Leitfaden, der Anfrage eine Anweisung voranzustellen; das Weglassen verschlechtert die Leistung. Sie muss dem Dokument selbst nicht hinzugefügt werden.

Integrationen und Migration

bitnet.cpp hält Formate und Operationen an llama.cpp gebunden, und das Projekt selbst präsentiert es als seine Grundlage. Für Low-Precision-Workloads, die keine ternären Modelle sind, verweist das README auf T-MAC, statt universelle Kompatibilität zu versprechen.

Der in der Suche gefundene MCP-Pfad ist community-erstellt und umhüllt llama-server; er ist nicht Teil von Microsofts Repository. Für den GPU-Pfad bietet der offizielle Leitfaden Build und Test des CUDA-Kernels sowie einen interaktiven Generator.

Wie die Community reagierte

Es gibt überprüfbares Interesse, aber auch konkrete Einwände zur tatsächlichen Verfügbarkeit großer Modelle und zum Trainingsprozess:

  • Der Hacker-News-Thread 47334694, eingereicht von redm, verlinkte direkt auf das Repository und hatte 370 Punkte und 167 Kommentare. QuadmasterXLII hinterfragte, dass die Überschrift hundert Milliarden Parameter nahelege, während die offiziellen Modelle zehn Milliarden nicht überschritten; est entgegnete, dies sei keine nachträgliche Quantisierung, und ternäre Nutzung müsse seit dem Vortraining bestehen.
  • Im selben Thread bat 152334H darum, zwischen der Fähigkeit des Frameworks und der Existenz eines trainierten 100B-Modells zu unterscheiden. Dieser Vorbehalt deckt sich mit dem README: Es beschreibt die Fähigkeit, ein 100B-BitNet-b1.58-Modell auf CPU auszuführen, verlinkt jedoch kein offizielles Modell dieser Größe.
  • Der frühere Thread 41877609, eingereicht von galeos, erreichte 173 Punkte und 33 Kommentare. zamadatix erklärte, dass „1,58 Bit” von drei möglichen Werten stammt; swfsql vertrat die Ansicht, lokale Inferenz sei der natürliche Markt, hinterfragte jedoch die Kosten des Trainings auf einer Nicht-BitNet-Architektur. Das sind Nutzerinterpretationen, keine experimentellen Ergebnisse.

Futuristische Dunkelmodus-Cyberpunk-Szene, die die Resonanz und Debatte der Entwickler-Community darstellt: eine leuchtende, holografische Oberfläche schwebt in einer dunklen, technikgefüllten Umgebung und zeigt abstrakte Darstellungen von Hacker-News-Threads und Kommentarbereichen, mit Neon-Textblasen, die in Cyan und Magenta leuchten.

Die Reddit-Recherche lieferte eine 403-Sperre, und Product Hunt lieferte ebenfalls 403; daraus wird keine Abwesenheit von Beiträgen geschlossen.

Die X-Suche wurde als App-Seite gefunden, bot jedoch keinen überprüfbaren Launch-Beitrag.

Die Podcast-Suche über iTunes lieferte keine überprüfbare exakte Übereinstimmung für das Repository.

Die YouTube-Suche lieferte tatsächlich das in den Ressourcen enthaltene Tutorial von LLM Master Cursos; dessen Titel und Dauer wurden direkt verifiziert, eine Aufrufzahl wurde jedoch nicht gefunden.

BitNet im Vergleich zu anderen Ansätzen

AnsatzNachweisbare BeziehungNachweisbarer Unterschied
llama.cppbitnet.cpp baut auf diesem Framework auf und integriert I2_S in dessen Berechnungsgraphen.BitNet steuert Kerne und Formate bei, die auf ternäre Gewichte ausgerichtet sind; die Quelle belegt nicht, dass ganz llama.cpp eine BitNet-Implementierung ist.
microsoft/T-MACDas README besagt, dass T-MACs Methodiken seine Kerne stützen.Dasselbe README empfiehlt T-MAC für Low-Precision-LLM-Inferenz über ternäre Modelle hinaus.
Beomi/BitNet-TransformersImplementiert BitNet mit Hugging Face Transformers und Llama-Architektur.Es ist eine in der Suche gefundene PyTorch/Transformers-Implementierung, nicht Microsofts offizielles C++-Inferenz-Framework.
Oxen-AI/BitNet-1.58-InstructImplementiert Instruktionsabstimmung für BitNet 1.58.Es konzentriert sich auf Instruktionsabstimmung; bitnet.cpp konzentriert sich auf Inferenz und Kerne.

Anwendungsfälle und wem dieses Repository helfen kann

  • Teams, die LLMs auf x86- oder ARM-Rechnern ausführen, können ein natives BitNet-Modell bewerten, um Energiekosten zu senken und die lokale Inferenzleistung zu verbessern, wobei sie die Zahlen des Projekts stets mit ihrer eigenen Hardware und Last abgleichen sollten.
  • Entwickler lokaler Assistenten können den Konversationsmodus, die Steuerung von Threads und Kontext sowie das GGUF-Format nutzen, um eine interaktive Erfahrung ohne Abhängigkeit von einem entfernten Dienst aufzubauen.
  • Teams für semantische Suche und RAG können die 0,6B- oder 270M-Embeddings und das Ausführbare llama-embedding nutzen, um normalisierte Vektoren auf CPU zu erzeugen. Der Leitfaden dokumentiert Retrieval, Reranking, Clustering und Klassifizierung und legt fest, wie die Anfrage zu formulieren ist.
  • Leistungs- und GPU-Engineering kann die W2A8-Kerne und ihre CUDA-Testskripte testen; die verfügbaren Zahlen sind projekteigen und müssen reproduziert werden, bevor sie als Produktionsziel verwendet werden.

Ressourcen


Hinweis: Dieser Artikel kombiniert offizielle Dokumentation, technische Berichte, die GitHub-API und Hacker-News-Konversationen, abgerufen am 11. August 2026. Zahlen ändern sich mit der Zeit.

Kommentare