SuperAPI AI 工具集

skypilot-multi-cloud-orchestration

部署与运维

查看项目

更新于 10-30 06:45

技能介绍

SkyPilot 多云编排技能是一份面向机器学习工作负载的实践指南,重点在于用统一接口在多个云上运行训练和批处理任务,并自动优化成本。

用途 资料指出,在以下情况适合使用 SkyPilot:需要跨多个云(如 AWS、GCP、Azure)运行 ML 负载;希望通过自动选择云和区域来优化成本;需要在抢占式(spot)实例上运行长任务并具备自动恢复能力;需要管理多节点分布式训练;希望用统一界面覆盖 20 多个云厂商;以及希望避免供应商锁定。资料也给出替代方案:更简单的 Python 原生无服务器 GPU 可选 Modal;单云持久 Pod 可选 RunPod;已有 K8s 基础设施可选 Kubernetes;纯 Ray 编排可选 Ray。

主要能力 多云方面支持 AWS、GCP、Azure、Kubernetes、Lambda、RunPod 等 20 多个提供方。成本优化方面支持自动选择最便宜的云和区域。Spot 实例可带来 3 到 6 倍成本节省,并支持自动恢复。分布式训练支持多节点作业与 gang 调度。托管作业提供自动恢复、检查点和容错。Sky Serve 提供带自动扩缩的模型服务。

使用方式 安装命令为 pip install "skypilot[aws,gcp,azure,kubernetes]",随后用 sky check 验证云凭据。最小示例是一个 hello.yaml,声明 accelerators: T4:1,并执行 nvidia-smi 与 echo;通过 sky launch -c hello hello.yaml 启动,用 ssh hello 登录,用 sky down hello 终止。

Task YAML 包含 name、resources(cloud、region、accelerators、cpus、memory、use_spot、disk_size)、num_nodes、workdir、setup 与 run。常用命令包括 sky launch、sky exec、sky status、sky stop、sky down、sky logs、sky queue、sky jobs launch 与 sky serve up。GPU 配置示例涵盖 T4、L4、A10G、L40S、A100、A100-80GB、H100 以及 GCP TPU 等,并可用 any_of 做 GPU 与云的回退。

分布式训练通过 num_nodes 声明节点数,运行时可使用环境变量 SKYPILOT_NODE_RANK、SKYPILOT_NODE_IPS、SKYPILOT_NUM_NODES 与 SKYPILOT_NUM_GPUS_PER_NODE,示例用 torchrun 启动多节点训练;也可仅在头节点执行编排脚本。

托管作业与存储 用 sky jobs launch 启动作业,配合 use_spot 与 spot_recovery 实现抢占恢复;file_mounts 可将 S3 等存储以 MOUNT、COPY 或 MOUNT_CACHED 模式挂载,用于数据集、检查点与输出。Sky Serve 的 service 配置包含 readiness_probe、replica_policy(最小/最大副本、目标 QPS、扩缩延迟)与负载均衡策略。

成本优化与工作流 不指定 cloud 时自动选择最便宜选项,sky launch --dryrun 可查看优化器决策;any_of 可表达云与区域偏好。资料给出两类工作流:带检查点的 LLM 微调,以及用循环和 --env 参数进行的超参数扫描。

调试与限制 可通过 ssh、sky logs、sky queue、sky jobs logs 排查问题。常见问题包括配额超限(申请配额或换区域)、Spot 抢占(用托管作业自动恢复)、文件同步慢(输出用 MOUNT_CACHED)、GPU 不可用(用 any_of 回退云)。资料列出参考文档、GitHub、Slack 与示例仓库地址;关于具体计费价格、各云配额细节和性能数据,资料暂未提供。