SkyPilot - Exécuter les Charges de Travail IA sur N’importe quel Cloud
SkyPilot exécute les charges de travail IA et batch sur n’importe quel cloud ou cluster Kubernetes à partir d’une seule définition YAML. Sa valeur centrale pour le travail LLM est économique : la disponibilité et la tarification des GPU varient énormément d’un fournisseur et d’une région à l’autre, et SkyPilot trouve automatiquement la capacité disponible la moins chère qui répond à vos exigences, la provisionne, synchronise votre code, exécute le travail et tout démonte. Il gère également la préemption d’instance spot avec récupération automatique, ce qui rend les GPU interruptibles bon marché pratiques pour les longs travaux d’entraînement.
Installation
| Méthode | Commande |
|---|
| pip | pip install "skypilot[all]" |
| Clouds spécifiques | pip install "skypilot[aws,gcp,kubernetes]" |
| Vérifier les credentials | sky check |
| Vérifier | sky --version |
sky check signale quels clouds ont des credentials fonctionnels — SkyPilot ne considère que ceux-ci.
Définition d’une Tâche
# train.yaml
resources:
accelerators: A100:8
use_spot: true
any_of:
- cloud: aws
- cloud: gcp
- cloud: kubernetes
num_nodes: 1
workdir: .
setup: |
pip install -r requirements.txt
run: |
torchrun --nproc_per_node=8 train.py --config configs/7b.yaml
| Champ | Objectif |
|---|
resources.accelerators | Type et nombre de GPU (A100:8, H100:4) |
use_spot | Utiliser les instances interruptibles |
any_of / ordered | Clouds/régions candidats |
workdir | Répertoire local synchronisé au cluster |
setup | Exécuter une fois par cluster |
run | Le travail réel |
num_nodes | Entraînement multi-nœud |
Commandes Principales
| Commande | Description |
|---|
sky launch -c mycluster train.yaml | Provisionner et exécuter |
sky exec mycluster train.yaml | Exécuter à nouveau sur un cluster existant |
sky status | Lister les clusters et les coûts |
sky logs mycluster | Diffuser les logs des travaux |
sky queue mycluster | Afficher la file d’attente des travaux |
sky down mycluster | Terminer (arrêter de payer) |
sky stop mycluster | Arrêter mais garder le disque |
Travaux Gérés (Spot avec Récupération)
# Long travail d'entraînement sur les instances spot, auto-récupéré en cas de préemption
sky jobs launch -n llama-sft train.yaml
| Commande | Objectif |
|---|
sky jobs launch | Soumettre un travail géré |
sky jobs queue | Lister les travaux gérés |
sky jobs logs -n NAME | Afficher les logs |
sky jobs cancel -n NAME | Annuler |
Les travaux gérés sont la fonctionnalité qui rend les GPU spot utilisables pour l’entraînement : en cas de préemption, SkyPilot reprovisionne ailleurs et reprend depuis votre point de contrôle, pour qu’un travail multi-jour survive aux interruptions.
Optimisation du Coût
| Mécanisme | Effet |
|---|
| Recherche inter-cloud | Choisit l’option la moins chère correspondante |
use_spot: true | Souvent 60–90% moins cher |
sky show-gpus | Prix/disponibilité actuels par cloud |
| Autostop | sky autostop -i 10 mycluster termine les clusters inactifs |
sky down | L’habitude la plus importante — les GPU inactifs sont le principal gaspillage |
# Quelle capacité A100 existe et à quel prix ?
sky show-gpus A100
Servir des Modèles
# serve.yaml
service:
readiness_probe: /v1/models
replicas: 2
resources:
accelerators: A100:1
ports: 8000
run: |
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
sky serve up -n llm-api serve.yaml
sky serve status
SkyServe ajoute les réplicas, les checks de santé et l’autoscaling sur les clouds — utile pour servir avec vLLM sur les GPU les moins chers disponibles.
Backend Kubernetes
| Capacité | Note |
|---|
| Clusters existants | cloud: kubernetes cible votre propre K8s |
| Mixte | Combiner K8s on-prem avec cloud burst |
| Planification GPU | Utilise les ressources GPU Kubernetes standard |
| Pas de credentials cloud | Pour l’utilisation on-prem pure |
SkyPilot vs Alternatives
| Aspect | SkyPilot | Ray | Cloud-native (SageMaker/Vertex) |
|---|
| Multi-cloud | Fonctionnalité centrale | Possible, manuel | Fournisseur unique |
| Récupération spot | Intégrée | Manuel | Varie |
| Enfermement | Aucun (YAML simple) | Framework | Élevé |
| Meilleur pour | GPU les moins chers partout | Apps Python distribuées | Intégration profonde mono-cloud |
S’associe à des piles d’entraînement comme Axolotl, TorchTitan et la mise à disposition via vLLM.
Ressources