WeChat (伟SU聊云)
dev-toolsai-engineering
Original source

SkyPilot on AWS 實戰(一): 快速啟動

Summary

SkyPilot on AWS 的實戰入門教程。作者的出發點: 為了跑 DeepLearning.AI 的 LLM 課程 notebook (LoRA, 量化, KV Cache),在 AWS 上開 GPU 機器花了一個下午配環境,真正算的時間不到三成。

SkyPilot 解決什麼

  • 把「選區域、開機、同步代碼、跑任務、關機」壓縮成一條 sky launch
  • 失敗時自動換區域重試 (Auto-failover)
  • 閒置自動關機 (Autostop)

五層架構

  1. CLI/SDK — 提交任務
  2. Optimizer + Provisioner — 核心價值層: 按成本排序「雲×區域×可用區×實例」,逐個嘗試直到開出機器
  3. Cluster — 一組同質節點 + 內建 Job Queue
  4. AWS 原生資源 (EC2, S3, IAM)
  5. SSH 配置自動注入 ~/.ssh/config

關鍵用法

  • sky launch -c dev --gpus L4:1 -i 60 — 兩條命令拿到 GPU
  • ssh -L 8888:localhost:8888 dev — Jupyter 端口轉發,不暴露公網
  • sky exec dev train.yaml — 復用集群提交新任務
  • --gpus L4:1 而非 --instance-type g6.xlarge — 抽象度越高越省錢

AWS 特有的坑

  • pip install "skypilot[aws]" — [aws] extras 不能省
  • SkyPilot 會在帳號創建 IAM Role、Key Pair、Security Group
  • GPU 配額默認是 0,單位是 vCPU 不是台數 (8卡 g6.48xlarge 要 192 vCPU)
  • 按需和 Spot 配額是兩套獨立數字
  • S3 桶和 EC2 要同區域,跨區有傳輸費

Task YAML

  • setup: 只在首次創建跑一次 (裝依賴)
  • run: 每次提交都跑 (訓練腳本)
  • 搞混 = 每次迭代重裝依賴 = 燒錢