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/ 中的示例。
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/ 中的示例。
多轮工具使用训练
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。
配置
示例 YAML 文件已预先配置:
基础设施: Kubernetes 集群 (
infra: k8s) - 可以更改为infra: aws或infra: 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