AI个人学习
和实操指南
阿里绘蛙

SkyPilot:在任何云端高效运行AI与批处理任务的开源框架

综合介绍

SkyPilot 是一个由加州伯克利大学 Sky Computing Lab 发起的开源框架,旨在帮助用户在任何云端基础设施上高效运行 AI 和批处理任务。它支持超过 14 种云服务(包括 AWS、GCP、Azure 等)以及 Kubernetes,提供统一的执行接口、显著的成本节约和高 GPU 可用性。SkyPilot 通过简单的 YAML 或 Python API 配置,让用户无需修改代码即可将任务部署到云端,自动选择最优资源并实现故障容错。自 2022 年发布以来,该项目已吸引超过 1 百万次下载,并在 GitHub 上获得 7k+ 星标,广泛应用于机器学习模型训练、超参数调优和生物信息学等领域。

SkyPilot:在任何云端高效运行AI与批处理任务的开源框架-1


 

功能列表

  • 多云任务部署:支持在 AWS、GCP、Azure 等 14+ 云端以及 Kubernetes 上运行任务,避免单一云厂商锁定。
  • 成本优化:自动选择最便宜的云区域或实例(如按需或 Spot 实例),实现高达 3-6.5 倍的成本节约。
  • GPU/TPU 支持:无缝调度和管理 GPU(如 NVIDIA A100)和 TPU 资源,提升计算效率。
  • 自动故障恢复:遇到容量不足或抢占时,自动切换到其他云或区域,确保任务不中断。
  • 代码与数据同步:将本地代码和数据自动同步至云端集群,简化部署流程。
  • 任务队列管理:支持大规模并发任务(如 2000+ 作业),适用于超参数调优等场景。
  • 服务部署(SkyServe):提供 HTTPS 支持和负载均衡策略,轻松部署 AI 模型服务。
  • 预留实例支持:整合 AWS Capacity Blocks、GCP Dynamic Workload Scheduler 等预留资源。

 

使用帮助

SkyPilot 的安装与使用流程简单明了,适合开发者、研究人员和企业用户。下面详细介绍如何安装、配置和操作 SkyPilot 的核心功能。

安装流程

  1. 环境准备
    确保本地已安装 Python 3.8 或更高版本,并具备 pip 包管理工具。推荐使用虚拟环境以避免依赖冲突:

    python3 -m venv skypilot_env
    source skypilot_env/bin/activate
  1. 安装 SkyPilot
    通过 pip 安装最新版本:

    pip install -U "skypilot[all]"
    

    其中 [all] 表示安装所有云支持的依赖。如果仅需特定云(如 AWS),可替换为 skypilot[aws]

  2. 云端认证
    配置目标云的凭证。以 AWS 为例:

    • 安装 AWS CLI:pip install awscli
    • 配置凭证:aws configure,输入 Access Key 和 Secret Key。
      对于其他云(如 GCP、Azure),参考官方文档完成类似配置。
  3. 验证安装
    运行以下命令检查安装是否成功:

    sky check
    

    输出会显示已启用的云服务状态。

主要功能操作流程

1. 创建任务配置文件

SkyPilot 使用 YAML 文件定义任务。以训练 PyTorch 模型为例,创建 train.yaml

resources:
accelerators: A100:1  # 使用 1 个 A100 GPU
num_nodes: 1         # 单节点
workdir: ~/my_project  # 同步本地项目目录
setup: |               # 安装依赖
pip install torch torchvision
run: |                 # 运行任务
python main.py --epochs 10
  • resources:指定计算资源,如 GPU 类型和数量。
  • workdir:本地代码目录,自动同步至云端。
  • setup:运行前的准备命令。
  • run:任务执行命令。

2. 启动任务

在终端运行:

sky launch -c my-cluster train.yaml
  • -c my-cluster:命名集群,便于后续管理。
  • SkyPilot 会自动选择最优云端资源并启动任务。

3. 查看任务状态

检查集群状态:

sky status

显示所有运行中的集群及其资源使用情况。

4. 成本优化与 Spot 实例

使用 Spot 实例降低成本:

sky launch -c my-spot-cluster train.yaml --use-spot

SkyPilot 会自动管理 Spot 实例中断并恢复任务。

5. 部署服务(SkyServe)

以部署 LLaMA 模型为例,创建 serve.yaml

resources:
accelerators: A100:1
service:
replica: 2          # 2 个副本
ports: 8080         # 服务端口
run: |
python serve.py --model llama

启动服务:

sky serve up serve.yaml -n llama-service

访问生成的 HTTPS 端点即可使用服务。

6. 大规模并发任务

运行 2000+ 任务(如超参数调优):

sky jobs launch -c my-jobs train.yaml --num-jobs 2000

SkyPilot 自动分配资源并管理队列。

特色功能操作详解

多云切换

若 AWS 无可用 A100,可指定其他云:

sky launch -c my-cluster train.yaml --cloud gcp

或让 SkyPilot 自动选择最便宜的云:

sky launch -c my-cluster train.yaml --cloud cheapest

GPU 调度

查看可用 GPU 资源:

sky show-gpus

根据需求动态调整 resources 中的 accelerators 参数。

日志与调试

实时查看任务日志:

sky logs my-cluster

启用调试模式:

export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml

注意事项

  • 凭证安全:确保云凭证文件(如 ~/.aws)权限正确,避免泄露。
  • 资源释放:任务完成后手动关闭集群:
    sky down my-cluster
    
  • 文档支持:更多高级用法参考 SkyPilot 官方文档。

通过以上步骤,用户可快速上手 SkyPilot,高效运行 AI 和批处理任务。

CDN1
未经允许不得转载:首席AI分享圈 » SkyPilot:在任何云端高效运行AI与批处理任务的开源框架

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文