Pular para o conteúdo

SkyPilot - Cheatsheet de Execução de Workloads de IA em Qualquer Nuvem

SkyPilot - Cheatsheet de Execução de Workloads de IA em Qualquer Nuvem

SkyPilot executa trabalhos de IA e batch em qualquer nuvem ou cluster Kubernetes a partir de uma única definição YAML. Seu valor central para trabalho LLM é econômico: disponibilidade de GPU e preço variam muito entre provedores e regiões, e SkyPilot encontra automaticamente a capacidade mais barata disponível que atende seus requisitos, fornece, sincroniza seu código, executa o trabalho e desativa tudo. Também lida com preempção de instância spot com recuperação automática, que torna GPUs baratas interruptíveis práticas para execuções de treinamento longo.

Instalação

MétodoComando
pippip install "skypilot[all]"
Nuvens específicaspip install "skypilot[aws,gcp,kubernetes]"
Verificar credenciaissky check
Verificarsky --version

sky check relata quais nuvens você tem credenciais de trabalho para — SkyPilot apenas considera aquelas.

Definindo uma Tarefa

# 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
CampoPropósito
resources.acceleratorsTipo e contagem de GPU (A100:8, H100:4)
use_spotUse instâncias interruptíveis
any_of / orderedNuvens/regiões candidatas
workdirDir local sincronizado para o cluster
setupExecuta uma vez por cluster
runO trabalho real
num_nodesTreinamento multi-node

Comandos Centrais

ComandoDescrição
sky launch -c mycluster train.yamlFornece e executa
sky exec mycluster train.yamlExecuta novamente em um cluster existente
sky statusLista clusters e custos
sky logs myclusterFluxo de logs de trabalho
sky queue myclusterMostra a fila de trabalho
sky down myclusterTermina (pare de pagar)
sky stop myclusterPara mas mantém o disco

Trabalhos Gerenciados (Spot com Recuperação)

# Longa execução de treinamento em instâncias spot, auto-recuperada em preempção
sky jobs launch -n llama-sft train.yaml
ComandoPropósito
sky jobs launchSubmete um trabalho gerenciado
sky jobs queueLista trabalhos gerenciados
sky jobs logs -n NAMERastreie logs
sky jobs cancel -n NAMECancela

Trabalhos gerenciados são o recurso que torna GPUs spot usáveis para treinamento: em preempção SkyPilot reproveiciona em outro lugar e retoma a partir de seu checkpoint, então uma execução multi-dia sobrevive interrupções.

Otimização de Custo

MecanismoEfeito
Busca de nuvem cruzadaPega a opção mais barata que corresponde
use_spot: trueFrequentemente 60-90% mais barato
sky show-gpusPreços/disponibilidade atuais por nuvem
Autostopsky autostop -i 10 mycluster termina clusters ociosos
sky downO hábito mais importante — GPUs ociosas são o desperdício principal
# Qual capacidade de A100 existe e a que preço?
sky show-gpus A100

Servindo Modelos

# 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 adiciona réplicas, health checks e autoscaling entre nuvens — útil para servir com vLLM nas GPUs mais baratas disponíveis.

Backend de Kubernetes

CapacidadeNota
Clusters existentescloud: kubernetes alvo seu próprio K8s
MistoCombine K8s on-prem com cloud burst
Agendamento de GPUUsa recursos padrão de GPU de K8s
Sem credenciais de nuvem necessáriasPara uso puro on-prem

SkyPilot vs Alternativas

AspectoSkyPilotRayCloud-native (SageMaker/Vertex)
Multi-nuvemRecurso principalPossível, manualÚnico vendor
Recuperação de spotBuilt-inManualVaria
Lock-inNenhum (YAML simples)FrameworkAlto
Melhor paraGPUs mais baratos em qualquer lugarApps Python distribuídoIntegração profunda single-cloud

Pareia com stacks de treinamento como Axolotl, TorchTitan, e servindo via vLLM.

Recursos