17 pontos por GN⁺ 2026-03-13 | 1 comentários | Compartilhar no WhatsApp
  • O bitnet.cpp da Microsoft é o framework oficial de inferência para grandes modelos de linguagem (LLMs) de 1 bit, com suporte a inferência rápida e sem perdas em CPU e GPU
  • Alcançou ganho de velocidade de 1,37~5,07x e redução de energia de 55,4~70% em CPUs ARM, além de ganho de velocidade de 2,37~6,17x e redução de energia de 71,9~82,2% em CPUs x86
  • Com a adição de implementação de kernel paralela e quantização de embeddings, oferece ganho adicional de desempenho de 1,15~2,1x em relação à versão anterior
  • É possível executar o modelo BitNet b1.58 a 5~7 tokens por segundo em uma única CPU, ampliando a viabilidade de operar modelos ultragrandes em ambiente local
  • Desenvolvido com base em llama.cpp e T-MAC, contribui para a expansão do ecossistema open source voltado à eficiência de inferência de LLMs de baixo bit

Visão geral do bitnet.cpp

  • O bitnet.cpp é o framework oficial de inferência para LLMs de 1 bit (ex.: BitNet b1.58), oferecendo kernels otimizados em CPU e GPU
    • O suporte a NPU será adicionado no futuro
  • A primeira versão oferece suporte à inferência em CPU e comprovou melhorias em velocidade e eficiência energética tanto em arquiteturas ARM quanto x86
    • CPU ARM: ganho de velocidade de 1,37~5,07x, redução de energia de 55,4~70%
    • CPU x86: ganho de velocidade de 2,37~6,17x, redução de energia de 71,9~82,2%
  • É possível executar o modelo BitNet b1.58 de 100B parâmetros a 5~7 tokens por segundo em uma única CPU

Otimizações mais recentes

  • Foram adicionados recursos de implementação de kernel paralela, configuração de tiling e quantização de embeddings, alcançando ganho adicional de velocidade de 1,15~2,1x em relação à versão anterior
  • Melhorias de desempenho foram verificadas em várias plataformas de hardware e cargas de trabalho
  • Detalhes técnicos estão disponíveis no documento optimization guide

Demo e modelos oficiais

  • Há uma demo executando o modelo BitNet b1.58 3B em um Apple M2
  • O modelo oficial BitNet-b1.58-2B-4T foi publicado no Hugging Face, com suporte para CPUs x86 e ARM
  • Os modelos compatíveis incluem bitnet_b1_58-large(0.7B), bitnet_b1_58-3B(3.3B), Llama3-8B-1.58, Falcon3 e a série Falcon-E

Instalação e build

  • Requisitos: Python 3.9 ou superior, CMake 3.22 ou superior, Clang 18 ou superior
    • Usuários de Windows precisam instalar o Visual Studio 2022
    • Usuários de Debian/Ubuntu têm à disposição um script de instalação automática
  • Recomenda-se o uso de ambiente Conda, e é possível configurar o ambiente do modelo com setup_env.py
  • Após baixar o modelo do Hugging Face, ele pode ser executado a partir de um caminho local

Uso e benchmark

  • Execute a inferência de modelo quantizado com run_inference.py
    • Principais argumentos: caminho do modelo (-m), prompt (-p), número de threads (-t), tamanho de contexto (-c), temperatura (-temp)
  • Com o script e2e_benchmark.py, é possível medir desempenho definindo número de tokens, comprimento do prompt e número de threads
  • Se não houver modelo público disponível, é possível gerar um modelo dummy e executar benchmark com generate-dummy-bitnet-model.py

Conversão de modelo e FAQ

  • Há um script para converter checkpoints .safetensors para o formato gguf
  • O FAQ orienta como resolver erros de build do llama.cpp (relacionados a std::chrono) e como configurar o ambiente clang no Windows
    • É necessário inicializar o ambiente no prompt de desenvolvedor do Visual Studio ou no PowerShell

