[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KS2FZMFK2SXDPF86C1FQJH":3,"skill-same:01M6KS2FZMFK2SXDPF86C1FQJH":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":13,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6KS2FZMFK2SXDPF86C1FQJH","skypilot-multi-cloud-orchestration",null,"Multi-cloud orchestration for ML workloads with automatic cost optimization. Use when you need to run training or batch jobs across multiple clouds, leverage spot instances with auto-recovery, or optimize GPU costs across providers.","endman100\u002Fskill-router-nexus","endman100","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F31997019?v=4","01M6KPDX17BYDWW4RRB0TNGGMX","01M6KPDX64Y2QBEWVFG5W5PWPF",0,"MIT","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FCloud-and-Hosting\u002Fskypilot\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"cloud","multi","SkyPilot","skypilot multi cloud orchestration","orchestration","multi cloud","instances","when","automatic","for","orchestra","you","leverage","across","optimize","auto","Providers","batch","run","training","infrastructure","2026-11-10 10:12:30",false,"---\nname: skypilot-multi-cloud-orchestration\ndescription: Multi-cloud orchestration for ML workloads with automatic cost optimization. Use when you need to run training or batch jobs across multiple clouds, leverage spot instances with auto-recovery, or optimize GPU costs across providers.\nversion: 1.0.0\nauthor: Orchestra Research\nlicense: MIT\ntags: [Infrastructure, Multi-Cloud, Orchestration, GPU, Cost Optimization, SkyPilot]\ndependencies: [skypilot>=0.7.0]\n---\n\n# SkyPilot Multi-Cloud Orchestration\n\nComprehensive guide to running ML workloads across clouds with automatic cost optimization using SkyPilot.\n\n## When to use SkyPilot\n\n**Use SkyPilot when:**\n- Running ML workloads across multiple clouds (AWS, GCP, Azure, etc.)\n- Need cost optimization with automatic cloud\u002Fregion selection\n- Running long jobs on spot instances with auto-recovery\n- Managing distributed multi-node training\n- Want unified interface for 20+ cloud providers\n- Need to avoid vendor lock-in\n\n**Key features:**\n- **Multi-cloud**: AWS, GCP, Azure, Kubernetes, Lambda, RunPod, 20+ providers\n- **Cost optimization**: Automatic cheapest cloud\u002Fregion selection\n- **Spot instances**: 3-6x cost savings with automatic recovery\n- **Distributed training**: Multi-node jobs with gang scheduling\n- **Managed jobs**: Auto-recovery, checkpointing, fault tolerance\n- **Sky Serve**: Model serving with autoscaling\n\n**Use alternatives instead:**\n- **Modal**: For simpler serverless GPU with Python-native API\n- **RunPod**: For single-cloud persistent pods\n- **Kubernetes**: For existing K8s infrastructure\n- **Ray**: For pure Ray-based orchestration\n\n## Quick start\n\n### Installation\n\n```bash\npip install \"skypilot[aws,gcp,azure,kubernetes]\"\n\n# Verify cloud credentials\nsky check\n```\n\n### Hello World\n\nCreate `hello.yaml`:\n```yaml\nresources:\n  accelerators: T4:1\n\nrun: |\n  nvidia-smi\n  echo \"Hello from SkyPilot!\"\n```\n\nLaunch:\n```bash\nsky launch -c hello hello.yaml\n\n# SSH to cluster\nssh hello\n\n# Terminate\nsky down hello\n```\n\n## Core concepts\n\n### Task YAML structure\n\n```yaml\n# Task name (optional)\nname: my-task\n\n# Resource requirements\nresources:\n  cloud: aws              # Optional: auto-select if omitted\n  region: us-west-2       # Optional: auto-select if omitted\n  accelerators: A100:4    # GPU type and count\n  cpus: 8+                # Minimum CPUs\n  memory: 32+             # Minimum memory (GB)\n  use_spot: true          # Use spot instances\n  disk_size: 256          # Disk size (GB)\n\n# Number of nodes for distributed training\nnum_nodes: 2\n\n# Working directory (synced to ~\u002Fsky_workdir)\nworkdir: .\n\n# Setup commands (run once)\nsetup: |\n  pip install -r requirements.txt\n\n# Run commands\nrun: |\n  python train.py\n```\n\n### Key commands\n\n| Command | Purpose |\n|---------|---------|\n| `sky launch` | Launch cluster and run task |\n| `sky exec` | Run task on existing cluster |\n| `sky status` | Show cluster status |\n| `sky stop` | Stop cluster (preserve state) |\n| `sky down` | Terminate cluster |\n| `sky logs` | View task logs |\n| `sky queue` | Show job queue |\n| `sky jobs launch` | Launch managed job |\n| `sky serve up` | Deploy serving endpoint |\n\n## GPU configuration\n\n### Available accelerators\n\n```yaml\n# NVIDIA GPUs\naccelerators: T4:1\naccelerators: L4:1\naccelerators: A10G:1\naccelerators: L40S:1\naccelerators: A100:4\naccelerators: A100-80GB:8\naccelerators: H100:8\n\n# Cloud-specific\naccelerators: V100:4         # AWS\u002FGCP\naccelerators: TPU-v4-8       # GCP TPUs\n```\n\n### GPU fallbacks\n\n```yaml\nresources:\n  accelerators:\n    H100: 8\n    A100-80GB: 8\n    A100: 8\n  any_of:\n    - cloud: gcp\n    - cloud: aws\n    - cloud: azure\n```\n\n### Spot instances\n\n```yaml\nresources:\n  accelerators: A100:8\n  use_spot: true\n  spot_recovery: FAILOVER  # Auto-recover on preemption\n```\n\n## Cluster management\n\n### Launch and execute\n\n```bash\n# Launch new cluster\nsky launch -c mycluster task.yaml\n\n# Run on existing cluster (skip setup)\nsky exec mycluster another_task.yaml\n\n# Interactive SSH\nssh mycluster\n\n# Stream logs\nsky logs mycluster\n```\n\n### Autostop\n\n```yaml\nresources:\n  accelerators: A100:4\n  autostop:\n    idle_minutes: 30\n    down: true  # Terminate instead of stop\n```\n\n```bash\n# Set autostop via CLI\nsky autostop mycluster -i 30 --down\n```\n\n### Cluster status\n\n```bash\n# All clusters\nsky status\n\n# Detailed view\nsky status -a\n```\n\n## Distributed training\n\n### Multi-node setup\n\n```yaml\nresources:\n  accelerators: A100:8\n\nnum_nodes: 4  # 4 nodes × 8 GPUs = 32 GPUs total\n\nsetup: |\n  pip install torch torchvision\n\nrun: |\n  torchrun \\\n    --nnodes=$SKYPILOT_NUM_NODES \\\n    --nproc_per_node=$SKYPILOT_NUM_GPUS_PER_NODE \\\n    --node_rank=$SKYPILOT_NODE_RANK \\\n    --master_addr=$(echo \"$SKYPILOT_NODE_IPS\" | head -n1) \\\n    --master_port=12355 \\\n    train.py\n```\n\n### Environment variables\n\n| Variable | Description |\n|----------|-------------|\n| `SKYPILOT_NODE_RANK` | Node index (0 to num_nodes-1) |\n| `SKYPILOT_NODE_IPS` | Newline-separated IP addresses |\n| `SKYPILOT_NUM_NODES` | Total number of nodes |\n| `SKYPILOT_NUM_GPUS_PER_NODE` | GPUs per node |\n\n### Head-node-only execution\n\n```bash\nrun: |\n  if [ \"${SKYPILOT_NODE_RANK}\" == \"0\" ]; then\n    python orchestrate.py\n  fi\n```\n\n## Managed jobs\n\n### Spot recovery\n\n```bash\n# Launch managed job with spot recovery\nsky jobs launch -n my-job train.yaml\n```\n\n### Checkpointing\n\n```yaml\nname: training-job\n\nfile_mounts:\n  \u002Fcheckpoints:\n    name: my-checkpoints\n    store: s3\n    mode: MOUNT\n\nresources:\n  accelerators: A100:8\n  use_spot: true\n\nrun: |\n  python train.py \\\n    --checkpoint-dir \u002Fcheckpoints \\\n    --resume-from-latest\n```\n\n### Job management\n\n```bash\n# List jobs\nsky jobs queue\n\n# View logs\nsky jobs logs my-job\n\n# Cancel job\nsky jobs cancel my-job\n```\n\n## File mounts and storage\n\n### Local file sync\n\n```yaml\nworkdir: .\u002Fmy-project  # Synced to ~\u002Fsky_workdir\n\nfile_mounts:\n  \u002Fdata\u002Fconfig.yaml: .\u002Fconfig.yaml\n  ~\u002F.vimrc: ~\u002F.vimrc\n```\n\n### Cloud storage\n\n```yaml\nfile_mounts:\n  # Mount S3 bucket\n  \u002Fdatasets:\n    source: s3:\u002F\u002Fmy-bucket\u002Fdatasets\n    mode: MOUNT  # Stream from S3\n\n  # Copy GCS bucket\n  \u002Fmodels:\n    source: gs:\u002F\u002Fmy-bucket\u002Fmodels\n    mode: COPY  # Pre-fetch to disk\n\n  # Cached mount (fast writes)\n  \u002Foutputs:\n    name: my-outputs\n    store: s3\n    mode: MOUNT_CACHED\n```\n\n### Storage modes\n\n| Mode | Description | Best For |\n|------|-------------|----------|\n| `MOUNT` | Stream from cloud | Large datasets, read-heavy |\n| `COPY` | Pre-fetch to disk | Small files, random access |\n| `MOUNT_CACHED` | Cache with async upload | Checkpoints, outputs |\n\n## Sky Serve (Model Serving)\n\n### Basic service\n\n```yaml\n# service.yaml\nservice:\n  readiness_probe: \u002Fhealth\n  replica_policy:\n    min_replicas: 1\n    max_replicas: 10\n    target_qps_per_replica: 2.0\n\nresources:\n  accelerators: A100:1\n\nrun: |\n  python -m vllm.entrypoints.openai.api_server \\\n    --model meta-llama\u002FLlama-2-7b-chat-hf \\\n    --port 8000\n```\n\n```bash\n# Deploy\nsky serve up -n my-service service.yaml\n\n# Check status\nsky serve status\n\n# Get endpoint\nsky serve status my-service\n```\n\n### Autoscaling policies\n\n```yaml\nservice:\n  replica_policy:\n    min_replicas: 1\n    max_replicas: 10\n    target_qps_per_replica: 2.0\n    upscale_delay_seconds: 60\n    downscale_delay_seconds: 300\n  load_balancing_policy: round_robin\n```\n\n## Cost optimization\n\n### Automatic cloud selection\n\n```yaml\n# SkyPilot finds cheapest option\nresources:\n  accelerators: A100:8\n  # No cloud specified - auto-select cheapest\n```\n\n```bash\n# Show optimizer decision\nsky launch task.yaml --dryrun\n```\n\n### Cloud preferences\n\n```yaml\nresources:\n  accelerators: A100:8\n  any_of:\n    - cloud: gcp\n      region: us-central1\n    - cloud: aws\n      region: us-east-1\n    - cloud: azure\n```\n\n### Environment variables\n\n```yaml\nenvs:\n  HF_TOKEN: $HF_TOKEN  # Inherited from local env\n  WANDB_API_KEY: $WANDB_API_KEY\n\n# Or use secrets\nsecrets:\n  - HF_TOKEN\n  - WANDB_API_KEY\n```\n\n## Common workflows\n\n### Workflow 1: Fine-tuning with checkpoints\n\n```yaml\nname: llm-finetune\n\nfile_mounts:\n  \u002Fcheckpoints:\n    name: finetune-checkpoints\n    store: s3\n    mode: MOUNT_CACHED\n\nresources:\n  accelerators: A100:8\n  use_spot: true\n\nsetup: |\n  pip install transformers accelerate\n\nrun: |\n  python train.py \\\n    --checkpoint-dir \u002Fcheckpoints \\\n    --resume\n```\n\n### Workflow 2: Hyperparameter sweep\n\n```yaml\nname: hp-sweep-${RUN_ID}\n\nenvs:\n  RUN_ID: 0\n  LEARNING_RATE: 1e-4\n  BATCH_SIZE: 32\n\nresources:\n  accelerators: A100:1\n  use_spot: true\n\nrun: |\n  python train.py \\\n    --lr $LEARNING_RATE \\\n    --batch-size $BATCH_SIZE \\\n    --run-id $RUN_ID\n```\n\n```bash\n# Launch multiple jobs\nfor i in {1..10}; do\n  sky jobs launch sweep.yaml \\\n    --env RUN_ID=$i \\\n    --env LEARNING_RATE=$(python -c \"import random; print(10**random.uniform(-5,-3))\")\ndone\n```\n\n## Debugging\n\n```bash\n# SSH to cluster\nssh mycluster\n\n# View logs\nsky logs mycluster\n\n# Check job queue\nsky queue mycluster\n\n# View managed job logs\nsky jobs logs my-job\n```\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| Quota exceeded | Request quota increase, try different region |\n| Spot preemption | Use `sky jobs launch` for auto-recovery |\n| Slow file sync | Use `MOUNT_CACHED` mode for outputs |\n| GPU not available | Use `any_of` for fallback clouds |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Multi-cloud, optimization, production patterns\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fdocs.skypilot.co\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fskypilot-org\u002Fskypilot\n- **Slack**: https:\u002F\u002Fslack.skypilot.co\n- **Examples**: https:\u002F\u002Fgithub.com\u002Fskypilot-org\u002Fskypilot\u002Ftree\u002Fmaster\u002Fexamples\n","# SkyPilot Multi-Cloud Orchestration\n\nComprehensive guide to running ML workloads across clouds with automatic cost optimization using SkyPilot.\n\n## When to use SkyPilot\n\n**Use SkyPilot when:**\n- Running ML workloads across multiple clouds (AWS, GCP, Azure, etc.)\n- Need cost optimization with automatic cloud\u002Fregion selection\n- Running long jobs on spot instances with auto-recovery\n- Managing distributed multi-node training\n- Want unified interface for 20+ cloud providers\n- Need to avoid vendor lock-in\n\n**Key features:**\n- **Multi-cloud**: AWS, GCP, Azure, Kubernetes, Lambda, RunPod, 20+ providers\n- **Cost optimization**: Automatic cheapest cloud\u002Fregion selection\n- **Spot instances**: 3-6x cost savings with automatic recovery\n- **Distributed training**: Multi-node jobs with gang scheduling\n- **Managed jobs**: Auto-recovery, checkpointing, fault tolerance\n- **Sky Serve**: Model serving with autoscaling\n\n**Use alternatives instead:**\n- **Modal**: For simpler serverless GPU with Python-native API\n- **RunPod**: For single-cloud persistent pods\n- **Kubernetes**: For existing K8s infrastructure\n- **Ray**: For pure Ray-based orchestration\n\n## Quick start\n\n### Installation\n\n```bash\npip install \"skypilot[aws,gcp,azure,kubernetes]\"\n\n# Verify cloud credentials\nsky check\n```\n\n### Hello World\n\nCreate `hello.yaml`:\n```yaml\nresources:\n  accelerators: T4:1\n\nrun: |\n  nvidia-smi\n  echo \"Hello from SkyPilot!\"\n```\n\nLaunch:\n```bash\nsky launch -c hello hello.yaml\n\n# SSH to cluster\nssh hello\n\n# Terminate\nsky down hello\n```\n\n## Core concepts\n\n### Task YAML structure\n\n```yaml\n# Task name (optional)\nname: my-task\n\n# Resource requirements\nresources:\n  cloud: aws              # Optional: auto-select if omitted\n  region: us-west-2       # Optional: auto-select if omitted\n  accelerators: A100:4    # GPU type and count\n  cpus: 8+                # Minimum CPUs\n  memory: 32+             # Minimum memory (GB)\n  use_spot: true          # Use spot instances\n  disk_size: 256          # Disk size (GB)\n\n# Number of nodes for distributed training\nnum_nodes: 2\n\n# Working directory (synced to ~\u002Fsky_workdir)\nworkdir: .\n\n# Setup commands (run once)\nsetup: |\n  pip install -r requirements.txt\n\n# Run commands\nrun: |\n  python train.py\n```\n\n### Key commands\n\n| Command | Purpose |\n|---------|---------|\n| `sky launch` | Launch cluster and run task |\n| `sky exec` | Run task on existing cluster |\n| `sky status` | Show cluster status |\n| `sky stop` | Stop cluster (preserve state) |\n| `sky down` | Terminate cluster |\n| `sky logs` | View task logs |\n| `sky queue` | Show job queue |\n| `sky jobs launch` | Launch managed job |\n| `sky serve up` | Deploy serving endpoint |\n\n## GPU configuration\n\n### Available accelerators\n\n```yaml\n# NVIDIA GPUs\naccelerators: T4:1\naccelerators: L4:1\naccelerators: A10G:1\naccelerators: L40S:1\naccelerators: A100:4\naccelerators: A100-80GB:8\naccelerators: H100:8\n\n# Cloud-specific\naccelerators: V100:4         # AWS\u002FGCP\naccelerators: TPU-v4-8       # GCP TPUs\n```\n\n### GPU fallbacks\n\n```yaml\nresources:\n  accelerators:\n    H100: 8\n    A100-80GB: 8\n    A100: 8\n  any_of:\n    - cloud: gcp\n    - cloud: aws\n    - cloud: azure\n```\n\n### Spot instances\n\n```yaml\nresources:\n  accelerators: A100:8\n  use_spot: true\n  spot_recovery: FAILOVER  # Auto-recover on preemption\n```\n\n## Cluster management\n\n### Launch and execute\n\n```bash\n# Launch new cluster\nsky launch -c mycluster task.yaml\n\n# Run on existing cluster (skip setup)\nsky exec mycluster another_task.yaml\n\n# Interactive SSH\nssh mycluster\n\n# Stream logs\nsky logs mycluster\n```\n\n### Autostop\n\n```yaml\nresources:\n  accelerators: A100:4\n  autostop:\n    idle_minutes: 30\n    down: true  # Terminate instead of stop\n```\n\n```bash\n# Set autostop via CLI\nsky autostop mycluster -i 30 --down\n```\n\n### Cluster status\n\n```bash\n# All clusters\nsky status\n\n# Detailed view\nsky status -a\n```\n\n## Distributed training\n\n### Multi-node setup\n\n```yaml\nresources:\n  accelerators: A100:8\n\nnum_nodes: 4  # 4 nodes × 8 GPUs = 32 GPUs total\n\nsetup: |\n  pip install torch torchvision\n\nrun: |\n  torchrun \\\n    --nnodes=$SKYPILOT_NUM_NODES \\\n    --nproc_per_node=$SKYPILOT_NUM_GPUS_PER_NODE \\\n    --node_rank=$SKYPILOT_NODE_RANK \\\n    --master_addr=$(echo \"$SKYPILOT_NODE_IPS\" | head -n1) \\\n    --master_port=12355 \\\n    train.py\n```\n\n### Environment variables\n\n| Variable | Description |\n|----------|-------------|\n| `SKYPILOT_NODE_RANK` | Node index (0 to num_nodes-1) |\n| `SKYPILOT_NODE_IPS` | Newline-separated IP addresses |\n| `SKYPILOT_NUM_NODES` | Total number of nodes |\n| `SKYPILOT_NUM_GPUS_PER_NODE` | GPUs per node |\n\n### Head-node-only execution\n\n```bash\nrun: |\n  if [ \"${SKYPILOT_NODE_RANK}\" == \"0\" ]; then\n    python orchestrate.py\n  fi\n```\n\n## Managed jobs\n\n### Spot recovery\n\n```bash\n# Launch managed job with spot recovery\nsky jobs launch -n my-job train.yaml\n```\n\n### Checkpointing\n\n```yaml\nname: training-job\n\nfile_mounts:\n  \u002Fcheckpoints:\n    name: my-checkpoints\n    store: s3\n    mode: MOUNT\n\nresources:\n  accelerators: A100:8\n  use_spot: true\n\nrun: |\n  python train.py \\\n    --checkpoint-dir \u002Fcheckpoints \\\n    --resume-from-latest\n```\n\n### Job management\n\n```bash\n# List jobs\nsky jobs queue\n\n# View logs\nsky jobs logs my-job\n\n# Cancel job\nsky jobs cancel my-job\n```\n\n## File mounts and storage\n\n### Local file sync\n\n```yaml\nworkdir: .\u002Fmy-project  # Synced to ~\u002Fsky_workdir\n\nfile_mounts:\n  \u002Fdata\u002Fconfig.yaml: .\u002Fconfig.yaml\n  ~\u002F.vimrc: ~\u002F.vimrc\n```\n\n### Cloud storage\n\n```yaml\nfile_mounts:\n  # Mount S3 bucket\n  \u002Fdatasets:\n    source: s3:\u002F\u002Fmy-bucket\u002Fdatasets\n    mode: MOUNT  # Stream from S3\n\n  # Copy GCS bucket\n  \u002Fmodels:\n    source: gs:\u002F\u002Fmy-bucket\u002Fmodels\n    mode: COPY  # Pre-fetch to disk\n\n  # Cached mount (fast writes)\n  \u002Foutputs:\n    name: my-outputs\n    store: s3\n    mode: MOUNT_CACHED\n```\n\n### Storage modes\n\n| Mode | Description | Best For |\n|------|-------------|----------|\n| `MOUNT` | Stream from cloud | Large datasets, read-heavy |\n| `COPY` | Pre-fetch to disk | Small files, random access |\n| `MOUNT_CACHED` | Cache with async upload | Checkpoints, outputs |\n\n## Sky Serve (Model Serving)\n\n### Basic service\n\n```yaml\n# service.yaml\nservice:\n  readiness_probe: \u002Fhealth\n  replica_policy:\n    min_replicas: 1\n    max_replicas: 10\n    target_qps_per_replica: 2.0\n\nresources:\n  accelerators: A100:1\n\nrun: |\n  python -m vllm.entrypoints.openai.api_server \\\n    --model meta-llama\u002FLlama-2-7b-chat-hf \\\n    --port 8000\n```\n\n```bash\n# Deploy\nsky serve up -n my-service service.yaml\n\n# Check status\nsky serve status\n\n# Get endpoint\nsky serve status my-service\n```\n\n### Autoscaling policies\n\n```yaml\nservice:\n  replica_policy:\n    min_replicas: 1\n    max_replicas: 10\n    target_qps_per_replica: 2.0\n    upscale_delay_seconds: 60\n    downscale_delay_seconds: 300\n  load_balancing_policy: round_robin\n```\n\n## Cost optimization\n\n### Automatic cloud selection\n\n```yaml\n# SkyPilot finds cheapest option\nresources:\n  accelerators: A100:8\n  # No cloud specified - auto-select cheapest\n```\n\n```bash\n# Show optimizer decision\nsky launch task.yaml --dryrun\n```\n\n### Cloud preferences\n\n```yaml\nresources:\n  accelerators: A100:8\n  any_of:\n    - cloud: gcp\n      region: us-central1\n    - cloud: aws\n      region: us-east-1\n    - cloud: azure\n```\n\n### Environment variables\n\n```yaml\nenvs:\n  HF_TOKEN: $HF_TOKEN  # Inherited from local env\n  WANDB_API_KEY: $WANDB_API_KEY\n\n# Or use secrets\nsecrets:\n  - HF_TOKEN\n  - WANDB_API_KEY\n```\n\n## Common workflows\n\n### Workflow 1: Fine-tuning with checkpoints\n\n```yaml\nname: llm-finetune\n\nfile_mounts:\n  \u002Fcheckpoints:\n    name: finetune-checkpoints\n    store: s3\n    mode: MOUNT_CACHED\n\nresources:\n  accelerators: A100:8\n  use_spot: true\n\nsetup: |\n  pip install transformers accelerate\n\nrun: |\n  python train.py \\\n    --checkpoint-dir \u002Fcheckpoints \\\n    --resume\n```\n\n### Workflow 2: Hyperparameter sweep\n\n```yaml\nname: hp-sweep-${RUN_ID}\n\nenvs:\n  RUN_ID: 0\n  LEARNING_RATE: 1e-4\n  BATCH_SIZE: 32\n\nresources:\n  accelerators: A100:1\n  use_spot: true\n\nrun: |\n  python train.py \\\n    --lr $LEARNING_RATE \\\n    --batch-size $BATCH_SIZE \\\n    --run-id $RUN_ID\n```\n\n```bash\n# Launch multiple jobs\nfor i in {1..10}; do\n  sky jobs launch sweep.yaml \\\n    --env RUN_ID=$i \\\n    --env LEARNING_RATE=$(python -c \"import random; print(10**random.uniform(-5,-3))\")\ndone\n```\n\n## Debugging\n\n```bash\n# SSH to cluster\nssh mycluster\n\n# View logs\nsky logs mycluster\n\n# Check job queue\nsky queue mycluster\n\n# View managed job logs\nsky jobs logs my-job\n```\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| Quota exceeded | Request quota increase, try different region |\n| Spot preemption | Use `sky jobs launch` for auto-recovery |\n| Slow file sync | Use `MOUNT_CACHED` mode for outputs |\n| GPU not available | Use `any_of` for fallback clouds |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Multi-cloud, optimization, production patterns\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fdocs.skypilot.co\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fskypilot-org\u002Fskypilot\n- **Slack**: https:\u002F\u002Fslack.skypilot.co\n- **Examples**: https:\u002F\u002Fgithub.com\u002Fskypilot-org\u002Fskypilot\u002Ftree\u002Fmaster\u002Fexamples\n",{"name":5,"tags":44,"author":50,"license":14,"version":51,"description":7,"dependencies":52},[45,46,47,48,49,20],"Infrastructure","Multi-Cloud","Orchestration","GPU","Cost Optimization","Orchestra Research","1.0.0",[53],"skypilot>=0.7.0","main","f19b254e8975d0bfddb394686706106930d7964d","Cloud-and-Hosting\u002Fskypilot","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus","https:\u002F\u002Fgithub.com\u002Fendman100","2026-11-11 18:19:10",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add endman100\u002Fskill-router-nexus --skill skypilot-multi-cloud-orchestration",{"tool":66,"command":67},"bunx","bunx skills add endman100\u002Fskill-router-nexus --skill skypilot-multi-cloud-orchestration",{"tool":69,"command":70},"pnpm","pnpm dlx skills add endman100\u002Fskill-router-nexus --skill skypilot-multi-cloud-orchestration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FCloud-and-Hosting\u002Fskypilot\u002FSKILL.md",true,[74,80],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",7469,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FCloud-and-Hosting\u002Fskypilot\u002Freferences\u002Fadvanced-usage.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Ftroubleshooting.md",10493,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FCloud-and-Hosting\u002Fskypilot\u002Freferences\u002Ftroubleshooting.md",[85,109,146,168,177,201],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":89,"sourceHtmlUrl":90,"categories":91,"keywords":97,"publishedAt":39},"01M6MPCT5BXVER8HQZTW3QE9AS","create-master","基于佛教经典文献，生成特定高僧大德的 AI 教学角色","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[98,99,100,101,102,103,104,105,106,107,108],"create master","master","create","生成","true","webfetch","edit","write","read","grep","Bash",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":113,"sourceHtmlUrl":114,"categories":115,"keywords":127,"publishedAt":39},"01M6M43AKE95Y64E1JRXEF5QQ3","writing-dna-skill","从至少 20 篇完整文章中蒸馏可复用的写作 DNA，分析语言、文章结构、选题逻辑、素材策略、认知框架和视觉风格，并生成 Writing-DNA.md；按该 DNA 写作时会读取全部蒸馏产物和 5 篇相关原文。用于中英文作者、账号、品牌或出版物的风格分析与一致性写作。 Distill reusable Writing DNA from at least 20 complete articles for Chinese or English authors, publications, brands, and accounts; use for language, structure, topic logic, source strategy, cognitive-frame, and visual-style analysis.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FSKILL.md",[116,121,124],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":122,"categoryName":123,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":125,"categoryName":126,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000036","内容创作者",[128,129,130,131,132,133,134,135,136,137,138,139,140,101,141,142,143,27,144,145],"writing dna skill","DNA","writing","strategy","english","logic","visual","structure","chinese","reusable","use","style","distill","analysis","frame","source","at","complete",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":150,"sourceHtmlUrl":151,"categories":152,"keywords":155,"publishedAt":39},"01M6M428TTCGQ4ME3KY99VN037","stop-slop","Remove AI writing patterns from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI tells.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FSKILL.md",[153,154],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},{"categoryNo":125,"categoryName":126,"taxonomyType":95,"taxonomyTypeDesc":96},[156,157,158,159,25,160,161,162,163,138,164,165,166,27,167,130],"slop","stop slop","stop","drafting","drafts","https","patterns","prose","remove","editing","text","content",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":39},"01M6M41X0B7EBX42TK435DMGGR","shuorenhua","检查和清理中英文文本里的 AI 套路，适用于“去 AI 味”“说人话”“自然一点”“别像模板”“先标问题”这类改写和审稿需求；按场景控制力度，同时保留事实、术语、语域和责任主体。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FSKILL.md",[],[170,176],"文本",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":181,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":39},"01M6M3ZD12WBEW5KXKDM4N6DFG","naming","Name products, SaaS, brands, open source projects, bots, and apps. Use when the user needs to name something, find a brand name, or pick a product name. Metaphor-driven process that produces memorable, meaningful names and avoids AI slop.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FSKILL.md",[],[179,185,186,187,188,189,138,190,106,143,191,192,193,194,108,195,196,197,198,25,199,200,156],"repo","websearch","product name","apps","bots","view","brand","pick","gh","projects","open","saas","open source","product","describe","ai slop",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":205,"sourceHtmlUrl":206,"categories":207,"keywords":209,"publishedAt":39},"01M6M3YVXAFAAWJ7F6JMPFREYE","humanizer-zh","去除文本中的 AI 生成痕迹。适用于编辑或审阅文本，使其听起来更自然、更像人类书写。\n基于维基百科的\"AI 写作特征\"综合指南。检测并修复以下模式：夸大的象征意义、\n宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、\nAI 词汇、否定式排比、过多的连接性短语。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FSKILL.md",[208],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},[210,211,212,106,105,104,130,101,176,213,156,158],"humanizer","zh","humanizer zh","翻译"]