SkyPilot 示例
最后更新:09/04/2025。
本指南提供了在具有 GPU 节点的 Kubernetes 集群或云平台上,使用 SkyPilot 运行 VERL 强化学习训练的示例。
安装和配置
步骤 1:安装 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]"
步骤 2:配置您的平台
请参见 https://docs.skypilot.co/en/latest/getting-started/installation.html
步骤 3:设置环境变量
导出用于实验跟踪的必要 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 数据集上运行 PPO 训练,使用 Qwen2.5-0.5B-Instruct 模型,跨越 2 个节点,每个节点配备 H100 GPU。此配置基于 examples/ppo_trainer/ 中的示例。
GRPO 训练
sky launch -c verl-grpo verl-grpo.yaml --secret WANDB_API_KEY -y
在 MATH 数据集上运行 GRPO(Group Relative Policy Optimization,中文:组相对策略优化)训练,使用 Qwen2.5-7B-Instruct 模型。这个配置针对 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 仪表板
sky status --endpoint 8265 verl-ppo # 获取仪表板 URL
停止集群
sky down verl-ppo