EXO : Exécution de grappes d'IA distribuées à l'aide d'appareils domestiques inactifs, prise en charge de plusieurs moteurs d'inférence et découverte automatisée d'appareils.
Introduction générale
Exo est un projet open source qui vise à faire fonctionner sa propre grappe d'IA à l'aide d'appareils courants (iPhone, iPad, Android, Mac, Linux, etc.). Grâce au partitionnement dynamique des modèles et à la découverte automatisée des appareils, Exo est capable d'unifier plusieurs appareils en un seul GPU puissant qui prend en charge plusieurs modèles tels que LLaMA, Mistral, LlaVA, Qwen et Deepseek. Exo fournit également une API compatible avec ChatGPT qui permet aux utilisateurs d'exécuter facilement des modèles sur leur propre matériel.

Liste des fonctions
- Large soutien du modèleLe logiciel est compatible avec une large gamme de modèles tels que LLaMA, Mistral, LlaVA, Qwen et Deepseek.
- Séparation dynamique des modèlesOptimiser le partitionnement du modèle en fonction de la topologie actuelle du réseau et des ressources de l'appareil.
- Découverte automatisée des appareils:自动发现其他设备,无需手动配置。
- API compatible avec ChatGPT: Fournit une API compatible avec ChatGPT pour faciliter l'exécution des modèles sur votre propre matériel.
- égalité des équipementsLes appareils sont reliés entre eux par une connexion point à point et n'utilisent pas d'architecture maître-esclave.
- Stratégies de partitionnement multiplesLe système d'information sur la santé (SIS) permet d'appliquer diverses stratégies de partitionnement, telles que le partitionnement pondéré en fonction de la mémoire en anneau.
Utiliser l'aide
Utiliser l'aide
Processus d'installation
- préliminaire: :
- Assurez-vous que la version de Python est >= 3.12.0.
- Si vous utilisez Linux et prenez en charge les GPU NVIDIA, installez les pilotes NVIDIA, le kit d'outils CUDA et la bibliothèque cuDNN.
- Installation à partir de la source: :
- Projet de clonage :
git clone https://github.com/exo-explore/exo.git
- Accédez au catalogue de projets :
cd exo
- Installer la dépendance :
pip install -e .
- Ou utilisez un environnement virtuel pour l'installer :
source install.sh
- Projet de clonage :
Fonction Opération Déroulement
- modèle opérationnel: :
- Exécutez l'exemple sur plusieurs appareils macOS :
- Équipement 1 :
exo
- Équipement 2 :
exo
- Exo découvre automatiquement d'autres appareils et lance une interface Web de type ChatGPT (alimentée par tinygrad tinychat) à l'adresse suivante
http://localhost:52415
.
- Équipement 1 :
- Exécutez l'exemple sur un seul appareil :
- Utilisez la commande :
exo run llama-3.2-3b
- Utiliser une invite personnalisée :
exo run llama-3.2-3b --prompt "What is the meaning of exo?"
- Utilisez la commande :
- Exécutez l'exemple sur plusieurs appareils macOS :
- Stockage de modèles: :
- Par défaut, les modèles sont stockés dans le répertoire
~/.cache/huggingface/hub
. - Pour ce faire, il suffit de définir la variable d'environnement
HF_HOME
pour modifier l'emplacement de stockage du modèle.
- Par défaut, les modèles sont stockés dans le répertoire
- ajuster les composants pendant les essais: :
- Utilisation des variables d'environnement
DEBUG
(0-9) Activation de la journalisation de débogage :DEBUG=9 exo
- Pour le moteur d'inférence tinygrad, utilisez un drapeau de débogage distinct
TINYGRAD_DEBUG
(1-6) :TINYGRAD_DEBUG=2 exo
- Utilisation des variables d'environnement
- Code de formatage: :
- utiliser
yapf
Code de formatage :- Exigences en matière de formatage de l'installation :
pip3 install -e '.[formatting]'
- Exécutez le script de formatage :
python3 format.py ./exo
- Exigences en matière de formatage de l'installation :
- utiliser
Utilisation
- Lancer EXO: :
exo
L'EXO découvrira et se connectera automatiquement à d'autres appareils sans configuration supplémentaire.
- modèle opérationnel: :
- Utiliser le modèle par défaut :
exo run llama-3.2-3b
- Conseils personnalisés :
exo run llama-3.2-3b --prompt "EXO的意义是什么?"
- Exemples d'utilisation de l'API: :
- Envoyer une demande :
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
}'
- Envoyer une demande :
l'optimisation des performances
- Utilisateurs de macOS: :
- Passez à la dernière version de macOS.
- être en mouvement
./configure_mlx.sh
Optimiser l'allocation de la mémoire du GPU.
problèmes courants
- Erreur SSLSur certaines versions de MacOS/Python, le certificat n'est pas installé correctement. Exécutez la commande suivante pour corriger le problème :
/Applications/Python 3.x/Install Certificates.command
- Journal de débogage: Activation de la journalisation de débogage :
DEBUG=9 exo
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...