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