SkyPilot 示例 ==================== 最后更新:2025 年 9 月 4 日。 本指南提供使用 `SkyPilot `_ 在 Kubernetes 集群或带有 GPU 节点的云平台上运行 VERL 强化学习训练的示例。 安装和配置 ------------------------------- 第一步:安装 SkyPilot ~~~~~~~~~~~~~~~~~~~~~~~~~ 根据你的目标平台选择安装方式: .. code-block:: bash # 仅适用于 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 密钥以进行实验跟踪: .. code-block:: bash # 适用于 Weights & Biases 跟踪 export WANDB_API_KEY="your-wandb-api-key" # 适用于 HuggingFace 认证模型(如果需要) export HF_TOKEN="your-huggingface-token" 示例 -------- 所有示例配置均可在 GitHub 上的 `examples/skypilot/ `_ 目录中找到。有关更多详细信息,请参阅 `README `_。 PPO 训练 ~~~~~~~~~~~~ .. code-block:: bash 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 训练 ~~~~~~~~~~~~~ .. code-block:: bash 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 `_ 多轮工具使用训练 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash 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: aws`` 或 ``infra: gcp`` 等。 - **Docker 镜像**: VERL 官方 Docker 镜像,支持 CUDA 12.6 - **设置**: 自动从源代码克隆并安装 VERL - **数据集**: 在设置阶段下载所需数据集 - **Ray 集群**: 配置跨节点的分布式训练 - **日志记录**: 通过 ``--secret WANDB_API_KEY`` 支持 Weights & Biases - **模型**: 通过 ``--secret HF_TOKEN`` 支持 HuggingFace 认证模型 启动命令选项 ---------------------- - ``-c ``:用于管理作业的集群名称 - ``--secret KEY``:传递 API 密钥的密钥(可多次使用) - ``-y``:跳过确认提示 监控你的作业 -------------------- 检查集群状态 ~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash sky status 查看日志 ~~~~~~~~~ .. code-block:: bash sky logs verl-ppo # 查看 PPO 作业的日志 SSH 登录主节点 ~~~~~~~~~~~~~~~~~~ .. code-block:: bash ssh verl-ppo 访问 Ray Dashboard ~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash sky status --endpoint 8265 verl-ppo # 获取仪表盘 URL 停止集群 ~~~~~~~~~~~~~~ .. code-block:: bash sky down verl-ppo