BitNet b1.58: LLM de 1 bit de Microsoft que ejecuta un modelo de 100 B en una sola CPU
Table of Contents
- Introducción
- El problema: los LLM son demasiado caros para estar en todas partes
- La solución: BitNet b1.58: arquitectura nacida para pesos ternarios
- Primeros pasos: ejecute BitNet b1.58 en su máquina hoy
- Debajo del capó: Por qué BitNet es rápido y por qué es importante
- ¿Dónde se sitúa BitNet b1.58 frente a los modelos competitivos
- Avanzado: Patrones de implementación de producción
- Comparación y alternativas: dónde se ubica BitNet en el ecosistema de cuantificación
- Conclusión y próximos pasos
Introducción
!BitNet b1.58 performance benchmarks: 1-bit vs full precision across latency, memory, accuracy
En abril de 2025, Microsoft Research destrozó silenciosamente una de las suposiciones más antiguas de la IA: que para obtener un buen rendimiento de un modelo de lenguaje grande, se necesitan pesos de punto flotante de total precisión. Lanzaron BitNet b1.58 2B4T, el primer modelo de lenguaje grande de código abierto entrenado desde cero utilizando nada más que pesos ternarios (valores de {-1, 0, +1}) y arrojaron resultados que igualan o superan a los modelos 10 veces más grandes en la mayoría de los puntos de referencia.
El nombre "1,58 bits" proviene de una simple idea de la teoría de la información: representar tres estados distintos requiere log₂(3) ≈ 1,58 bits. Al restringir cada parámetro a esos tres valores, BitNet alcanza el límite teórico de lo que puede codificar un sistema de pesas de 3 estados. La designación "b1.58" no es un truco de marketing: es precisa, mensurable y demostrablemente óptima para la cuantificación ternaria.
Las cifras son sorprendentes. Un modelo de 2 mil millones de parámetros que cabe en menos de 700 MB de espacio en disco. Un modelo de 100 mil millones de parámetros que se ejecuta a 5 a 7 tokens por segundo en una sola CPU: aproximadamente la velocidad de lectura humana. Una ganancia de eficiencia energética de hasta 82,2 % en CPU x86 en comparación con las líneas base de precisión total. Esta no es una optimización incremental. Este es un nuevo punto en la frontera de Pareto.
En este artículo, desglosamos cómo funciona BitNet internamente, cuál es su posición frente a modelos competitivos como Qwen2.5, Gemma y SmolLM2, cómo puede ejecutarlo localmente hoy y qué le depara el futuro a la infraestructura de IA de 1 bit.
El problema: los LLM son demasiado caros para estar en todas partes
Para entender por qué es importante BitNet, hay que empezar con una dura verdad: Los LLM abiertos de última generación no son prácticos para la mayoría de los escenarios de implementación del mundo real.
Los números cuentan la historia. Ejecutar un modelo de 7 mil millones de parámetros con total precisión requiere alrededor de 14 GB de VRAM para la inferencia. Cuantíquelo a 4 bits y aún necesitará cerca de 4 GB. De cualquier manera, la mayoría de las computadoras portátiles, dispositivos periféricos y microservidores de consumo están bloqueados. Incluso los servidores de inferencia modestos cuestan cientos de dólares al mes en horas de GPU. Para una startup que crea un chatbot, un equipo que implementa un asistente de conocimiento interno o un desarrollador que ejecuta experimentos en una computadora portátil, la calidad del modelo puede estar ahí, pero la infraestructura no.
Los métodos de cuantificación existentes (INT4, INT8, GPTQ, AWQ) se diseñaron como pasos posteriores al entrenamiento aplicados a modelos de precisión total. Son efectivos para comprimir huellas de memoria, pero son fundamentalmente limitados: todavía estás ejecutando aritmética en valores que fundamentalmente se comportan como números de punto flotante. Reducen el costo de escala; no cambian la geometría del problema.
Lo que la industria realmente necesita es una arquitectura de modelo diseñada desde cero para una representación de precisión mínima, una en la que el proceso de entrenamiento en sí produzca pesos que sean naturalmente discretos. Eso es exactamente lo que ofrece BitNet.
La solución: BitNet b1.58: arquitectura nacida para pesos ternarios
BitNet b1.58 no es una versión cuantificada de un modelo de precisión total. Fue entrenado desde cero en un corpus de 4 billones de tokens, con todas las capas lineales reemplazadas por una nueva capa "BitLinear" personalizada que aplica pesos ternarios durante todo el proceso de entrenamiento. Esta distinción es muy importante: la cuantificación posterior al entrenamiento siempre pierde algo en la traducción. El entrenamiento nativo con una precisión de 1,58 bits garantiza que no se produzcan fugas de precisión.
El peso ternario: {-1, 0, +1}
La cuantificación central utiliza un esquema absmean que asigna valores de peso de punto flotante a un conjunto ternario entero con signo durante cada paso hacia adelante. El factor de escala se calcula como el inverso del valor absoluto medio en el tensor de peso:
escala_w = 1 / media(|W_ij|)
W_cuantizado = abrazadera(-1, 1)(redondo(W × escala_w))El valor cero no es sólo conveniente: introduce una escasez útil. Aproximadamente entre el 40% y el 60% de los pesos en un modelo cuantificado de esta manera llegan a cero o cerca de él, lo que significa que las multiplicaciones de matrices pueden omitir franjas enteras de cálculo. Este es el mismo truco de escasez que sustenta los modelos de Mezcla de Expertos, excepto que aquí la escasez es una propiedad del esquema de cuantificación, no una elección deliberada de enrutamiento arquitectónico.
BitLinear: el bloque de construcción
Cada torch.nn.Linear en el transformador se reemplaza con una capa BitLinear con tres modificaciones:
- Cuantización de peso a ternario
{-1,0, +1}vía absmean (arriba) - Cuantización de activación a INT8 a través de absmax, aplicada por token: mantiene la activación absoluta máxima por fila asignada a 127, desplazando todas las activaciones del token al rango INT8 sin perder información relativa
- SubLayerNorm (una variante simplificada de LayerNorm) colocada antes de la cuantificación de activación para la estabilidad del entrenamiento en el régimen cuantificado
El proceso de capacitación introduce Straight Through Estimator (STE) para manejar la redondo() no diferenciable en la función de cuantificación: durante el paso hacia atrás, el paso de redondeo se reemplaza por una identidad (separación), por lo que la cuantificación se trata efectivamente como diferenciable. Combinada con funciones de activación "ReLU cuadrada" en las capas de alimentación directa e incrustaciones posicionales rotativas (RoPE), la arquitectura converge de manera estable en este nivel de precisión extremo.
Qué significa realmente "1,58 bits" y por qué supera a "1 bit"
Un punto común de confusión: ¿"1,58 bits" significa 1 bit? No exactamente. Un solo trit codifica log₂(3) ≈ 1,585 bits de información. Una red de 1000 trits de este tipo almacena aproximadamente 1585 bits de capacidad de información.
Por el contrario, una verdadera red binaria de 1 bit solo puede distinguir entre {−1, +1}: sin cero, por lo que no hay escasez ni mecanismos de omisión eficientes. Los autores de BitNet b1.58 demostraron que agregar el tercer estado (cero) supera sustancialmente los enfoques solo binarios sin cambiar materialmente el costo de almacenamiento. Los ~0,58 bits adicionales por peso son una ganga por las ganancias de precisión y eficiencia que permiten.
Primeros pasos: ejecute BitNet b1.58 en su máquina hoy
BitNet b1.58 funciona en CPU (x86 y ARM), con kernels de GPU lanzados en mayo de 2025 y compatibilidad con NPU en la hoja de ruta. He aquí cómo empezar.
Instalar bitnet.cpp
El marco de inferencia oficial es microsoft/BitNet, un marco de C++/Python construido sobre la base llama.cpp:
## Clonar el repositorio
clon de git https://github.com/microsoft/BitNet.git
CD Bitnet
## Instalar dependencias de Python
instalación de pip -r requisitos.txt
## Descargue el modelo recomendado (cuantización 2B, I2_S)
utilidades de Python/prepare_model.py microsoft/BitNet-b1.58-2B-4TEjecutar inferencia
## Iniciar el servidor
./build/bin/llama-server -m modelos/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \
-c 2048 --hilos 4
## Enviar una finalización a través de la API (predeterminado: http://localhost:8080)
curl http://localhost:8080/completion -H "Tipo de contenido: aplicación/json" \
-d '{"prompt": "Explica la computación cuántica en un párrafo.", "n_predict": 256}'En la CPU de una computadora portátil moderna, debería ver respuestas en el rango de cientos de tokens por segundo. En un modelo a escala de 100 B, que sigue siendo una sola CPU, verá ~5 t/s, que es legible en tiempo real. Este último punto tiene profundas implicaciones.
Alternativa a abrazar la cara: perfecciona la tuya
Si desea ajustar los modelos existentes en lugar de entrenarlos desde cero, el equipo de Hugging Face publicó un proceso en septiembre de 2024 que adapta cualquier LLM existente a una precisión de 1,58 bits sin volver a entrenarlo desde cero. Con solo una instalación pip de los últimos transformers:
desde transformadores importe AutoModelForCausalLM, AutoTokenizer
importar antorcha
modelo = AutoModelForCausalLM.from_pretrained(
"Tokens HF1BitLLM/Llama3-8B-1.58-100B",
dispositivo_map="cuda",
torch_dtype=antorcha.bfloat16,
)
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct")Esto es extensible, accesible y útil de inmediato para cualquiera que ya esté trabajando en el ecosistema de Hugging Face.
Debajo del capó: Por qué BitNet es rápido y por qué es importante
Densidad de memoria extrema
Un modelo de 2 mil millones de parámetros a 1,58 bits por parámetro pesa aproximadamente 400 MB de pesos de modelo, aproximadamente lo que ocupa una sola fotografía de alta resolución. Esto no es sólo una curiosidad técnica; permite escenarios de implementación que antes eran simplemente imposibles:
La aritmética de la energía
El número más silenciosamente poderoso en el artículo de BitNet se encuentra en una tabla comparativa del consumo de energía para operaciones de multiplicación de matrices:
Una única multiplicación de matriz INT8 consume aproximadamente 4,4% de la energía de una multiplicación FP16 para sumas y ~20,5% para multiplicaciones. Dado que BitNet reemplaza las operaciones de suma múltiple de FP16 con operaciones de suma INT8, donde la suma en sí misma es trivial en energía, los ahorros de energía compuestos en miles de millones de operaciones por pase de inferencia suman una reducción de energía de 71,9% a 82,2% en x86 y 55,4% a 70,0% en ARM.
Esta no es sólo una experiencia más rápida con una computadora portátil. Este es un cambio fundamental en la física del costo por token de la inferencia de la IA, con implicaciones directas para la huella ambiental de ejecutar LLM a escala.
Cómo BitNet.cpp logra velocidad
El motor de inferencia BitNet.cpp se basa en núcleos optimizados para tablas de búsqueda (LUT) inspirados en T-MAC, un proyecto de Microsoft centrado en ejecutar operaciones tensoriales en microcontroladores Cortex-M:
- Implementaciones paralelas del kernel lanzadas en enero de 2026 agregaron mosaicos configurables en todas las plataformas de hardware, lo que ofrece una aceleración adicional de 1,15 a 2,1 veces.
- Demostración del modelo de parámetros 2B: una demostración en vivo alojada en Azure (
demo-bitnet-h0h8hcfqeqhrf5gf.canadacentral-01.azurewebsites.net) ejecuta BitNet b1.58 3B en un Apple M2, accesible para cualquier persona sin configuración - Almacenamiento de peso asignado en memoria: dado que los pesos son solo búsquedas de un pequeño conjunto de valores
{-1, 0, +1}, el núcleo evita el muro de memoria que afecta a los diseños tradicionales de almacenamiento de peso.
El lanzamiento del kernel de inferencia de GPU de 2025 amplió la historia drásticamente. Si bien la inferencia de CPU sigue siendo la historia principal del rendimiento, el kernel de GPU permite implementar modelos BitNet b1.58 en contextos que requieren rendimiento en lugar de solo latencia bruta.
¿Dónde se sitúa BitNet b1.58 frente a los modelos competitivos?
¿Cómo funciona realmente un modelo 2B cuantificado ternario de 400 MB? El informe técnico de abril de 2025 compara BitNet b1.58 2B4T con los modelos de peso abierto más competitivos en el rango de parámetros 1-3B:
BitNet b1.58 2B4T lidera en ARC-Challenge, GSM8K y CommonsenseQA (áreas que requieren razonamiento preciso y recuperación de conocimientos mundiales) y sigue siendo competitivo en tareas de razonamiento y sentido común.
Lo más sorprendente es que lo hace utilizando ~4,5 veces menos espacio de memoria que el competidor más cercano. La comparación de la latencia de inferencia es igualmente sorprendente: en los puntos de referencia de la comunidad, registró latencia de 29 ms en relación con el rango de 50 a 200 ms de la competencia. La mayoría de los modelos probados estaban en el rango de parámetros 1B-2B. BitNet b1.58 fue más rápido en todos los aspectos.
Las discusiones comunitarias en r/LocalLLaMA de Reddit también confirmaron estos hallazgos. Un evaluador ejecutó específicamente modelos de 1 bit en ARM y x86 y descubrió que BitNet b1.58 es el modelo de 1 bit más rápido en todas las plataformas, aunque notaron que el campo aún está madurando.
Avanzado: Patrones de implementación de producción
Sin servidor en AWS Lambda
El empleado de AWS Manu Mishra publicó un tutorial completo ejecutando BitNet b1.58 en AWS Lambda como función de contenedor. Conclusiones clave de ese patrón:
## Entorno específico de Lambda: evita conflictos de subprocesos
importar sistema operativo
os.environ['OMP_NUM_THREADS'] = '1'
os.environ['OMP_THREAD_LIMIT'] = '1'
os.environ['GGML_OPENMP'] = 'DESACTIVADO'
os.environ['KMP_DUPLICATE_LIB_OK'] = 'VERDADERO'La imagen del contenedor pesa aproximadamente 1,1 GB, incluidas todas las dependencias (dentro del límite de Lambda de 250 MB comprimidos/10 GB descomprimidos) y utiliza una compilación Docker de dos etapas para excluir todos los artefactos de compilación de la imagen final. Esto establece un patrón concreto para BitNet sin servidor en cualquier entorno FaaS.
IA en el dispositivo e inferencia perimetral
Debido a que la ruta de inferencia solo de CPU no requiere hardware especializado, BitNet b1.58 es un candidato natural para:
- AI en el dispositivo del teléfono inteligente: el tamaño del modelo de 400 MB es lo suficientemente pequeño como para incluirlo previamente en aplicaciones
- Inferencia Raspberry Pi/SBC: se ejecuta completamente en computadoras ARM de placa única sin requisitos de GPU
- Navegador/WebAssembly: un interesante programa largoposibilidad real; BitNet.cpp es C++ y podría compilarse en WASM
- Controlador de IA de IoT: el presupuesto de energía del token de ~0,028J por inferencia y los minúsculos requisitos de almacenamiento hacen de esta la primera opción creíble de clase LLM para dispositivos periféricos alimentados por batería.
Comparación y alternativas: dónde se ubica BitNet en el ecosistema de cuantificación
La distinción clave es nativo versus post-tratamiento: BitNet b1.58 fue diseñado y entrenado para pesos ternarios. Cada técnica de cuantificación posterior al entrenamiento aplica pérdida de precisión a un modelo que nunca fue diseñado para ello. BitNet b1.58 internalizó la restricción desde el primer paso del optimizador.
Alternativas en el espacio:
- Modelos dispersos de Neural Magic: poda agresiva de peso + cuantificación; Rendimiento extremadamente competitivo, pero el ecosistema es menos maduro y la concesión de licencias puede ser restrictiva.
- TinyLlama / SMS-1B: 1.100 millones de modelos sin capas; Bueno para proyectos de hobby pero no logra una precisión comparable.
- Destilación estilo DistilBERT: la destilación de conocimientos puede impulsar aún más las ganancias de 1,58 bits; La investigación en esta dirección está en curso.
Conclusión y próximos pasos
BitNet b1.58 no es sólo un buen resultado en papel. Desafía los supuestos económicos de lo que cuesta ejecutar un LLM: en hardware, energía y tiempo. Un modelo de 2B y 400 MB que se puede ejecutar en una computadora portátil sin GPU, que supera a los competidores varias veces su tamaño en tareas de razonamiento, y que lo logró a través de una modificación arquitectónica limpia (reemplazando Linear con BitLinear y entrenando desde cero) es un resultado genuinamente histórico.
Microsoft Research no se detiene en 2B. Han indicado direcciones claras de investigación a futuro: variantes LLM de 1 bit más grandes, capacidades multilingües, extensiones multimodales, ventanas de contexto más largas y, tal vez lo más interesante, lógica de hardware dedicada para el cálculo ternario/trit, que podría desbloquear un salto de eficiencia de segundo orden más allá de lo que los procesadores x86 y ARM actuales pueden ofrecer.
Qué puedes hacer hoy:
- ⭐ Iniciar el repositorio: github.com/microsoft/BitNet
- 🚀 Ejecute BitNet localmente: clone y cree
bitnet.cpp; lleva menos de 10 minutos en una máquina moderna - 🐳 Pruebe la demostración en vivo: demo-bitnet-h0h8hcfqeqhrf5gf.canadacentral-01.azurewebsites.net
- 📚 Lea el artículo: La era de los LLM de 1 bit y el Informe técnico de BitNet b1.58 2B4T
- 🔬 Ajuste de Hugging Face: tome el modelo Llama 3 8B de 1,58 bits de HF1BitLLM e itere
La era de los LLM de 1 bit no es una curiosidad marginal. Está aquí, es de código abierto y bien puede ser la forma en que se ejecutará la mayor parte de la IA dentro de tres a cinco años. La pregunta ya no es si los LLM de 1 bit funcionan, sino si estará listo para construir con ellos.