En este artículo
BitNet en CPU: 2B4T, requisitos de RAM y la cifra de 100B
Microsoft BitNet permite probar en CPU un modelo de lenguaje ya entrenado con 2,4 mil millones de parámetros mediante bitnet.cpp. La cifra de 100 mil millones de parámetros (100B) procede de una prueba del motor de inferencia con una configuración de modelo sintética. Para empezar a evaluar una aplicación, tienes el modelo publicado BitNet b1.58 2B4T. Combínalo con un entorno de ejecución compatible y una tarea breve que puedas puntuar.
Si quieres clasificar solicitudes de soporte en un ordenador que ya tienes, merece una evaluación. Puedes probar la inferencia local antes de comprar hardware. La decisión dependerá del consumo total de memoria, el tiempo de respuesta y los aciertos en tu tarea.
El repositorio de Microsoft revisado incluye el modelo generativo de 2,4 mil millones de parámetros y modelos de embeddings más recientes. Su lista de modelos compatibles publicados no contiene un modelo generativo de 100B ya entrenado. El motor de inferencia se publicó en octubre de 2024; 2B4T llegó en abril de 2025.
Revisado el . Esta guía contrasta los artículos de investigación, los archivos del modelo y el código de ejecución en el commit 0b341e5. Wavect no ha ejecutado estos comandos de inferencia ni ha reproducido los resultados de forma independiente. La evaluación que sigue es un protocolo propuesto.
¿Puede BitNet ejecutar un modelo de 100B en una sola CPU?
El artículo original informa de 6,58 tokens por segundo con una configuración sintética de 100B en un Mac Studio con M2 Ultra y 64 GB de RAM. El apéndice A del artículo de octubre de 2024 sobre inferencia en CPU identifica las configuraciones de las pruebas como modelos ficticios. El resultado acredita la velocidad de esa configuración. No proporciona un asistente de 100B entrenado que puedas descargar.
| Equipo, ambos con 64 GB de RAM | Mejor velocidad, sin límite de hilos | Dos hilos de CPU |
|---|---|---|
| Mac Studio, Apple M2 Ultra | 6,58 tokens/s | 1,27 tokens/s |
| Surface Laptop Studio 2, Intel Core i7-13700H | 1,70 tokens/s | 0,97 tokens/s |
Las filas sin límite de hilos no indican cuántos se seleccionaron. Tampoco especifican la longitud de la entrada, la longitud de la generación ni las condiciones de caché. Una sola CPU puede utilizar muchos hilos. Estos resultados no acreditan una velocidad de 5–7 tokens/s en cualquier portátil o en un único núcleo de CPU.
Las mejoras de velocidad de 2,37–6,17× en x86 y 1,37–5,07× en ARM que suelen citarse comparan bitnet.cpp con llama.cpp usando pesos FP16 cuando esa referencia cabe en memoria. Las dos entradas FP16 de 100B carecen de resultado. La mayor reducción de energía publicada para x86, el 82,2%, procede de la comparación de 7B. Esa cifra no mide el ahorro de 2B4T ni el de la fila de 100B.
¿Qué modelo BitNet debes descargar para inferencia en CPU?
Utiliza el archivo GGUF oficial de 2B4T con la ruta de inferencia en CPU compatible de bitnet.cpp. La ficha del modelo distingue tres distribuciones. Elegir el archivo correcto importa tanto como elegir el nombre del modelo.
| Sufijo del repositorio | Contenido | Uso en esta evaluación |
|---|---|---|
bitnet-b1.58-2B-4T-gguf | Pesos GGUF para bitnet.cpp | El archivo de inferencia en CPU utilizado más abajo. |
bitnet-b1.58-2B-4T | Pesos nativos de baja precisión empaquetados | Requiere una ruta de ejecución compatible. La ejecución habitual con Transformers no ofrece el ahorro de cómputo anunciado. |
bitnet-b1.58-2B-4T-bf16 | Pesos maestros BF16 | Flujos de entrenamiento y ajuste fino. |
Los tres nombres corresponden a la misma familia de modelos, entrenada con cuatro billones de tokens. El 4T de su nombre describe ese corpus de entrenamiento. Los modelos de embeddings posteriores, de 0,6 mil millones y 270 millones de parámetros, cumplen otra función: producen vectores para recuperación de información. Quedan fuera de esta evaluación de generación de texto.
El modelo se entrenó desde cero con pesos ternarios y activaciones de 8 bits. Ese entrenamiento es esencial para el resultado. Convertir un modelo FP16 cualquiera a tres valores de peso no le transfiere la calidad de 2B4T. Nuestro análisis de Bonsai y sus modelos de baja precisión trata por separado los modelos binarios y su despliegue en móviles.
¿Cuánta RAM necesita realmente BitNet 2B4T?
La cifra publicada de 0,4 GB corresponde a los pesos sin embeddings. El archivo GGUF revisado ocupa unos 1,19 GB; la RAM total durante la ejecución debe medirse. El archivo GGUF oficial en la revisión fijada aporta un tamaño de descarga concreto. Para definir los requisitos de hardware necesitas también el consumo durante la ejecución.
| Cifra | Qué describe | Cómo utilizarla |
|---|---|---|
| 0,4 GB en el informe de 2B4T | Memoria del modelo, excluidos los embeddings. | Mantén esa exclusión cuando cites el artículo. |
| Unos 1,19 GB | El archivo ggml-model-i2_s.gguf revisado, almacenado en disco. | Planifica la descarga e identifica el archivo exacto que has probado. |
| Pico de memoria durante la ejecución | Páginas del modelo residentes en RAM, caché de contexto, activaciones y búferes de ejecución durante tu carga de trabajo. | Mide con el contexto y las solicitudes simultáneas previstos; reserva memoria para el sistema operativo y la aplicación. |
Para el modelo 2B4T publicado también puedes estimar una parte de la memoria de contexto. Su configuración publicada tiene 30 capas, cinco cabezas de claves y valores, y una dimensión de 128 por cabeza. Con los valores predeterminados F16 revisados para la caché de claves y valores, una secuencia completa de 4096 tokens necesita 300 MiB de datos de caché en condiciones ideales: 2 × 30 × 4096 × 5 × 128 × 2 bytes. Este cálculo excluye la sobrecarga del asignador y todos los demás componentes de memoria. Explica por qué ampliar el contexto consume más RAM aunque el archivo del modelo conserve su tamaño.
El «1.58» de b1.58 procede de log2(3), aproximadamente 1,585 bits para tres valores de peso posibles. Los formatos de almacenamiento reales añaden empaquetado y otros tensores. El kernel I2_S empaqueta los pesos en dos bits. Además, su ruta de multiplicación y acumulación impide describirlo como un sistema que elimina todas las multiplicaciones. Los kernels con tablas de consulta utilizan otras operaciones, como explica el artículo sobre CPU.
Para situar la escala, un cálculo deliberadamente simplificado de los pesos de un modelo de 100B da unos 19,81 GB con log2(3) bits por peso, 25 GB con empaquetado de dos bits o 200 GB en FP16. Son GB decimales y un supuesto uniforme que solo cuenta pesos: parámetros × bits ÷ 8. Quedan fuera los embeddings almacenados de otra forma, las cachés y la sobrecarga de ejecución.
Ese cálculo reduce el tamaño ideal de los datos unas 10,1 veces frente a FP16 o 20,2 veces frente a FP32. No respalda una reducción universal de 16–32 veces en la RAM total. Tampoco permite saber si un portátil de 8 GB o 16 GB cumplirá tu objetivo de latencia.
Utiliza nuestra guía de llmfit para dimensionar hardware para inspeccionar el equipo y preparar una preselección. Después, verifica directamente este archivo de BitNet y su entorno de ejecución. Una estimación de catálogo por sí sola no acredita su compatibilidad ni su consumo medido de memoria.
¿Qué demuestran los resultados de calidad de 2B4T?
2B4T compite con otros modelos pequeños en varias pruebas, con diferencias relevantes según la tarea. El informe técnico de 2B4T compara modelos ajustados para seguir instrucciones. Esta selección incluye resultados superiores e inferiores a los de Qwen2.5 1.5B.
| Prueba | BitNet b1.58 2B4T | Qwen2.5 1.5B |
|---|---|---|
| GSM8K | 58,38 | 56,79 |
| IFEval | 53,48 | 50,12 |
| MMLU | 53,17 | 60,25 |
| HumanEval+ | 38,40 | 50,60 |
El informe detalla las condiciones de evaluación en el apéndice B. Son resultados publicados por sus autores para distintos modelos entrenados. No constituyen una prueba de antes y después que demuestre que la cuantización conserva todas las respuestas. Tampoco validan la calidad lingüística de la configuración sintética de 100B.
Los 29 ms del mismo informe corresponden al tiempo medio de decodificación por token de salida en un i7-13800H con ocho hilos y 128 tokens generados. La latencia hasta el primer token es otra medida. La cifra de energía de 0,028 J es una estimación aritmética para un proceso de 7 nm modelado; no mide el consumo eléctrico de un portátil.
La ficha del modelo especifica un contexto de 4096 tokens y compatibilidad limitada con idiomas distintos del inglés. Cuenta el mensaje de sistema, la entrada y la salida dentro de ese límite. Evalúa por separado el alemán, el español y el chino si tu flujo de trabajo los necesita. Publicar esta guía en cuatro idiomas no acredita que el modelo rinda igual en todos ellos.
Una tarea breve de clasificación en inglés es un punto de partida razonable. La síntesis de documentos largos, la atención al cliente multilingüe y la programación autónoma requieren sus propias pruebas. La licencia MIT permite una reutilización amplia; la ficha del modelo recomienda pruebas y desarrollo adicionales antes de utilizarlo en aplicaciones reales o comerciales.
Instalar BitNet 2B4T en CPU con comandos contrastados con el código
Estos comandos están pensados para una shell de Linux o macOS con Git, Python 3.10 o posterior, CMake 3.22 o posterior y Clang 18 o posterior ya instalados. Sigue primero los requisitos de plataforma del repositorio. Windows tiene sus propios pasos con Developer PowerShell de Visual Studio 2022 y la activación del entorno.
La ruta de CPU admite x86 y ARM con kernels compatibles. La compatibilidad con una arquitectura de CPU no acredita por sí sola un despliegue funcional en un móvil o dispositivo IoT. Comprueba el sistema operativo de destino, las dependencias de compilación y la memoria disponible antes de planificarlo.
Fija la revisión del código de ejecución y la del archivo del modelo para que otro desarrollador pueda identificar lo que has probado. La implementación de instalación revisada utiliza el nombre del directorio del modelo para seleccionar la generación de kernels. Conserva las mayúsculas del directorio BitNet-b1.58-2B-4T que aparece a continuación.
git clone https://github.com/microsoft/BitNet.git
cd BitNet
git checkout 0b341e582afbf9e1011f24744b554c96a3477eb5
git submodule update --init --recursive
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
hf download microsoft/bitnet-b1.58-2B-4T-gguf \
ggml-model-i2_s.gguf \
--revision a1f2f1c765812aa8af3f6eda4a313707064bba15 \
--local-dir models/BitNet-b1.58-2B-4T
python setup_env.py \
-md models/BitNet-b1.58-2B-4T -q i2_sEmpieza con dos hilos, un contexto de 2048 tokens y una salida limitada:
python run_inference.py \
-m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \
-p "You are a helpful assistant." \
-cnv -t 2 -c 2048 -n 128El script de inferencia revisado asigna cero capas a la GPU para la ruta de CPU. Con -cnv, -p proporciona el mensaje de sistema; escribe tu pregunta en la sesión interactiva. El número de hilos elegido es una configuración inicial. Tendrás que medir para encontrar la más rápida en tu equipo.
Las descargas y la instalación de dependencias necesitan acceso a la red. Después de la instalación, prueba la inferencia sin conexión. Si añades una aplicación de escritorio, un servicio de registro o una alternativa en la nube, inclúyelos en la prueba. Ejecutar el modelo localmente no describe todos los flujos de datos de la aplicación que lo rodea.
Mide por separado el procesamiento de la entrada, la generación y la memoria
Una respuesta corta puede tardar en empezar mientras el entorno de ejecución procesa una entrada larga. Mide por separado el procesamiento de la entrada, el tiempo hasta el primer token, la velocidad de generación y el tiempo de respuesta completo. Registra también el modelo de CPU, el número de hilos, el modo de energía, la revisión del modelo y el contexto configurado.
Para una prueba de inferencia repetible, el código del script de evaluación identifica el ejecutable llama-bench que utiliza. Invocarlo directamente también evita la salida incondicional con código de error que esa revisión produce al terminar el subproceso de evaluación.
./build/bin/llama-bench \
-m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \
-p 512 -n 128 -t 2 -ngl 0 \
-b 512 -ub 128 -ctk f16 -ctv f16 -r 5La implementación fijada de la prueba ejecuta por separado el procesamiento de entrada pp512 y la generación de tokens tg128, con cinco repeticiones y el calentamiento predeterminado. No mide una petición combinada con una pregunta de 512 tokens y una respuesta de 128, ni el tiempo hasta el primer token. Cronometra una petición real por separado. Esta receta no reproduce la prueba de 100B del artículo, cuyas condiciones están incompletas.
Mide el pico de memoria residente del proceso de inferencia con entradas representativas. Repite con el contexto que vayas a utilizar y el trabajo simultáneo previsto. Registra también la actividad de intercambio a disco y la memoria disponible del sistema. Un modelo que carga pero provoca una paginación intensa puede incumplir el tiempo de respuesta requerido.
Primera evaluación: una tarea breve de clasificación de solicitudes
Empieza con un conjunto fijo y aprobado de 100 solicitudes de soporte en inglés. Asigna a cada una una etiqueta de referencia: billing, technical, other o review. Utiliza review para solicitudes ambiguas que requieran una decisión humana. Pide una etiqueta y una explicación breve. Es una carga de trabajo propuesta; no se presentan resultados de su ejecución.
| Comprobación | Pruebas que debes registrar | Decisión que permiten tomar |
|---|---|---|
| Aciertos en la tarea | Etiquetas correctas de las 100, errores por categoría y casos ambiguos enviados a revisión. | Si la clasificación ahorra trabajo útil dentro del margen de error acordado. |
| Formato de salida | Etiquetas aceptadas, fallos de análisis del formato y texto adicional. | Si la aplicación puede procesar la respuesta de forma fiable. |
| Contexto | Número de tokens de entrada y salida; solicitudes truncadas o rechazadas. | Si las entradas reales caben en la ventana de 4096 tokens del modelo. |
| Tiempo de respuesta | Tiempos en frío y en caliente hasta el primer token y hasta la respuesta completa, con mediana y p95. | Si el usuario puede esperar a recibir el resultado completo. |
| Memoria | Pico de memoria residente, margen disponible en el sistema e intercambio a disco con la carga prevista. | Si el equipo actual puede ejecutar también la aplicación. |
| Idioma y funcionamiento sin conexión | Conjuntos etiquetados separados para los idiomas necesarios; inferencia con la red desactivada. | Si el despliegue responde al público real y a los requisitos de conectividad. |
Fija la tasa de error y la latencia aceptables antes de comparar. Utiliza el mismo conjunto de tareas con tu modelo actual o con un clasificador sencillo basado en reglas. Registra cuántos resultados correctos y utilizables produce cada uno dentro de los límites de memoria y tiempo de respuesta. Un piloto breve con buenos resultados aporta más información para decidir que una cifra de parámetros en un titular.
La inferencia en CPU puede eliminar los cargos por token de la nube para las peticiones que se ejecuten localmente. El hardware, la electricidad y el mantenimiento siguen formando parte de la decisión. Nuestro marco de costes de modelos locales frente a API aborda ese presupuesto completo. Para la arquitectura de la aplicación, consulta la guía para elegir una pila tecnológica.
Preguntas frecuentes sobre BitNet, CPU y RAM
¿Se puede descargar un modelo BitNet de 100B ya entrenado?
La lista revisada de modelos compatibles de Microsoft no contiene un modelo generativo de 100B entrenado. La cifra original de velocidad para 100B procede de una configuración sintética de evaluación. El modelo generativo oficial 2B4T tiene 2,4 mil millones de parámetros.
¿BitNet 2B4T necesita solo 0,4 GB de RAM?
Los 0,4 GB del artículo excluyen los pesos de embeddings. El archivo GGUF revisado ocupa unos 1,19 GB en disco. La memoria total durante la ejecución también depende de las cachés de contexto, los búferes y la carga de trabajo. Mide el pico de memoria residente antes de elegir hardware.
¿Funcionará BitNet en un portátil de 8 GB sin GPU?
bitnet.cpp admite inferencia en CPU, pero los artículos citados no acreditan un resultado universal para portátiles de 8 GB. Prueba el GGUF exacto de 2B4T, los kernels de CPU, el contexto y la tarea en el equipo de destino. El tamaño del archivo por sí solo no demuestra que el tiempo de respuesta o el margen de memoria sean suficientes.
¿Puedo convertir cualquier LLM a BitNet sin perder calidad?
2B4T se entrenó desde cero con pesos ternarios. Sus resultados no se pueden trasladar a cualquier modelo de precisión completa comprimido después del entrenamiento. Utiliza un modelo compatible y evalúa su calidad en la tarea prevista.
¿BitNet 2B4T funciona bien en alemán, español y chino?
La ficha del modelo indica una compatibilidad limitada con idiomas distintos del inglés. Evalúa cada idioma necesario con un conjunto etiquetado propio. Las pruebas publicadas de modelos pequeños no acreditan un rendimiento equivalente en esos idiomas.
¿Se puede usar BitNet sin conexión y con fines comerciales?
El entorno de ejecución y los pesos del modelo utilizan la licencia MIT. La inferencia en CPU puede ejecutarse localmente tras las descargas y la instalación. Verifica el funcionamiento sin conexión de toda la aplicación. La ficha del modelo recomienda pruebas y desarrollo adicionales antes de usarlo en aplicaciones comerciales o reales.
