17 puntos por GN⁺ 2026-03-13 | 1 comentarios | Compartir por WhatsApp
  • bitnet.cpp de Microsoft es el framework oficial de inferencia para modelos de lenguaje grandes (LLM) de 1 bit, y permite inferencia rápida y sin pérdida en CPU y GPU
  • Logra una mejora de velocidad de 1.37 a 5.07 veces y una reducción de energía de 55.4 a 70% en CPU ARM, y una mejora de velocidad de 2.37 a 6.17 veces y una reducción de energía de 71.9 a 82.2% en CPU x86
  • Agrega implementación de kernels en paralelo y cuantización de embeddings, lo que ofrece una mejora adicional de rendimiento de 1.15 a 2.1 veces frente a la versión previa
  • El modelo BitNet b1.58 puede ejecutarse en una sola CPU a una velocidad de 5 a 7 tokens por segundo, ampliando la posibilidad de usar modelos ultragrandes en entornos locales
  • Desarrollado sobre llama.cpp y T-MAC, contribuye a ampliar el ecosistema open source para hacer más eficiente la inferencia de LLM de bajo bit

Resumen de bitnet.cpp

  • bitnet.cpp es el framework oficial de inferencia para LLM de 1 bit (por ejemplo, BitNet b1.58) y ofrece kernels optimizados para CPU y GPU
    • El soporte para NPU se agregará más adelante
  • La primera versión soporta inferencia en CPU y demostró mejoras en velocidad y eficiencia energética tanto en arquitecturas ARM como x86
    • CPU ARM: mejora de velocidad de 1.37 a 5.07 veces, reducción de energía de 55.4 a 70%
    • CPU x86: mejora de velocidad de 2.37 a 6.17 veces, reducción de energía de 71.9 a 82.2%
  • El modelo BitNet b1.58 de 100B parámetros puede ejecutarse en una sola CPU a 5 a 7 tokens por segundo

Optimizaciones más recientes

  • Se añadieron la implementación de kernels en paralelo y funciones de configuración de tiling y cuantización de embeddings, logrando una mejora adicional de velocidad de 1.15 a 2.1 veces frente a antes
  • Se confirmaron mejoras de rendimiento en distintas plataformas de hardware y cargas de trabajo
  • Los detalles técnicos se ofrecen en el documento optimization guide

Demo y modelos oficiales

  • Hay una demo para ejecutar el modelo BitNet b1.58 3B en Apple M2
  • Como modelo oficial, BitNet-b1.58-2B-4T está publicado en Hugging Face y es compatible con CPU x86 y ARM
  • Entre los modelos compatibles se incluyen bitnet_b1_58-large(0.7B), bitnet_b1_58-3B(3.3B), Llama3-8B-1.58, Falcon3 y la serie Falcon-E

Instalación y compilación

  • Requisitos: Python 3.9 o superior, CMake 3.22 o superior, Clang 18 o superior
    • Los usuarios de Windows deben instalar Visual Studio 2022
    • Para usuarios de Debian/Ubuntu se ofrece un script de instalación automática
  • Se recomienda usar un entorno Conda, y es posible configurar el entorno del modelo con setup_env.py
  • Después de descargar el modelo desde Hugging Face, puede ejecutarse desde una ruta local

Uso y benchmarks

  • Con run_inference.py se ejecuta la inferencia de modelos cuantizados
    • Argumentos principales: ruta del modelo (-m), prompt (-p), número de hilos (-t), tamaño de contexto (-c), temperatura (-temp)
  • Con el script e2e_benchmark.py es posible medir rendimiento especificando cantidad de tokens, longitud del prompt y número de hilos
  • Si no hay un modelo público disponible, se puede usar generate-dummy-bitnet-model.py para generar un modelo dummy y luego ejecutar benchmarks

