EXO: Ejecución de clústeres de IA distribuidos utilizando dispositivos domésticos inactivos, con soporte para múltiples motores de inferencia y descubrimiento automatizado de dispositivos.

Introducción general

Exo es un proyecto de código abierto cuyo objetivo es ejecutar su propio clúster de IA utilizando dispositivos de uso cotidiano (por ejemplo, iPhone, iPad, Android, Mac, Linux, etc.). Mediante la partición dinámica de modelos y el descubrimiento automatizado de dispositivos, Exo es capaz de unificar varios dispositivos en una única y potente GPU compatible con múltiples modelos como LLaMA, Mistral, LlaVA, Qwen y Deepseek.Exo también proporciona una API compatible con ChatGPT que permite a los usuarios ejecutar fácilmente modelos en su propio hardware.

EXO:利用闲置家用设备运行分布式AI集群,支持多种推理引擎和自动设备发现。

 

Lista de funciones

  • Amplio apoyo al modeloCompatible con una amplia gama de modelos como LLaMA, Mistral, LlaVA, Qwen y Deepseek.
  • Partición dinámica de modelosOptimización de la partición de modelos en función de la topología actual de la red y de los recursos de los dispositivos.
  • Detección automática de dispositivos: Descubre automáticamente otros dispositivos sin necesidad de configuración manual.
  • API compatible con ChatGPT: Proporciona una API compatible con ChatGPT que facilita la ejecución de modelos en su propio hardware.
  • igualdad de equiposLos dispositivos están conectados entre sí mediante una conexión punto a punto y no utilizan una arquitectura maestro-esclavo.
  • Múltiples estrategias de partición: Admite diversas estrategias de partición, como la partición ponderada de memoria en anillo.

 

Utilizar la ayuda

Utilizar la ayuda

Proceso de instalación

  1. preliminar::
    • Asegúrese de que la versión de Python es >= 3.12.0.
    • Si utiliza Linux y es compatible con GPU NVIDIA, instale los controladores NVIDIA, el kit de herramientas CUDA y la biblioteca cuDNN.
  2. Instalación desde el origen::
    • Proyecto de clonación:git clone https://github.com/exo-explore/exo.git
    • Vaya al catálogo de proyectos:cd exo
    • Instale la dependencia:pip install -e .
    • O utiliza un entorno virtual para instalarlo:source install.sh

Función Flujo de operaciones

  1. modelo operativo::
    • Ejecute el ejemplo en varios dispositivos macOS:
      • Equipo 1:exo
      • Equipamiento 2:exo
      • Exo descubre automáticamente otros dispositivos e inicia una interfaz de usuario web similar a ChatGPT (con tecnología tinygrad tinychat) enhttp://localhost:52415.
    • Ejecute el ejemplo en un único dispositivo:
      • Usa el comando:exo run llama-3.2-3b
      • Utilizar un indicador personalizado:exo run llama-3.2-3b --prompt "What is the meaning of exo?"
  2. Almacenamiento de modelos::
    • Por defecto, los modelos se almacenan en la carpeta~/.cache/huggingface/hub.
    • Esto puede hacerse configurando la variable de entornoHF_HOMEpara cambiar la ubicación de almacenamiento del modelo.
  3. ajustar los componentes durante las pruebas::
    • Uso de variables de entornoDEBUG(0-9) Activar el registro de depuración:DEBUG=9 exo
    • Para el motor de inferencia tinygrad, utilice un indicador de depuración independienteTINYGRAD_DEBUG(1-6):TINYGRAD_DEBUG=2 exo
  4. Código de formato::
    • utilizaryapfCódigo de formato:
      • Requisitos de formato de la instalación:pip3 install -e '.[formatting]'
      • Ejecute el script de formateo:python3 format.py ./exo

Utilización

  1. Lanzamiento EXO::
   exo

EXO descubrirá y se conectará automáticamente a otros dispositivos sin necesidad de configuración adicional.

  1. modelo operativo::
    • Utiliza el modelo por defecto:
     exo run llama-3.2-3b
    
    • Consejos personalizados:
     exo run llama-3.2-3b --prompt "EXO的意义是什么?"
    
  2. Ejemplos de uso de la API::
    • Enviar solicitud: bash
      curl http://localhost:52415/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
      "model": "llama-3.2-3b",
      "messages": [{"role": "user", "content": "EXO的意义是什么?"}],
      "temperature": 0.7
      }'

optimización del rendimiento

  • usuarios de macOS::
    • Actualiza a la última versión de macOS.
    • estar en movimiento./configure_mlx.shOptimiza la asignación de memoria a la GPU.

problemas comunes

  • Error SSLEn algunas versiones de MacOS/Python, el certificado no se instala correctamente. Ejecute el siguiente comando para solucionarlo:
  /Applications/Python 3.x/Install Certificates.command
  • Registro de depuraciónHabilita el registro de depuración:
  DEBUG=9 exo
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...