Sandbox Fusion 使用示例 ============================ 最后更新:06/27/2025。 简介 ------------ Sandbox Fusion 是一款远程代码沙盒服务,提供安全的运行和评估环境,用于处理大型语言模型(LLMs)生成的代码。这个示例展示了如何训练 LLM 并使用 Sandbox Fusion 来验证生成的代码,从而提升安全性和性能。 通过利用具有更大 CPU 资源的远程代码沙盒服务来进行并发代码验证,您可以根据生成代码的质量,将奖励阶段的时间缩短 10-30%。 步骤 1:准备数据集 --------------------------- 我们使用 Eurus-2-RL-Data 数据集进行训练。这个数据集结合了数学和代码问题,非常适合 LLM 训练任务。您可以从 HuggingFace 下载数据集:`Eurus-2-RL-Data 数据集 `_。 步骤 2:设置 Sandbox Fusion 服务 ----------------------------------------- Sandbox Fusion 是一款专为安全运行和评估 LLM 生成的代码而设计的远程代码沙盒服务。要使用它,请执行以下步骤: 1. **访问完整文档**:有关详细设置说明,请参考 `Sandbox Fusion 文档 `_。 2. **部署服务**:选择以下部署方法之一: - **本地部署**:请遵循 `此处 `_ 的指南。 - **FaaS 实例(Volcengine)**:使用 `Volcengine 文档 `_ 创建实例。 部署完成后,您将收到一个格式为 ``https:///run_code`` 的 API 端点。 步骤 3:配置训练脚本 ------------------------------------- 要将 Sandbox Fusion 集成到您的训练脚本中,请配置以下参数: **Sandbox Fusion 的关键设置** - ``reward_model.sandbox_fusion.url=''``:通过指定 API 端点(必须以 ``/run_code`` 结尾)来启用 Sandbox Fusion。 - ``reward_model.sandbox_fusion.max_concurrent=256``:设置向 Sandbox Fusion 服务发送的最大并发 API 请求数量。 - ``reward_model.sandbox_fusion.memory_limit_mb=1024``:设置每个沙盒实例的内存限制(以 MB 为单位)。如果未指定,则默认为 1024MB。 **额外优化** 要进一步减少代码验证时间,请启用并行处理,配置如下: - ``reward_model.reward_manager=prime``:Prime 奖励管理器可在多个子进程中并发验证代码。 **示例脚本** 有关实际实现,请参考示例脚本: ``examples/ppo_trainer/run_deepseek7b_llm_sandbox_fusion.sh`` 在脚本中设置您的 API 端点后,即可启动训练作业。