Ir al contenido

SkyPilot - Ejecutar workloads de IA en cualquier cloud

SkyPilot - Ejecutar workloads de IA en cualquier cloud

SkyPilot ejecuta workloads de IA y batch en cualquier cloud o cluster Kubernetes desde una definición YAML única. Su valor central para trabajo de LLM es económico: la disponibilidad de GPU y precios varían salvajemente entre proveedores y regiones, y SkyPilot automáticamente encuentra la capacidad disponible más barata que cumple tus requisitos, la provisiona, sincroniza tu código, ejecuta el trabajo y lo desactiva. También maneja preemption de spot instances con recuperación automática, lo cual hace GPUs baratas interruptibles prácticas para ejecuciones de entrenamiento largas.

Instalación

MétodoComando
pippip install "skypilot[all]"
Clouds específicospip install "skypilot[aws,gcp,kubernetes]"
Checar credencialessky check
Verificarsky --version

sky check reporta qué clouds tienes credenciales funcionando — SkyPilot solo considera esos.

Definiendo una tarea

# 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 de GPU y conteo (A100:8, H100:4)
use_spotUsar instancias interruptibles
any_of / orderedClouds/regiones candidatas
workdirDirectorio local sincronizado al cluster
setupEjecutar una vez por cluster
runEl trabajo actual
num_nodesEntrenamiento multi-nodo

Comandos principales

ComandoDescripción
sky launch -c mycluster train.yamlProvisionar y ejecutar
sky exec mycluster train.yamlEjecutar de nuevo en un cluster existente
sky statusListar clusters y costos
sky logs myclusterStream logs del trabajo
sky queue myclusterMostrar la cola de trabajos
sky down myclusterTerminar (dejar de pagar)
sky stop myclusterParar pero mantener el disco

Trabajos gestionados (spot con recuperación)

# Ejecución de entrenamiento larga en spot instances, recuperada automáticamente en preemption
sky jobs launch -n llama-sft train.yaml
ComandoPropósito
sky jobs launchEnviar un trabajo gestionado
sky jobs queueListar trabajos gestionados
sky jobs logs -n NAMETail logs
sky jobs cancel -n NAMECancelar

Los trabajos gestionados son la característica que hace las GPUs spot utilizables para entrenamiento: en preemption SkyPilot re-provisiona en otro lugar y reanuda desde tu checkpoint, para que una ejecución multi-día sobreviva interrupciones.

Optimización de costo

MecanismoEfecto
Búsqueda multi-cloudElige la opción compatible más barata
use_spot: trueFrecuentemente 60–90% más barata
sky show-gpusPrecios/disponibilidad actual por cloud
Autostopsky autostop -i 10 mycluster termina clusters inactivos
sky downEl hábito más importante — GPUs inactivas son el desperdicio principal
# ¿Qué capacidad A100 existe y a qué precio?
sky show-gpus A100

Sirviendo 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 añade replicas, health checks y autoscaling entre clouds — útil para servir con vLLM en las GPUs más baratas disponibles.

Backend de Kubernetes

CapacidadNota
Clusters existentescloud: kubernetes apunta a tu propio K8s
MixtoCombinar K8s on-prem con cloud burst
GPU schedulingUsa recursos GPU estándar de K8s
Sin credenciales cloudPara uso puro on-prem

SkyPilot vs alternativas

AspectoSkyPilotRayCloud-native (SageMaker/Vertex)
Multi-cloudCaracterística centralPosible, manualVendor único
Recuperación de spotBuilt-inManualVaría
Lock-inNinguno (YAML plano)FrameworkAlto
Mejor paraGPUs más baratas en cualquier lugarAplicaciones Python distribuidasIntegración profunda single-cloud

Se empareja con stacks de entrenamiento como Axolotl, TorchTitan y servicio vía vLLM.

Recursos