Sobre o projeto

bitnet.cpp é o framework oficial de inferência para LLMs de 1 bit, como BitNet b1.58. Ele fornece um conjunto de kernels otimizados destinados a permitir inferência rápida e sem perdas de modelos de 1,58 bit em CPU e GPU, com suporte a NPU indicado como futuro. O projeto é baseado no framework llama.cpp, e seus kernels baseiam-se em métodos de tabela de consulta (lookup-table) pioneiros no T-MAC. Principais recursos descritos no README: - Inferência em CPU para modelos ternários/de 1 bit, com acelerações relatadas de 1,37x a 5,07x em CPUs ARM e 2,37x a 6,17x em CPUs x86 em comparação com modelos de precisão total, além de reduções de energia relatadas de 55,4%-70,0% (ARM) e 71,9%-82,2% (x86). - Capacidade de executar um modelo BitNet b1.58 de 100B em uma única CPU a velocidades descritas como comparáveis à leitura humana (5-7 tokens por segundo). - Kernel oficial de inferência em GPU lançado em maio de 2025. - Tipos de quantização incluindo I2_S e TL1, com suporte de kernel variando por modelo e arquitetura (x86 vs ARM). - Conversão de modelos de checkpoints .safetensors para GGUF por meio de um script auxiliar. - Utilitários de benchmark (e2e_benchmark.py) e um gerador de modelo fictício para layouts não suportados. - Modo de chat/conversação para modelos instruct. Os modelos oficiais em destaque incluem BitNet-b1.58-2B-4T (2,4B de parâmetros, treinado com 4T tokens), BitNet-embedding-0.6B e BitNet-embedding-270M. Modelos da comunidade listados como suportados incluem bitnet_b1_58-large, bitnet_b1_58-3B, Llama3-8B-1.58-100B-tokens e as famílias Falcon3 e Falcon-E. A instalação requer Python 3.10+, CMake 3.22+ e Clang 18+, sendo conda recomendado. As etapas de construção envolvem clonar o repositório recursivamente, instalar dependências Python, baixar um modelo e executar setup_env.py com um tipo de quantização escolhido. A inferência é executada através de run_inference.py com opções para prompt, contagem de tokens, threads, tamanho do contexto, temperatura e modo de conversação. O README também inclui um FAQ cobrindo problemas comuns de construção, como erros de std::chrono no llama.cpp e configuração do clang dentro de um ambiente conda no Windows. O projeto é lançado sob a licença MIT.