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.
Últimos recursos sobre IAActualizado hace 9 meses Círculo de intercambio de inteligencia artificial 25.8K 00
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.

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
- 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.
- 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
- Proyecto de clonación:
Función Flujo de operaciones
- 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) en
http://localhost:52415
.
- Equipo 1:
- 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?"
- Usa el comando:
- Ejecute el ejemplo en varios dispositivos macOS:
- Almacenamiento de modelos::
- Por defecto, los modelos se almacenan en la carpeta
~/.cache/huggingface/hub
. - Esto puede hacerse configurando la variable de entorno
HF_HOME
para cambiar la ubicación de almacenamiento del modelo.
- Por defecto, los modelos se almacenan en la carpeta
- ajustar los componentes durante las pruebas::
- Uso de variables de entorno
DEBUG
(0-9) Activar el registro de depuración:DEBUG=9 exo
- Para el motor de inferencia tinygrad, utilice un indicador de depuración independiente
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- Uso de variables de entorno
- Código de formato::
- utilizar
yapf
Código de formato:- Requisitos de formato de la instalación:
pip3 install -e '.[formatting]'
- Ejecute el script de formateo:
python3 format.py ./exo
- Requisitos de formato de la instalación:
- utilizar
Utilización
- Lanzamiento EXO::
exo
EXO descubrirá y se conectará automáticamente a otros dispositivos sin necesidad de configuración adicional.
- modelo operativo::
- Utiliza el modelo por defecto:
exo run llama-3.2-3b
- Consejos personalizados:
exo run llama-3.2-3b --prompt "EXO的意义是什么?"
- 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
}'
- Enviar solicitud:
optimización del rendimiento
- usuarios de macOS::
- Actualiza a la última versión de macOS.
- estar en movimiento
./configure_mlx.sh
Optimiza 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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...