BitNet é a família de modelos de linguagem de 1 bit da Microsoft, e bitnet.cpp é o motor open source que os executa em uma CPU comum, sem GPU e com uma fração da memória habitual. Seu modelo principal, BitNet b1.58 2B4T, ocupa cerca de 0,4 GB em seus pesos sem embeddings, contra os 1,4 a 4,8 GB que modelos pequenos comparáveis precisam.
O repositório não é novo: o bitnet.cpp 1.0 saiu em outubro de 2024. Mas ele não parou de evoluir. Em janeiro de 2026, uma otimização de CPU somou outra aceleração de 1,15x a 2,1x. Em julho de 2026, a Microsoft publicou dois modelos de embeddings de 1 bit e o VibeASR.cpp, um motor de reconhecimento de voz construído sobre a mesma quantização. Aqui está o que é, como instalá-lo e onde ele realmente se encaixa na sua caixa de ferramentas.
O que significa um LLM ser de 1 bit?
Significa que cada peso do modelo só pode assumir um de três valores: -1, 0 ou +1. Tecnicamente são 1,58 bits, e daí vem o “b1.58” do nome. Um modelo convencional armazena cada peso como um número de ponto flutuante de 16 bits. Com pesos ternários, as custosas multiplicações de matrizes se reduzem a somas, e por isso o ganho aparece ao mesmo tempo em memória, latência e energia. Em inglês você vai encontrá-lo como 1-bit LLM ou ternary LLM.
O detalhe importante está na ficha do modelo: o BitNet b1.58 2B4T foi treinado do zero neste formato. Não é um modelo de precisão completa que foi comprimido depois. Essa é a diferença em relação às quantizações Q4 ou Q8 que você baixa para o Ollama ou o LM Studio: essas pegam um modelo pronto e o comprimem, enquanto o BitNet nasce ternário. As ativações são quantizadas em 8 bits, então o esquema completo é W1.58A8.
O modelo tem cerca de 2 bilhões de parâmetros, foi treinado com 4 trilhões de tokens, usa o tokenizador do Llama 3 e tem um contexto máximo de 4.096 tokens.
Quão rápido é o BitNet e quão bom ele é?
Segundo os dados da Microsoft, que não são benchmarks independentes, o bitnet.cpp é entre 2,37x e 6,17x mais rápido que a inferência de precisão completa em CPUs x86. Nesses mesmos processadores, consome entre 71,9 e 82,2 por cento menos energia. Em ARM, a aceleração vai de 1,37x a 5,07x e a economia de energia, de 55,4 a 70,0 por cento. Os modelos maiores são os que mais ganham.
Em qualidade, a ficha do modelo compara o BitNet b1.58 2B com modelos instruct de tamanho similar:
| LLaMA 3.2 1B | Gemma-3 1B | Qwen2.5 1.5B | BitNet b1.58 2B | |
|---|---|---|---|---|
| Memória (sem embeddings) | 2 GB | 1,4 GB | 2,6 GB | 0,4 GB |
| Latência de decodificação em CPU | 48 ms | 41 ms | 65 ms | 29 ms |
| Média dos benchmarks | 44,90 | 43,74 | 55,23 | 54,19 |
| HumanEval+ | 31,10 | 37,20 | 50,60 | 38,40 |
| GSM8K | 38,21 | 31,16 | 56,79 | 58,38 |
A tabela mostra uma qualidade próxima à do Qwen2.5 1.5B com aproximadamente um sexto da memória. A exceção é o código: no HumanEval+ ele fica bem atrás do Qwen.
O README também afirma que o bitnet.cpp pode executar um modelo BitNet de 100 bilhões de parâmetros em uma única CPU, a entre 5 e 7 tokens por segundo, mais ou menos a velocidade de leitura humana. Encare isso como uma afirmação sobre o motor. Não existe um modelo BitNet público de 100B. Os maiores modelos suportados hoje são os da família Falcon3, de até 10B. O repositório inclui um gerador de modelos dummy justamente para medir arquiteturas que ainda não têm um modelo público.
Por que o BitNet não é mais rápido com transformers?
Porque os kernels especializados só existem no bitnet.cpp. A ficha do modelo diz isso sem rodeios: executar o BitNet com a biblioteca padrão transformers da Hugging Face não traz nenhuma vantagem em velocidade, latência ou energia, e pode ser até mais lento que um modelo de precisão completa. Você verá menos uso de memória, mas os benefícios de computação exigem o bitnet.cpp.
É o erro mais comum com o BitNet. As pessoas o carregam em Python, não notam diferença e concluem que era tudo fumaça. O motor é o produto.
Como instalar o bitnet.cpp?
Você precisa de Python 3.10 ou superior, CMake 3.22 ou superior e clang 18 ou superior. O uso de conda é altamente recomendado. No Debian ou Ubuntu, o README indica o script de instalação automática do LLVM para obter o clang:
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
1. Clone o repositório com seus submódulos:
git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
2. Crie o ambiente e instale as dependências:
conda create -n bitnet-cpp python=3.10
conda activate bitnet-cpp
pip install -r requirements.txt
3. Baixe o modelo e compile:
huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T
python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s
setup_env.py aceita -q i2_s ou -q tl1 para escolher o kernel de quantização. Ele também tem estas opções:
--use-pretuned(-p): usa parâmetros de kernel já ajustados.--hf-repo(-hr): baixa diretamente um dos modelos da comunidade suportados.
4. Converse com o modelo:
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv
-cnv ativa o modo chat, e nesse modo -p passa a ser o system prompt. Outras flags úteis:
-t: número de threads.-c: tamanho do contexto.-n: quantos tokens gerar.-temp: temperatura.
Para medir o desempenho na sua própria máquina:
python utils/e2e_benchmark.py -m /path/to/model -n 200 -p 256 -t 4
Esse comando gera 200 tokens a partir de um prompt de 256 tokens com 4 threads. O valor padrão é de 2 threads, então ajuste -t aos seus núcleos antes de comparar números.
O BitNet funciona no Windows e no Mac?
Sim, em ambos, com ressalvas.
O Windows precisa do Visual Studio 2022 com estes componentes ativados:
- Desktop development with C++
- C++ CMake Tools for Windows
- Git for Windows
- C++ Clang Compiler for Windows
- MS-Build Support for LLVM-Toolset (clang)
Todos os comandos devem ser executados a partir de um Developer Command Prompt ou Developer PowerShell do VS2022. Se clang -v responder que o comando não é reconhecido, seu terminal não está inicializado com as ferramentas do Visual Studio. O FAQ do README traz a solução com VsDevCmd.bat.
Mac com Apple Silicon e outros chips ARM executam o modelo de chat com os kernels I2_S e TL1. O próprio vídeo de demonstração da Microsoft mostra um modelo BitNet de 3B rodando em um M2.
Os novos modelos de embeddings são apenas para x86. A tabela de modelos suportados não lista nenhum kernel ARM para o BitNet-embedding-0.6B nem para o de 270M, então no Apple Silicon você não consegue executá-los com o bitnet.cpp.
Existe ainda um kernel oficial para GPU, publicado em maio de 2025. No momento da publicação desta nota, o README menciona o suporte a NPU como “o próximo passo”, sem data.
O que são os novos modelos de embeddings do BitNet?
São os primeiros modelos de embeddings de 1 bit, publicados em 20 de julho de 2026 em dois tamanhos:
- BitNet-embedding-0.6B: prefill entre 1,42x e 2,28x mais rápido que em F16, com 8 threads.
- BitNet-embedding-270M: entre 1,32x e 1,74x mais rápido, pensado para implantações no edge.
A Microsoft relata uma qualidade de embeddings competitiva com os modelos de precisão completa usando 2 bits por peso. Os embeddings são o motor de qualquer pipeline de RAG, de busca semântica ou de busca de código, então esta pode ser a parte mais prática do lançamento para um desenvolvedor. O repositório inclui um guia específico de conversão e inferência (docs/bitnet-embeddings-i2s-guide.md).
Para que serve o BitNet e para que não serve?
Ele se encaixa bem nestes casos:
- Embeddings locais para RAG.
- Classificação e extração em servidores sem GPU.
- Implantações offline e no edge.
- Jobs de CI ou workers em segundo plano, onde um modelo pequeno em uma CPU ociosa é uma opção melhor que uma chamada a uma API.
- Qualquer caso em que a energia ou a memória sejam a principal restrição.
Não se encaixa nestes:
- Assistência para programar. Sua pontuação no HumanEval+ é modesta; ele não substitui o seu agente de código.
- Documentos longos. A janela de contexto é de 4.096 tokens.
- Cargas de trabalho principalmente em espanhol. A ficha do modelo adverte que o suporte a idiomas diferentes do inglês é limitado.
A Microsoft também não recomenda usar o BitNet b1.58 em aplicações comerciais ou do mundo real sem mais testes e desenvolvimento. Trate-o como um modelo de pesquisa com um motor de nível de produção.
BitNet, llama.cpp ou Ollama: qual usar?
Depende de como o modelo foi treinado. O bitnet.cpp é construído sobre o llama.cpp; a diferença está nos kernels. Os do bitnet.cpp são projetados para pesos ternários, com os métodos de tabelas de consulta do projeto T-MAC da Microsoft. Para um modelo quantizado geral (Q4, Q8 ou similares), llama.cpp, Ollama ou LM Studio continuam sendo as ferramentas indicadas. A própria Microsoft recomenda o T-MAC para modelos de poucos bits que não são ternários. Use o bitnet.cpp quando o modelo foi treinado como modelo BitNet.
Se você ainda está escolhendo entre os runtimes gerais, aqui comparamos os três: LM Studio, Ollama ou llama.cpp: o que realmente roda na sua máquina
E você? Que tarefa do seu fluxo de trabalho você passaria para um modelo local em CPU?
- Embeddings para RAG ou busca semântica
- Classificação ou extração em servidores sem GPU
- Experimentar no meu laptop
- Prefiro outra opção (nos conta qual)
Comente abaixo ou, se este artigo chegou até você por e-mail, responda diretamente ao e-mail: sua resposta é publicada aqui.
Relacionado: Ternlight: Como Instalar um Motor de Embeddings de 7 MB que Roda Inteiramente no seu Navegador