
Miles框架安全与最佳实践多节点集群凭证管理与沙箱隔离要点【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/milesMiles 是一个面向企业级的大模型强化学习RL后训练框架用 SGLang 做高速 rollout、Megatron-LM 做分布式训练。当你把 Miles 部署到多节点 GPU 集群、并让 Agent 在云端沙箱里执行真实任务时凭证管理与沙箱隔离就成为安全与稳定性的第一要务。本文带你快速掌握这套机制的设计要点和实操清单。为什么多节点 RL 训练的凭证管理格外关键普通单机脚本里export一个环境变量就能用的 API Key在多节点集群上会变成安全隐患启动器launcher下发给各节点 worker 的环境变量会被 Ray 的runtime_env以明文形式记录进驱动日志并持久化到任务元数据中多个节点各自继承环境变量时很难保证哪些节点恰好拿得到密钥凭证一旦写进 URL如https://user:tokenhost会随地址一起被转发和打印。Miles 对这三类风险都有针对性的防御其核心设计集中在 miles/rollout/agentic/credentials.py 一个模块里用一份PROVIDER_CREDENTIALS注册表统一管理所有沙箱后端。凭证管理两种方式一条铁律Miles 支持为每个沙箱 Provider 提供凭证的两种方式铁律是启动器只转发路径从不转发值。方式一环境变量注入在 worker 所在机器的环境中直接设置凭证变量例如 E2B 的E2B_API_KEY、Daytona 的DAYTONA_API_KEY。单机场景下 worker 自然继承在 Kubernetes 等平台上则由平台注入 Pod 环境。这类变量不经过 Ray 转发因此不会出现在日志里。⚠️ 注意Modal 的凭证是一对 tokenMODAL_TOKEN_IDMODAL_TOKEN_SECRET只设置其中一半会被判定为缺失——部分设置属于误配置会导致每个 episode 都失败。方式二密钥文件 路径转发多节点推荐mkdir -p ~/.config/e2b echo e2b_... ~/.config/e2b/api_keyworker 通过路径变量如E2B_API_KEY_FILE默认~/.config/e2b/api_key自己读取密钥文件。在多节点集群上这个文件必须能在 rollout worker 运行的每个节点上读到——使用共享文件系统或保证每个节点同一路径存在同一文件。启动器只把文件路径转发给 worker密钥本体永远不离开磁盘。各 Provider 的默认路径与设置方法见 docs/user-guide/sandbox-providers.md。防御 URL 夹带凭证的小细节forward_address()会对所有按值转发的地址类变量做检查只要值里出现符号就抛出异常拒绝转发。因为https://user:tokenhost这种 URL 会把凭证伪装成地址夹带出去而 Ray 会把它明文打进日志。合法的地址、scheme、profile 名都不含所以这个判断零误报。沙箱隔离每个任务都运行在独立容器里Agent 类 RLHarbor、OpenEnv 等连接器会让模型在真实环境里执行代码、操作系统。Miles 的原则是每个任务都获得一个全新的沙箱容器任务结束后完全销毁不留下任何常驻基础设施。支持的沙箱 Provider 与连接器组合沙箱 ProviderHarborHUDNeMo GymOpenEnvE2B / AgentENV✓✓✓✓Daytona✓✓✓✓Modal✓✓E2B / AgentENVFirecracker 微虚拟机隔离强度最高Daytona注意账户有总磁盘配额并发沙箱数 × 单沙箱磁盘要小于配额Modal凭证即写入~/.modal.toml的 token 对。完整配置说明见 docs/user-guide/sandbox-providers.mdOpenEnv 的端到端配方在 examples/experimental/openenv/每集独立云端沙箱、用完即弃。上线前先跑一次黄金冒烟测试在动用 GPU 训练之前Miles 提供了 scripts/sandbox_smoke/run.py用任务自带的参考解golden agent在真实平台上跑一个最小 episode验证镜像解析 → 沙箱创建 → 执行 → 校验 → 销毁的完整链路全程不需要 GPU 和模型python scripts/sandbox_smoke/run.py --connector harbor --backend e2b这一步的价值在于SDK 缺失或版本过低这类问题若拖到训练时才暴露表现会是样本失败 → 组被丢弃 → rollout 循环不断补充的静默 GPU 空烧而不是一个清晰的报错。多节点集群部署安全清单结合 docs/user-guide/launch-script.md 的多节点机制建议按以下清单逐项确认密钥文件全网可读确认共享文件系统挂载或逐节点放置同路径密钥文件正确绑定网络接口多节点运行时导出MASTER_ADDR让 Ray 与 torch distributed 绑定到正确的网卡避免流量走错接口已有集群用MILES_SCRIPT_EXTERNAL_RAY1跳过集群拆除与重建只提交任务减少不必要的破坏性操作ssh fan-out 场景收紧权限--join-ray-workers会让 head 节点 ssh 到 hostfile 中每台机器务必确认这些密钥只授予最小权限额外环境变量走--extra-env-vars只放入地址类信息不要把任何密钥放进去。容错与可观测安全不止是保密安全运营还包括故障时不出乱子引擎健康监控与自愈--use-fault-tolerance开启后健康监控线程周期性对每个 SGLang 引擎发心跳超时的引擎会被隔离并在下次权重更新前原地恢复运行不中断。机制详见 docs/advanced/fault-tolerance.mdP2P 权重传输超时保护RDMA 权重传输受--p2p-transfer-timeout默认 30 秒约束失败会被明确记录日志启动日志是全量审计记录launch script 打印的每一条EXEC:命令都是可追溯的完整执行记录配合 dashboard/ 的监控面板异常行为可以及时被发现。相关文档速查主题路径沙箱 Provider 凭证配置docs/user-guide/sandbox-providers.md凭证管理核心源码miles/rollout/agentic/credentials.py冒烟测试工具scripts/sandbox_smoke/README.md多节点启动机制docs/user-guide/launch-script.md容错机制docs/advanced/fault-tolerance.md新增沙箱 Provider 指南docs/developer/adding-a-sandbox-provider.md一句话总结Miles 的凭证管理遵循路径可转发、密钥不可转发原则沙箱隔离遵循每任务一容器、用完即销毁原则。把这两条落实到多节点部署的每一步你的大规模 RL 后训练才能在安全的前提下跑得又快又稳 【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/miles创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考