Sobre el proyecto
bitnet.cpp es el marco oficial de inferencia para LLMs de 1 bit como BitNet b1.58. Proporciona un conjunto de kernels optimizados destinados a habilitar una inferencia rápida y sin pérdidas de modelos de 1.58 bits en CPU y GPU, con soporte para NPU previsto para el futuro. El proyecto se basa en el marco llama.cpp, y sus kernels se construyen sobre métodos de tablas de búsqueda pioneros en T-MAC.
Capacidades clave descritas en el README:
- Inferencia en CPU para modelos ternarios/de 1 bit, con aceleraciones reportadas de 1.37x a 5.07x en CPUs ARM y de 2.37x a 6.17x en CPUs x86 frente a modelos de precisión completa, además de reducciones de energía reportadas del 55.4%-70.0% (ARM) y 71.9%-82.2% (x86).
- Capacidad de ejecutar un modelo BitNet b1.58 de 100B en una sola CPU a velocidades descritas como comparables a la lectura humana (5-7 tokens por segundo).
- Kernel oficial de inferencia para GPU lanzado en mayo de 2025.
- Tipos de cuantificación que incluyen I2_S y TL1, con soporte de kernels que varía según el modelo y la arquitectura (x86 vs ARM).
- Conversión de modelos desde checkpoints .safetensors a GGUF mediante un script auxiliar.
- Utilidades de benchmarking (e2e_benchmark.py) y un generador de modelos ficticios para layouts no soportados.
- Modo de chat/conversación para modelos instruct.
Los modelos oficiales destacados incluyen BitNet-b1.58-2B-4T (2.4B parámetros, entrenado en 4T tokens), BitNet-embedding-0.6B y BitNet-embedding-270M. Los modelos de la comunidad listados como soportados incluyen bitnet_b1_58-large, bitnet_b1_58-3B, Llama3-8B-1.58-100B-tokens y las familias Falcon3 y Falcon-E.
La instalación requiere Python 3.10+, CMake 3.22+ y Clang 18+, recomendándose conda. Los pasos de compilación implican clonar el repositorio recursivamente, instalar dependencias de Python, descargar un modelo y ejecutar setup_env.py con un tipo de cuantificación elegido. La inferencia se ejecuta a través de run_inference.py con opciones para prompt, cantidad de tokens, hilos, tamaño de contexto, temperatura y modo de conversación.
El README también incluye una FAQ que cubre problemas comunes de compilación, como errores de std::chrono en llama.cpp y la configuración de clang dentro de un entorno conda en Windows. El proyecto se publica bajo la licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.