À propos du projet
bitnet.cpp est le framework d'inférence officiel pour les LLM 1-bit tels que BitNet b1.58. Il fournit une suite de noyaux optimisés conçus pour permettre une inférence rapide et sans perte des modèles 1.58-bit sur CPU et GPU, avec un support NPU annoncé comme prochain. Le projet est basé sur le framework llama.cpp, et ses noyaux s'appuient sur des méthodes de table de correspondance (lookup-table) pionnières dans T-MAC.
Principales capacités décrites dans le README :
- Inférence CPU pour les modèles ternaires/1-bit, avec des accélérations rapportées de 1,37x à 5,07x sur CPU ARM et de 2,37x à 6,17x sur CPU x86 par rapport aux modèles en pleine précision, ainsi que des réductions d'énergie rapportées de 55,4 % à 70,0 % (ARM) et de 71,9 % à 82,2 % (x86).
- Capacité à exécuter un modèle BitNet b1.58 de 100B sur un seul CPU à des vitesses décrites comme comparables à la lecture humaine (5 à 7 tokens par seconde).
- Noyau d'inférence GPU officiel publié en mai 2025.
- Types de quantification incluant I2_S et TL1, avec un support de noyau variant selon le modèle et l'architecture (x86 vs ARM).
- Conversion de modèles depuis des points de contrôle .safetensors vers GGUF via un script d'assistance.
- Utilitaires de benchmarking (e2e_benchmark.py) et un générateur de modèles factices pour les layouts non pris en charge.
- Mode chat/conversation pour les modèles instruct.
Les modèles officiels mis en avant incluent BitNet-b1.58-2B-4T (2,4B paramètres, entraîné sur 4T tokens), BitNet-embedding-0.6B et BitNet-embedding-270M. Les modèles communautaires listés comme pris en charge incluent bitnet_b1_58-large, bitnet_b1_58-3B, Llama3-8B-1.58-100B-tokens, ainsi que les familles Falcon3 et Falcon-E.
L'installation nécessite Python 3.10+, CMake 3.22+ et Clang 18+, avec conda recommandé. Les étapes de construction impliquent de cloner le dépôt de manière récursive, d'installer les dépendances Python, de télécharger un modèle et d'exécuter setup_env.py avec un type de quantification choisi. L'inférence est exécutée via run_inference.py avec des options pour le prompt, le nombre de tokens, les threads, la taille du contexte, la température et le mode conversation.
Le README inclut également une FAQ couvrant les problèmes de construction courants, tels que les erreurs std::chrono dans llama.cpp et la configuration de clang dans un environnement conda sous Windows. Le projet est publié sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.