Maison >Périphériques technologiques >IA >trop cool! Les anciens appareils iPhone, iPad et MacBook forment un cluster hétérogène et peuvent exécuter Llama 3

trop cool! Les anciens appareils iPhone, iPad et MacBook forment un cluster hétérogène et peuvent exécuter Llama 3

PHPz
PHPzoriginal
2024-07-19 05:09:59998parcourir
Si vous avez du matériel inutilisé, vous voudrez peut-être l'essayer.

Cette fois, l'appareil matériel dans votre main peut également faire travailler ses muscles dans le domaine de l'IA.

En combinant iPhone, iPad et Macbook, vous pouvez assembler une « solution d'inférence de cluster hétérogène » puis exécuter le modèle Llama3 en douceur.

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

Il convient de mentionner que ce cluster hétérogène peut être un système Windows, Linux ou iOS, et que la prise en charge d'Android sera bientôt disponible. Le cluster hétérogène est en cours d'exécution.

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3Selon l'auteur du projet @evilsocket, ce cluster hétérogène comprend l'iPhone 15 Pro Max, l'iPad Pro, le MacBook Pro (M1 Max), NVIDIA GeForce 3080, 2x NVIDIA Titan X Pascal. Tout le code a été téléchargé sur GitHub. Voyant cela, les internautes ont exprimé que ce vieil homme n'est effectivement pas simple.

Cependant, certains internautes commencent à s'inquiéter de la consommation d'énergie, quelle que soit la vitesse, la facture d'électricité ne peut pas être payée. Le déplacement de données dans les deux sens entraîne trop de pertes.

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

Introduction au projet

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

L'implémentation des fonctions ci-dessus est indissociable d'un framework Rust appelé Cake. Cake peut réaliser l'inférence distribuée de grands modèles (tels que Llama3) et est conçu pour combiner du matériel grand public dans des clusters hétérogènes. Le matériel grand public utilise une variété de systèmes d'exploitation, notamment : iOS, Android, macOS, Linux et Windows. pour que l’IA soit plus accessible.

Adresse du projet : https://github.com/evilsocket/cake

L'idée principale de Cake est de partager des blocs de transformateur sur plusieurs appareils pour pouvoir exécuter des inférences sur des modèles qui ne rentrent généralement pas dans la mémoire GPU d'un seul appareil. L'inférence sur des blocs de transformateur consécutifs sur le même thread de travail est groupée pour minimiser les retards causés par le transfert de données. 太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

Cake prend actuellement en charge les systèmes et appareils suivants :

Compile

太酷了!iPhone、iPad、MacBook老旧设备组成异构集群,能跑Llama 3

Après avoir installé Rust, exécutez le code suivant :

cargo build --release

Si l'utilisateur souhaite générer des liaisons iOS dans l'application, vous pouvez continuer comme suit Opération décrite :

make ios

Utilisez

pour exécuter le nœud de travail :

cake-cli --model /path/to/Meta-Llama-3-8B \ # model path, read below on how to optimize model size for workers --mode worker \# run as worker --name worker0 \ # worker name in topology file --topology topology.yml \# topology         --address 0.0.0.0:10128            # bind address

Exécutez le nœud maître :

cake-cli --model /path/to/Meta-Llama-3-8B \         --topology topology.yml
Le topology.yml détermine quelles couches sont servies par quel travailleur :

linux_server_1:host: 'linux_server.host:10128'description: 'NVIDIA Titan X Pascal (12GB)'layers:- 'model.layers.0-5'linux_server_2:host: 'linux_server2.host:10128'description: 'NVIDIA GeForce 3080 (10GB)'layers:- 'model.layers.6-16'iphone:host: 'iphone.host:10128'description: 'iPhone 15 Pro Max'layers:- 'model.layers.17'ipad:host: 'ipad.host:10128'description: 'iPad'layers:- 'model.layers.18-19'macbook:host: 'macbook.host:10128'description: 'M1 Max'layers:    - 'model.layers.20-31'
À propos des problèmes d'optimisation de la mémoire et de l'espace disque. Les utilisateurs peuvent souhaiter fournir aux utilisateurs uniquement les données réellement nécessaires dans le modèle, plutôt que l'intégralité du dossier. Dans ce cas, cake-split-model peut être utilisé. Par exemple, pour générer une version plus petite de llama3 safetensors, vous pouvez utiliser le code suivant :

cake-split-model --model-path path/to/Meta-Llama-3-8B \ # source model to split --topology path/to/topology.yml \# topology file                 --output output-folder-name

Lien de référence : https://x.com/tuturetom/status/1812654489972973643

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn