Salta ai contenuti

SkyPilot - Esegui Workload IA su Qualsiasi Cloud

SkyPilot - Esegui Workload IA su Qualsiasi Cloud Cheatsheet

SkyPilot esegue workload IA e batch su qualsiasi cloud o cluster Kubernetes da una singola definizione YAML. Il suo valore principale per il lavoro LLM è economico: la disponibilità e i prezzi delle GPU variano selvaggiamente tra provider e regioni, e SkyPilot trova automaticamente la capacità disponibile più economica che soddisfa i tuoi requisiti, la provisiona, sincronizza il tuo codice, esegue il lavoro e abbatte tutto. Gestisce anche preemption di istanze spot con ripristino automatico, che rende le GPU interrompibili economiche pratiche per lunghi run di training.

Installazione

MetodoComando
pippip install "skypilot[all]"
Cloud specificipip install "skypilot[aws,gcp,kubernetes]"
Controlla credenzialisky check
Verificasky --version

sky check riporta quali cloud hai credenziali di lavoro — SkyPilot considera solo quelli.

Definizione di Un Task

# 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
CampoScopo
resources.acceleratorsTipo e numero di GPU (A100:8, H100:4)
use_spotUsa istanze interrompibili
any_of / orderedCloud/regioni candidati
workdirDirectory locale sincronizzato al cluster
setupEsegui una volta per cluster
runIl lavoro effettivo
num_nodesTraining multi-nodo

Comandi Principali

ComandoDescrizione
sky launch -c mycluster train.yamlProvisiona ed esegui
sky exec mycluster train.yamlEsegui di nuovo su un cluster esistente
sky statusElenca cluster e costi
sky logs myclusterStream log del lavoro
sky queue myclusterMostra la coda del lavoro
sky down myclusterTermina (smetti di pagare)
sky stop myclusterFerma ma mantieni il disco

Lavori Gestiti (Spot con Ripristino)

# Lungo run di training su istanze spot, riprese automatiche su preemption
sky jobs launch -n llama-sft train.yaml
ComandoScopo
sky jobs launchSottoponi un lavoro gestito
sky jobs queueElenca lavori gestiti
sky jobs logs -n NAMETail dei log
sky jobs cancel -n NAMEAnnulla

I lavori gestiti sono la caratteristica che rendono le GPU spot utilizzabili per il training: su preemption SkyPilot re-provisiona altrove e riprende dal tuo checkpoint, in modo che un run di più giorni sopravviva agli interrupt.

Ottimizzazione dei Costi

MeccanismoEffetto
Ricerca cross-cloudSceglie l”opzione più economica corrispondente
use_spot: trueSpesso 60–90% più economico
sky show-gpusPrezzi/disponibilità attuali per cloud
Autostopsky autostop -i 10 mycluster termina cluster inattivi
sky downL”abitudine più importante — GPU inattive sono lo spreco principale
# Quale capacità A100 esiste e a quale prezzo?
sky show-gpus A100

Servizio di Modelli

# 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 aggiunge repliche, health check e autoscaling tra cloud — utile per servire con vLLM sulle GPU più economiche disponibili.

Backend Kubernetes

CapacitàNota
Cluster esistenticloud: kubernetes punta il tuo K8s
MistoCombina K8s on-prem con burst cloud
Scheduling GPUUsa risorse GPU K8s standard
Nessuna credenziale cloud richiestaPer uso puro on-prem

SkyPilot vs Alternative

AspettoSkyPilotRayCloud-native (SageMaker/Vertex)
Multi-cloudCaratteristica principalePossibile, manualeSingolo vendor
Ripristino spotBuilt-inManualeVaria
Lock-inNessuno (YAML semplice)FrameworkAlto
Migliore perGPU più economiche ovunqueApp Python distribuiteIntegrazione profonda di single-cloud

Si accoppia con stack di training come Axolotl, TorchTitan, e servizio via vLLM.

Risorse