Plataforma de código abierto y cliente de Python que reúne capacidad de GPU y CPU disponible en varias máquinas en un único plano de control para ejecutar cargas de trabajo de IA.
b4rtaz/distributed-llama
Herramienta en C++ que distribuye la inferencia de LLM entre varios dispositivos domésticos conectados por Ethernet para acelerar la generación.
- Estrellas
- 3,115
- Forks
- 258
- Issues abiertos
- 48
- Último commit
- hace 11 días
¿Qué es?
Distributed Llama conecta varios equipos comunes, como dispositivos domésticos o placas Raspberry Pi, en un clúster para ejecutar modelos de lenguaje grandes. Un nodo raíz carga el modelo y los pesos, envía a cada nodo worker su fragmento de la red y sincroniza el estado, mientras los nodos worker procesan sus respectivas partes. Se utilizan paralelismo de tensores y sincronización de alta velocidad por Ethernet para que añadir dispositivos aumente la velocidad de inferencia.
El proyecto funciona en Linux, macOS y Windows, con optimizaciones para CPU ARM y x86_64 con AVX2. Incluye una configuración de un solo comando que descarga modelos compatibles de Llama, DeepSeek R1 Distill y Qwen 3 en cuantización Q40, además de un conversor para modelos de Hugging Face. Los comandos permiten comparar el rendimiento de inferencia, chatear desde la CLI, ejecutar un worker y poner en marcha un servidor API.
El tamaño del clúster se limita a 2^n nodos, y el número máximo de nodos depende de la cantidad de cabezas KV del modelo. Para la cuantización, solo se admiten q40 con tipo de búfer q80 y f32 con tipo de búfer f32. Las rutas experimentales de Vulkan y GPU se documentan por separado.
Funciones clave
- 01Distribuye el cálculo del modelo entre varios dispositivos mediante paralelismo de tensores.
- 02Sincroniza los nodos a través de Ethernet estándar.
- 03Funciona en Linux, macOS y Windows, con optimizaciones para ARM y x86_64 con AVX2.
- 04Ofrece chat por CLI, una herramienta para comparar el rendimiento de inferencia, un modo worker y un servidor API.
- 05Incluye una configuración de un solo comando para varios modelos de Llama, DeepSeek y Qwen 3.
Casos de uso
- Ejecutar un modelo Llama de clase 70B en varios equipos domésticos o mini PC.
- Experimentar con la inferencia de LLM en clústeres de Raspberry Pi.
- Ofrecer una API local compatible con OpenAI desde un pequeño grupo de equipos en una LAN.
Inicio rápido
- 1
Instala Python 3 y un compilador de C++, y luego clona el repositorio
- 2
Configura el nodo raíz con un solo comando (descarga el modelo y el tokenizador)
python launch.py llama3_2_1b_instruct_q40
Antes de usarlo
- El número de nodos debe ser 1, 2, 4 o 2^n, y el máximo es el número de cabezas KV del modelo.
- Solo se admiten modelos q40 con tipo de búfer q80 y modelos f32 con tipo de búfer f32.
- La compatibilidad con Vulkan es experimental.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es distributed-llama?
- Herramienta en C++ que distribuye la inferencia de LLM entre varios dispositivos domésticos conectados por Ethernet para acelerar la generación. Distributed Llama conecta varios equipos comunes, como dispositivos domésticos o placas Raspberry Pi, en un clúster para ejecutar modelos de lenguaje grandes. Un nodo raíz carga el modelo y los pesos, envía a cada nodo worker su fragmento de la red y sincroniza el estado, mientras los nodos worker procesan sus respectivas partes. Se utilizan paralelismo de tensores y sincronización de alta velocidad por Ethernet para que añadir dispositivos aumente la velocidad de inferencia.
- ¿distributed-llama es gratuito? ¿Qué licencia tiene?
- distributed-llama es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿distributed-llama sigue mantenido?
- Mantenimiento activo. El último commit de distributed-llama fue el 14 oct 2026.
- ¿Para qué puedo usar distributed-llama?
- Ejecutar un modelo Llama de clase 70B en varios equipos domésticos o mini PC. Experimentar con la inferencia de LLM en clústeres de Raspberry Pi. Ofrecer una API local compatible con OpenAI desde un pequeño grupo de equipos en una LAN.
- ¿Cómo se instala distributed-llama?
- Instala Python 3 y un compilador de C++, y luego clona el repositorio Configura el nodo raíz con un solo comando (descarga el modelo y el tokenizador): python launch.py llama3_2_1b_instruct_q40
- ¿Dónde consigo distributed-llama?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/b4rtaz/distributed-llama
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Motor de alto rendimiento y fácil de usar para inferencia y serving de LLM, con un servidor API compatible con OpenAI.
Receta para servir DeepSeek-V4.1-Flash-1017 (EXL3, 2.9 bpw) en dos NVIDIA DGX Sparks como API compatible con OpenAI, con una ventana de 1 M de tokens.
Registro de ejecución y benchmarking de DeepSeek-V4.1-Flash (552B MoE) en cuatro NVIDIA DGX Spark con TensorFold y vLLM, incluidos los scripts de lanzamiento y los resultados medidos.
Binding de React Native para ejecutar LLMs GGUF en el dispositivo en apps de iOS y Android con llama.cpp.
Toolkit de código abierto para optimizar e implementar modelos de deep learning para inferencia en CPU, GPU y NPU de Intel.