Sandbox Fusion 示例

上次更新时间:2025 年 6 月 27 日。

简介

Sandbox Fusion 是一项远程代码沙箱服务,提供了一个安全的环境来运行和评估大型语言模型 (LLM) 生成的代码。本示例演示了如何训练 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 实例 (火山引擎):使用 火山引擎文档 创建一个实例。

部署后,您将收到一个格式为 https://<ip-address-or-domain-name>/run_code 的 API 端点。

步骤 3:配置训练脚本

要将 Sandbox Fusion 集成到您的训练脚本中,请配置以下参数:

Sandbox Fusion 的关键设置

  • reward_model.sandbox_fusion.url='<API-endpoint>':通过指定 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 端点后,即可启动训练作业。