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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.