Ferramenta em C++ que distribui a inferência de LLM entre dispositivos domésticos conectados por Ethernet para acelerar a geração.
tairov/llama2.mojo
Inferência de transformers no estilo Llama 2, escrita em Mojo puro em um único arquivo, com vetorização SIMD e multithreading.
- Estrelas
- 2,128
- Forks
- 139
- Issues abertas
- 0
- Último commit
- mês passado
O que é?
llama2.mojo executa inferência em modelos pequenos com arquitetura Llama inteiramente em Mojo, sem depender do runtime do Python durante a inferência. É uma portabilidade do llama2.py anterior do autor e se organiza em torno das primitivas SIMD e de vetorização do Mojo, com um pool de workers baseado em parallelize para execução multithread.
O projeto carrega os modelos stories de Karpathy (de 260K a 110M de parâmetros) e o TinyLlama-1.1B-Chat. Os usuários informam um arquivo de checkpoint, um arquivo de tokenizer, um prompt e opções de amostragem, como temperatura, número de etapas, seed e quantidade de workers. O README traz tabelas de benchmark que comparam o throughput ao do llama2.c, llama.cpp e llama2.py em máquinas Apple M1 Max e x86.
O código usa a licença MIT e requer o compilador Mojo e o pacote MAX, que fornece a função parallelize.
Recursos principais
- 01Executa modelos com arquitetura Llama 2 em um único arquivo-fonte Mojo.
- 02Usa primitivas SIMD e de vetorização em operações de matriz.
- 03Oferece suporte à inferência multithread com número configurável de workers.
- 04Carrega checkpoints stories de 260K a 110M e o TinyLlama-1.1B-Chat.
- 05Disponibiliza opções de linha de comando para prompt, temperatura, seed e número de etapas.
Casos de uso
- Estudar como a passagem forward de um transformer se traduz em código SIMD e para CPUs multicore.
- Experimentar checkpoints pequenos do Llama em uma CPU local.
- Comparar implementações em diferentes linguagens da mesma carga de trabalho de inferência.
- Aprender Mojo com um programa numérico completo e fácil de ler.
Início rápido
- 1
Instale o compilador Mojo e o MAX com uv
uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" - 2
Clone o repositório
git clone https://github.com/tairov/llama2.mojo.git - 3
Baixe o modelo stories15M
wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin - 4
Execute o modelo
mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
Antes de usar
- É necessário ter um compilador C no host para vincular os executáveis Mojo.
- Depende do toolchain Mojo 1.1 e do MAX, que são específicos de cada versão.
Em coleções
Tópicos
Perguntas frequentes
- O que é llama2.mojo?
- Inferência de transformers no estilo Llama 2, escrita em Mojo puro em um único arquivo, com vetorização SIMD e multithreading. llama2.mojo executa inferência em modelos pequenos com arquitetura Llama inteiramente em Mojo, sem depender do runtime do Python durante a inferência. É uma portabilidade do llama2.py anterior do autor e se organiza em torno das primitivas SIMD e de vetorização do Mojo, com um pool de workers baseado em parallelize para execução multithread.
- llama2.mojo é gratuito? Qual é a licença?
- llama2.mojo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- llama2.mojo ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de llama2.mojo foi em 30 de set. de 2026.
- Para que posso usar llama2.mojo?
- Estudar como a passagem forward de um transformer se traduz em código SIMD e para CPUs multicore. Experimentar checkpoints pequenos do Llama em uma CPU local. Comparar implementações em diferentes linguagens da mesma carga de trabalho de inferência. Aprender Mojo com um programa numérico completo e fácil de ler.
- Como instalar llama2.mojo?
- Instale o compilador Mojo e o MAX com uv: uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" Clone o repositório: git clone https://github.com/tairov/llama2.mojo.git Baixe o modelo stories15M: wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin Execute o modelo: mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
- Onde consigo llama2.mojo?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tairov/llama2.mojo
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um mecanismo de inferência em C99 que executa o modelo Kimi K3, com 2,78 trilhões de parâmetros, em uma única CPU, carregando especialistas do disco sem GPU nem BLAS.
Um mecanismo de inferência C++ leve e independente para executar modelos Gemma do Google na CPU.
Fork do llama.cpp focado em acelerar a inferência em CPU, com tipos extras de quantização e recursos para executar LLMs GGUF localmente.
Um mecanismo de inferência de LLM de alto desempenho da Alibaba, usado em diversas unidades de negócio da empresa para servir grandes modelos de linguagem.
Simulador de alta fidelidade para sistemas de inferência de LLMs, que ajuda a estudar o desempenho, planejar implantações e testar estratégias de escalonamento sem GPUs.