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.

SkyPilot:在任何云端高效运行AI与批处理任务的开源框架

 

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

  1. 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'extension pip 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
  1. 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 par skypilot[aws].

  2. 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 configureSaisissez 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.
  3. 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
  • resourcesSpécifier les ressources de calcul, telles que le type et le nombre de GPU.
  • workdirCatalogue de codes locaux avec synchronisation automatique vers le nuage.
  • setupLes commandes de préparation avant l'exécution de la procédure.
  • runCommandement 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-clusterLa 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

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...