1 comentários

 
GN⁺ 2026-03-13
Opiniões no Hacker News
  • A Microsoft na prática está usando 2 bits, não 1,58 bit
    Nesse caso, é possível representar quatro valores: -1, 0, 1 e 2
    Considerando que sinapses inibitórias correspondem a 20~30%, isso parece combinar bem com a estrutura do cérebro biológico

    • Queria entender melhor a terceira frase, isto é, a parte de que “sinapses inibitórias correspondem a 20~30%”
  • Frequentemente fico pensando em como seria um “LLM minimamente funcional
    Ou seja, um modelo que tenha só o mínimo de informação e complemente o resto pesquisando no Google, mas ainda assim consiga dar respostas razoáveis
    Acho que faria uma grande diferença se algo como a Encyclopedia Britannica vendesse dados para LLMs e oferecesse um serviço de validação dos resultados
    A Wikipedia também é boa, mas incomoda o fato de haver muitos erros e vieses humanos

    • Neste vídeo curto do Andrej Karpathy, ele fala sobre esse tema
      LLMs pequenos já estão evoluindo nessa direção: têm pouco conhecimento geral, mas a capacidade de usar ferramentas (por exemplo, pesquisar no Google) está melhorando cada vez mais
      Ainda assim, continua sendo difícil distinguir claramente entre o que eles sabem e o que não sabem
    • O que imagino não é tanto um “LLM minimamente funcional”, mas sim um LLM que sabe bem a linguagem e quase não tem conhecimento
      Como um engenheiro que não conhece um dispositivo específico: tem capacidade de resolver problemas, mas não tem o conhecimento detalhado
      Não sei se um modelo assim conseguiria se virar apenas com pesquisas no Google ou na wiki, mas a arquitetura de LLM de borda parece algo que vai virar padrão no futuro
    • A capacidade de raciocínio no fim depende da quantidade de informação durante o treinamento
      Quanto mais a informação estiver presente nos dados de treino, mais fácil fica buscá-la e interpretá-la
      Por isso, um treinamento mais dependente de memória externa (busca etc.) do que de memorização interna pode ser algo prático
    • Parece contraditório se preocupar com erros e vieses da Wikipédia e, ao mesmo tempo, achar que um LLM com acesso à web seria melhor
      Eu, na verdade, penso o contrário
    • Acho que o resultado depende do que exatamente se quer dizer com “respostas razoáveis”
  • Segundo o artigo original (pdf), ele exige cerca de 4 a 5 vezes mais parâmetros em comparação com um modelo fp16
    Dá para construir algo por conta própria, mas como é preciso treinar desde o início, as opções são limitadas
    Ainda assim, a expectativa é que a velocidade de inferência seja maior do que a dos modelos quantizados mais recentes de 4 bits e 8 bits

  • O verdadeiro ponto principal é o efeito de economia de energia
    Dizem que, em inferência por CPU, a redução pode chegar a 70~82%
    Se um modelo de 1 bit ficar bom o suficiente, será possível rodar LLMs em hardware comum sem GPU, o que mudaria o cenário de acessibilidade

  • Dizem que o bitnet.cpp é o framework oficial de inferência para LLMs de 1 bit (como o BitNet b1.58),
    mas existe uma confusão entre “1 bit” e “1 trit”

    • “LLM de 1 bit” é mais um termo de marketing; na prática, usa 3 estados (-1, 0, 1), então corresponde a 1,58 bit
    • Como log₂(3)≈1,58, isso não é um modelo de 2 estados (1 bit), mas sim de 3 estados (1,58 bit)
      Misturar os dois conceitos gera confusão
  • Fico feliz em ver este projeto continuar sendo desenvolvido
    No ano passado, li este texto relacionado e vi potencial, mas foi frustrante não surgirem novos modelos

    • Mas essa abordagem no fim é apenas quantização de modelos de alta precisão; a inferência fica mais rápida, mas o treinamento não
      O realmente interessante seria seguir na direção de treinar diretamente modelos binários sem operações de ponto flutuante
      Há um artigo relacionado na NeurIPS 2024
  • Dizer que “é possível rodar um BitNet 100B” não significa que o modelo exista, mas sim que o framework de inferência é viável

    • Na prática, parece que usaram um modelo fictício
      Mesmo pesquisando por “1-bit 100b model”, não há nenhum modelo disponível para download
  • A qualidade da saída do modelo é mais parecida com um balbucio nível GPT-2, repetindo os mesmos parágrafos
    Ele até reutiliza continuamente citações falsas como (Jenkins, 2010)

    • Ainda assim, esta é uma versão de pesquisa de um modelo base de 3B parâmetros com 2 anos de idade, treinado com apenas 100B tokens
  • O título induz ao erro
    Na prática, não é um modelo 100B treinado, mas um framework de inferência capaz de lidar com isso
    Eu rodo um modelo quantizado de 70B em um M2 Max 96GB com llama.cpp + LiteLLM, e o gargalo é a largura de banda de memória
    A abordagem de 1,58 bit tem uma estrutura que troca multiplicação de matrizes por soma, então no CPU ela tem um padrão de computação fundamentalmente diferente
    Se der para rodar um modelo de classe 100B em um único núcleo de CPU a 5~7 tokens por segundo, isso será um ponto de virada para a inferência on-device
    O framework está pronto; agora falta alguém realmente treinar o modelo

    • Se a Microsoft não treinou ela mesma um modelo durante 2 anos, acho difícil aceitar suas alegações sem questionar
    • Dizem que é um “modelo novo”, mas os pesos no Hugging Face foram publicados há 11 meses e têm cerca de 2B parâmetros
      O resultado prático é fraco para tanto marketing
    • Operações de 2 bits são muito baratas de implementar em hardware, então com um chip dedicado seria possível fazer inferência poderosa sem GPU
      O treinamento ainda exigiria GPU, mas o hardware de inferência poderia ser muito mais simples
    • Uma velocidade de 5~7 tokens por segundo é mais lenta do que a velocidade real de leitura
      Já usei um modelo que gerava 7 tokens/s, e a sensação era de frustração, como andar atrás de alguém muito lento
      Em ambiente local, o ideal é mirar em pelo menos 10 tokens/s
    • Tenho dúvidas sobre a afirmação de que “o perfil computacional no CPU é fundamentalmente diferente”
      As instruções modernas de FMA (Fused Multiply-Add) em CPUs têm uma vazão quase igual à de somas simples
  • Fico curioso para saber quando os PCs com NPU vão começar a entregar resultados de verdade
    A AMD está tendo bons resultados com kernels híbridos de inferência NPU/iGPU
    Se modelos grandes rodarem em NPUs, a eficiência energética deve ser muito melhor do que em CPUs

    • Recentemente rodei o Whisper da OpenAI na CPU e depois testei uma versão otimizada para Intel NPU; foi 6 vezes mais rápido e muito mais silencioso
      Desde então virei fã de NPU. Claro, não é nível RTX 5090, mas é muito mais eficiente que CPU
    • Já é possível rodar LLMs pequenos na NPU do SBC Rockchip RK3588
      O ecossistema de software ainda é instável, mas funciona com uso quase zero de CPU/GPU
    • Ainda assim, tenho dúvidas se a NPU é realmente tão poderosa assim
      Eu entendia que elas eram projetadas com foco em baixo consumo de energia