Repolode
b4rtaz

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. 1

    Instala Python 3 y un compilador de C++, y luego clona el repositorio

  2. 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