SkyPilot 示例

最后更新:2025 年 9 月 4 日。

本指南提供使用 SkyPilot 在 Kubernetes 集群或带有 GPU 节点的云平台上运行 VERL 强化学习训练的示例。

安装和配置

第一步:安装 SkyPilot

根据你的目标平台选择安装方式:

# 仅适用于 Kubernetes
pip install "skypilot[kubernetes]"

# 适用于 AWS
pip install "skypilot[aws]"

# 适用于 Google Cloud Platform
pip install "skypilot[gcp]"

# 适用于 Azure
pip install "skypilot[azure]"

# 适用于多个平台
pip install "skypilot[kubernetes,aws,gcp,azure]"

第二步:配置你的平台

请参阅 https://docs.skypilot.co/en/latest/getting-started/installation.html

第三步:设置环境变量

导出必要的 API 密钥以进行实验跟踪:

# 适用于 Weights & Biases 跟踪
export WANDB_API_KEY="your-wandb-api-key"

# 适用于 HuggingFace 认证模型(如果需要)
export HF_TOKEN="your-huggingface-token"

示例

所有示例配置均可在 GitHub 上的 examples/skypilot/ 目录中找到。有关更多详细信息,请参阅 README

PPO 训练

sky launch -c verl-ppo verl-ppo.yaml --secret WANDB_API_KEY -y

在 GSM8K 数据集上,使用 Qwen2.5-0.5B-Instruct 模型,跨 2 个节点和 H100 GPU 运行 PPO 训练。基于 examples/ppo_trainer/ 中的示例。

在 GitHub 上查看 verl-ppo.yaml

GRPO 训练

sky launch -c verl-grpo verl-grpo.yaml --secret WANDB_API_KEY -y

在使用 Qwen2.5-7B-Instruct 模型在 MATH 数据集上运行 GRPO (Group Relative Policy Optimization) 训练。2 个节点的内存优化配置。基于 examples/grpo_trainer/ 中的示例。

在 GitHub 上查看 verl-grpo.yaml

多轮工具使用训练

sky launch -c verl-multiturn verl-multiturn-tools.yaml \
  --secret WANDB_API_KEY --secret HF_TOKEN -y

在 8xH100 GPU 的单节点上进行多轮工具使用训练,使用 Qwen2.5-3B-Instruct。包含 GSM8K 的工具和交互配置。基于 examples/sglang_multiturn/ 中的示例,但使用了 vLLM 而不是 sglang。

在 GitHub 上查看 verl-multiturn-tools.yaml

配置

示例 YAML 文件已预先配置:

  • 基础设施: Kubernetes 集群 (infra: k8s) - 可以更改为 infra: awsinfra: gcp 等。

  • Docker 镜像: VERL 官方 Docker 镜像,支持 CUDA 12.6

  • 设置: 自动从源代码克隆并安装 VERL

  • 数据集: 在设置阶段下载所需数据集

  • Ray 集群: 配置跨节点的分布式训练

  • 日志记录: 通过 --secret WANDB_API_KEY 支持 Weights & Biases

  • 模型: 通过 --secret HF_TOKEN 支持 HuggingFace 认证模型

启动命令选项

  • -c <name>:用于管理作业的集群名称

  • --secret KEY:传递 API 密钥的密钥(可多次使用)

  • -y:跳过确认提示

监控你的作业

检查集群状态

sky status

查看日志

sky logs verl-ppo  # 查看 PPO 作业的日志

SSH 登录主节点

ssh verl-ppo

访问 Ray Dashboard

sky status --endpoint 8265 verl-ppo  # 获取仪表盘 URL

停止集群

sky down verl-ppo