Repolode
b4rtaz

b4rtaz/distributed-llama

Ferramenta em C++ que distribui a inferência de LLM entre dispositivos domésticos conectados por Ethernet para acelerar a geração.

Estrelas
3,115
Forks
258
Issues abertas
48
Último commit
há 11 dias

O que é?

Distributed Llama conecta vários computadores comuns, como dispositivos domésticos ou placas Raspberry Pi, em um cluster para executar modelos de linguagem grandes. Um nó raiz carrega o modelo e os pesos, envia a cada worker sua parte da rede e sincroniza o estado, enquanto os nós worker processam suas próprias partes. O paralelismo de tensores e a sincronização de alta velocidade via Ethernet permitem que a adição de dispositivos aumente a velocidade da inferência.

O projeto funciona em Linux, macOS e Windows, com otimizações para CPUs ARM e x86_64 com AVX2. Ele oferece uma configuração com um único comando que baixa modelos compatíveis de Llama, DeepSeek R1 Distill e Qwen 3 em quantização Q40, além de incluir um conversor para modelos do Hugging Face. Há comandos para fazer benchmark da inferência, usar um chat via CLI, executar um worker e iniciar um servidor de API.

O tamanho do cluster é limitado a 2^n nós, e o número máximo de nós depende da quantidade de cabeças KV do modelo. Para quantização, são compatíveis apenas q40 com tipo de buffer q80 e f32 com tipo de buffer f32. Os caminhos experimentais com Vulkan e GPU estão documentados separadamente.

Recursos principais

  • 01Distribui a computação do modelo entre vários dispositivos usando paralelismo de tensores.
  • 02Sincroniza os nós por meio de Ethernet padrão.
  • 03Funciona em Linux, macOS e Windows, com otimizações para ARM e x86_64 com AVX2.
  • 04Oferece chat via CLI, benchmark de inferência, modo worker e servidor de API.
  • 05Oferece configuração com um único comando para vários modelos Llama, DeepSeek e Qwen 3.

Casos de uso

  • Executar um modelo Llama da classe 70B em vários computadores domésticos ou mini PCs.
  • Experimentar a inferência de LLM em clusters de Raspberry Pi.
  • Disponibilizar uma API local no estilo OpenAI a partir de um pequeno grupo de máquinas em uma LAN.

Início rápido

  1. 1

    Instale o Python 3 e um compilador C++ e, em seguida, clone o repositório

  2. 2

    Configure o nó raiz com um único comando (baixa o modelo e o tokenizador)

    python launch.py llama3_2_1b_instruct_q40

Antes de usar

  • A quantidade de nós deve ser 1, 2, 4 ou 2^n, e o máximo é a quantidade de cabeças KV do modelo.
  • São compatíveis apenas modelos q40 com tipo de buffer q80 e modelos f32 com tipo de buffer f32.
  • O suporte a Vulkan é experimental.

Em coleções

Tópicos

Perguntas frequentes

O que é distributed-llama?
Ferramenta em C++ que distribui a inferência de LLM entre dispositivos domésticos conectados por Ethernet para acelerar a geração. Distributed Llama conecta vários computadores comuns, como dispositivos domésticos ou placas Raspberry Pi, em um cluster para executar modelos de linguagem grandes. Um nó raiz carrega o modelo e os pesos, envia a cada worker sua parte da rede e sincroniza o estado, enquanto os nós worker processam suas próprias partes. O paralelismo de tensores e a sincronização de alta velocidade via Ethernet permitem que a adição de dispositivos aumente a velocidade da inferência.
distributed-llama é gratuito? Qual é a licença?
distributed-llama é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
distributed-llama ainda é mantido?
Manutenção ativa. O último commit de distributed-llama foi em 14 de out. de 2026.
Para que posso usar distributed-llama?
Executar um modelo Llama da classe 70B em vários computadores domésticos ou mini PCs. Experimentar a inferência de LLM em clusters de Raspberry Pi. Disponibilizar uma API local no estilo OpenAI a partir de um pequeno grupo de máquinas em uma LAN.
Como instalar distributed-llama?
Instale o Python 3 e um compilador C++ e, em seguida, clone o repositório Configure o nó raiz com um único comando (baixa o modelo e o tokenizador): python launch.py llama3_2_1b_instruct_q40
Onde consigo distributed-llama?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/b4rtaz/distributed-llama

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados