SkyPilot : un cadre open source pour exécuter efficacement des tâches d'IA et de traitement par lots dans n'importe quel nuage.
Introduction générale
SkyPilot est un framework open source initié par le Sky Computing Lab de l'Université de Californie, Berkeley, conçu pour aider les utilisateurs à exécuter efficacement des tâches d'IA et de traitement par lots sur n'importe quelle infrastructure cloud. Prenant en charge plus de 14 services cloud (dont AWS, GCP, Azure, etc.) et Kubernetes, SkyPilot offre une interface d'exécution unifiée, des économies significatives et une haute disponibilité du GPU. Il est configuré via une simple API YAML ou Python qui permet aux utilisateurs de déployer des tâches sur le cloud sans modifier le code, en sélectionnant automatiquement les ressources optimales et en réalisant des tâches de traitement par lots. SkyPilot permet aux utilisateurs de déployer des tâches dans le nuage sans modifier le code, en sélectionnant automatiquement les ressources optimales et en assurant la tolérance aux pannes. Depuis son lancement en 2022, le projet a attiré plus d'un million de téléchargements et plus de 7 000 étoiles sur GitHub. Il est largement utilisé pour l'apprentissage automatique, l'ajustement des hyperparamètres et la bio-informatique.

Liste des fonctions
- Déploiement de missions multi-cloudLa solution de gestion de l'exécution des tâches sur plus de 14 clouds tels que AWS, GCP, Azure et Kubernetes, ce qui permet d'éviter le verrouillage d'un seul fournisseur de clouds.
- Optimisation des coûtsLe système de gestion de l'information de l'entreprise : Il sélectionne automatiquement la région ou l'instance cloud la moins chère (par exemple, les instances à la demande ou Spot), ce qui permet de réaliser des économies de l'ordre de 3 à 6,5 fois.
- Support GPU/TPULes ressources GPU (par exemple, NVIDIA A100) et TPU sont planifiées et gérées de manière transparente afin d'améliorer l'efficacité des calculs.
- Récupération automatique des erreursLe système d'information sur les nuages : Il bascule automatiquement vers d'autres nuages ou régions en cas de capacité insuffisante ou de préemption, ce qui garantit que les tâches ne sont pas interrompues.
- Synchronisation des codes et des donnéesLes services d'assistance à la clientèle : synchroniser automatiquement le code et les données locales avec le cluster en nuage afin de simplifier le processus de déploiement.
- Gestion de la file d'attente des tâchesLa technologie de l'information et de la communication (TIC) : elle prend en charge des tâches massivement concurrentes (par exemple, plus de 2000 tâches) pour des scénarios tels que l'ajustement d'hyperparamètres.
- Déploiement de services (SkyServe)La solution de gestion de l'information : elle prend en charge le protocole HTTPS et les politiques d'équilibrage de la charge pour faciliter le déploiement de services de modèles d'intelligence artificielle.
- Prise en charge des instances réservéesLes ressources sur site, telles que les blocs de capacité AWS, le planificateur dynamique de charge de travail GCP et bien d'autres encore.
Utiliser l'aide
SkyPilot est facile à installer et à utiliser pour les développeurs, les chercheurs et les utilisateurs professionnels. Vous trouverez ci-dessous une description détaillée de l'installation, de la configuration et de l'utilisation des principales fonctions de SkyPilot.
Processus d'installation
- Préparation de l'environnement
Assurez-vous que Python 3.8 ou une version plus récente est installé localement et que vous disposez de l'extensionpip
Outils de gestion des paquets. Il est recommandé d'utiliser un environnement virtuel pour éviter les conflits de dépendance :python3 -m venv skypilot_env source skypilot_env/bin/activate
- Installation de SkyPilot
faire passer (un projet de loi, une inspection, etc.)pip
Installer la dernière version :pip install -U "skypilot[all]"
Parmi ceux-ci
[all]
Indique que toutes les dépendances supportées par le nuage sont installées. Si seul un nuage spécifique (par exemple AWS) est requis, remplacez parskypilot[aws]
. - Authentification dans le nuage
Configurez les informations d'identification pour le nuage cible. Prenons l'exemple d'AWS :- Installez le CLI AWS :
pip install awscli
- Configurer les informations d'identification :
aws configure
Saisissez la clé d'accès et la clé secrète.
Pour d'autres nuages (par exemple GCP, Azure), reportez-vous à la documentation officielle pour réaliser une configuration similaire.
- Installez le CLI AWS :
- Vérifier l'installation
Exécutez la commande suivante pour vérifier si l'installation a réussi :sky check
La sortie affiche l'état des services en nuage activés.
Principales fonctions
1. création de profils de mission
SkyPilot utilise des fichiers YAML pour définir les tâches. Pour entraîner un modèle PyTorch, par exemple, créez un fichier train.yaml
: :
resources:
accelerators: A100:1 # 使用 1 个 A100 GPU
num_nodes: 1 # 单节点
workdir: ~/my_project # 同步本地项目目录
setup: | # 安装依赖
pip install torch torchvision
run: | # 运行任务
python main.py --epochs 10
resources
Spécifier les ressources de calcul, telles que le type et le nombre de GPU.workdir
Catalogue de codes locaux avec synchronisation automatique vers le nuage.setup
Les commandes de préparation avant l'exécution de la procédure.run
Commandement de l'exécution de la mission.
2. lancement du mandat
S'exécute dans le terminal :
sky launch -c my-cluster train.yaml
-c my-cluster
La gestion de l'information est facilitée par l'attribution d'un nom à chaque groupe.- SkyPilot sélectionne automatiquement la ressource cloud optimale et lance la tâche.
3. consulter le statut du mandat
Vérifier l'état de la grappe :
sky status
Affiche tous les clusters en cours d'exécution et leur utilisation des ressources.
4. l'optimisation des coûts et les exemples Spot
Utiliser les instances Spot pour réduire les coûts :
sky launch -c my-spot-cluster train.yaml --use-spot
SkyPilot gère automatiquement les pannes de l'instance Spot et reprend les tâches.
5. les services de déploiement (SkyServe)
Pour illustrer le déploiement d'un modèle LLaMA, créez le fichier serve.yaml
: :
resources:
accelerators: A100:1
service:
replica: 2 # 2 个副本
ports: 8080 # 服务端口
run: |
python serve.py --model llama
Démarrer le service :
sky serve up serve.yaml -n llama-service
Accédez au point de terminaison HTTPS généré pour utiliser le service.
6. les missions massives simultanées
Exécution de plus de 2000 tâches (par exemple, réglage des hyperparamètres) :
sky jobs launch -c my-jobs train.yaml --num-jobs 2000
SkyPilot alloue automatiquement les ressources et gère les files d'attente.
Fonctions vedettes
Commutation multi-cloud
Si A100 n'est pas disponible sur AWS, indiquez un autre nuage :
sky launch -c my-cluster train.yaml --cloud gcp
Ou laissez SkyPilot sélectionner automatiquement le nuage le moins cher :
sky launch -c my-cluster train.yaml --cloud cheapest
Planification GPU
Voir les ressources GPU disponibles :
sky show-gpus
Adaptation dynamique à la demande resources
a fait mouche accelerators
Paramètres.
Journalisation et débogage
Visualiser les journaux des tâches en temps réel :
sky logs my-cluster
Activer le mode débogage :
export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml
mise en garde
- Sécurité des données d'identificationLes fichiers d'informations d'identification du nuage (p. ex.
~/.aws
) correctement afin d'éviter les fuites. - Libération des ressourcesLa tâche est terminée : arrêtez manuellement le cluster lorsque la tâche est terminée :
sky down my-cluster
- Soutien à la documentationPour une utilisation plus avancée, se référer à la documentation officielle de SkyPilot.
Grâce à ces étapes, les utilisateurs peuvent rapidement commencer à utiliser SkyPilot et exécuter des tâches AI et batch de manière efficace.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...