Conversión de modelos y FAQ

  • Se ofrece un script para convertir checkpoints .safetensors al formato gguf
  • En el FAQ se explica cómo resolver errores de compilación de llama.cpp (relacionados con std::chrono) y el procedimiento para configurar el entorno de clang en Windows
    • Es necesario inicializar el entorno desde el símbolo del sistema para desarrolladores de Visual Studio o desde PowerShell

1 comentarios

 
GN⁺ 2026-03-13
Opiniones de Hacker News
  • Microsoft en realidad está usando 2 bits, no 1.58 bits
    En ese caso se pueden representar cuatro valores: -1, 0, 1 y 2
    Dado que las sinapsis inhibitorias representan entre el 20 y el 30%, creo que esta estructura encaja bien con la estructura del cerebro biológico

    • Me pregunto si podrías explicar un poco más la tercera oración, es decir, la parte de que “las sinapsis inhibitorias representan entre el 20 y el 30%”
  • A menudo me pregunto qué forma tendría un “LLM de funcionalidad mínima
    Es decir, un modelo que con la menor cantidad posible de información pueda aun así dar respuestas razonables complementando el resto con búsquedas en Google
    Creo que haría una gran diferencia si lugares como Encyclopedia Britannica vendieran sus datos a los LLM y ofrecieran servicios de verificación de resultados
    Wikipedia también está bien, pero es una lástima que tenga tantos errores y sesgos humanos

    • Un video corto de Andrej Karpathy habla sobre este tema
      Los LLM pequeños ya están avanzando en esa dirección; les falta conocimiento general, pero su capacidad para usar herramientas (por ejemplo, googlear) está mejorando cada vez más
      Aun así, sigue siendo un problema difícil distinguir claramente entre lo que saben y lo que no saben
    • Lo que tengo en mente no es tanto un “LLM de funcionalidad mínima”, sino un LLM que solo entienda bien el lenguaje y casi no tenga conocimiento
      Como un ingeniero que no conoce un dispositivo específico: tiene capacidad para resolver problemas, pero no tiene el conocimiento detallado
      No estoy seguro de que un modelo así pueda resolverlo simplemente con búsquedas en Google o en la wiki, pero creo que la arquitectura de LLM de borde terminará siendo el estándar
    • La capacidad de razonamiento al final depende de la cantidad de información durante el entrenamiento
      Cuanta más información esté incluida en los datos de entrenamiento, más fácil será recuperarla e interpretarla
      Por eso, un entrenamiento que dependa de memoria externa (como búsqueda, etc.) en lugar de memorización interna podría ser práctico
    • Se siente contradictorio preocuparse por los errores y sesgos de Wikipedia y al mismo tiempo pensar que un LLM con acceso web sería mejor
      Yo más bien pienso lo contrario
    • Parece que el resultado dependerá de qué nivel concreto quieras decir con la expresión “respuesta razonable”
  • Según el paper original (pdf), se necesitan alrededor de 4 a 5 veces más parámetros que en un modelo fp16
    Se puede intentar construir directamente, pero como hay que entrenarlo desde cero, las opciones son limitadas
    Aun así, se espera que la velocidad de inferencia sea más rápida que la de los modelos cuantizados modernos de 4 bits y 8 bits

  • El verdadero punto clave es el ahorro de energía
    Dicen que en inferencia con CPU se puede reducir entre 70 y 82%
    Si un modelo de 1 bit llega a ser lo suficientemente bueno, se podrá ejecutar un LLM en hardware común sin GPU, lo que cambiaría el panorama de la accesibilidad

  • Aunque bitnet.cpp se presenta como el framework oficial de inferencia para LLM de 1 bit (BitNet b1.58, etc.),
    hay confusión sobre si es “1 bit o 1 trit”

    • “LLM de 1 bit” es más bien un término de marketing; en realidad usa 3 estados (-1, 0, 1), así que corresponde a 1.58 bits
    • Como log₂(3)≈1.58, no es un modelo de 2 estados (1 bit), sino de 3 estados (1.58 bits)
      Mezclar ambos conceptos genera confusión
  • Me da gusto ver que este proyecto sigue en desarrollo
    El año pasado vi este post relacionado y sentí que tenía potencial, pero fue una pena que no salieran modelos nuevos

    • Pero este enfoque al final no es más que cuantización de modelos de precisión completa, así que la inferencia se acelera, pero el entrenamiento no
      Lo realmente interesante es la dirección de entrenar modelos binarios directamente sin operaciones de punto flotante
      Hay un paper relacionado en NeurIPS 2024
  • Decir que “se puede ejecutar un BitNet de 100B” no significa que exista el modelo, sino que el framework de inferencia lo hace posible

    • En realidad parece que usaron un modelo dummy
      Aunque busques “1-bit 100b model”, no hay ningún modelo descargable
  • La calidad de salida del modelo se parece más al balbuceo nivel GPT-2 y repite párrafos tal cual
    Incluso reutiliza constantemente citas falsas como (Jenkins, 2010)

    • Aun así, esta es una versión base de 3B parámetros de hace 2 años, entrenada con solo 100B tokens para investigación
  • El título lleva a confusión
    En realidad no es un modelo entrenado de 100B, sino un framework de inferencia capaz de manejarlo
    Yo estoy ejecutando un modelo cuantizado de 70B en una M2 Max de 96GB con llama.cpp + LiteLLM, y el cuello de botella es el ancho de banda de memoria
    El enfoque de 1.58 bits tiene una estructura que convierte multiplicaciones de matrices en sumas, así que en CPU tiene un patrón de cómputo fundamentalmente distinto
    Si fuera posible ejecutar un modelo de clase 100B a 5~7 tokens por segundo en un solo núcleo de CPU, sería un punto de inflexión para la inferencia on-device
    El framework ya está listo; ahora alguien tiene que entrenar un modelo real

    • Si Microsoft no entrenó directamente un modelo en 2 años, me cuesta creer sus afirmaciones tal cual
    • Dicen que es un “modelo nuevo”, pero los pesos que subieron a Hugging Face son de hace 11 meses y están en el nivel de 2B parámetros
      Los resultados reales son pobres en comparación con la promoción
    • Las operaciones de 2 bits son muy baratas de implementar en hardware, así que con un chip dedicado podría ser posible tener inferencia potente sin GPU
      Para entrenamiento seguirían haciendo falta GPU, pero el hardware para inferencia podría volverse mucho más simple
    • Una velocidad de 5~7 tokens por segundo es más lenta que la velocidad real de lectura
      He usado un modelo que generaba a 7 tokens/segundo, y era tan frustrante como caminar detrás de una persona lenta
      En local, habría que apuntar como mínimo a más de 10 tokens/segundo
    • Tengo dudas sobre la afirmación de que “el perfil de cómputo en CPU es fundamentalmente distinto”
      Las instrucciones FMA (Fused Multiply-Add) de los CPU modernos tienen un rendimiento casi igual al de una suma simple
  • Me pregunto cuándo las PC con NPU empezarán de verdad a mostrar resultados serios
    AMD está logrando buenos resultados con kernels híbridos de inferencia NPU/iGPU
    Si estos modelos grandes corren en NPU, la eficiencia energética debería ser mucho mejor que en CPU

    • Hace poco ejecuté Whisper de OpenAI en CPU y luego probé una versión optimizada para Intel NPU; fue 6 veces más rápida y mucho más silenciosa
      Desde entonces me hice fan del NPU. Claro, no está al nivel de una RTX 5090, pero es muchísimo más eficiente que el CPU
    • Ya se pueden ejecutar LLM pequeños en el NPU del SBC Rockchip RK3588
      El ecosistema de software es inestable, pero funciona con uso de CPU/GPU casi en 0
    • Aun así, tengo dudas de que los NPU realmente sean tan potentes
      Yo entendía que estaban diseñados principalmente para bajo consumo