nemotron-gym-safety-v2
收藏数据集概述:laion/nemotron-gym-safety-v2
基本信息
- 许可证:CC-BY-4.0
- 任务类别:强化学习(reinforcement-learning)
- 语言:英语(en)
- 标签:harbor, nemotron-gym, rl, verifiable-rewards
- 数据集规模:10K < n < 100K
数据来源
该数据集是 nvidia/Nemotron-RL-Safety-v1 的 Harbor 格式转换版本,属于 NVIDIA 的 NeMo-Gym 集合。
数据集结构
每条数据包含以下列:
| 列名 | 类型 | 描述 |
|---|---|---|
path |
字符串 | 确定性短ID(格式:<family>-<sha256[:12]>.tar.gz) |
task_binary |
二进制 | 包含完整Harbor任务的Gzip压缩tar包 |
tarball 内部布局
解压后的目录结构如下:
instruction.md # 提供给智能体的提示 environment/Dockerfile # python:3.11-slim-bookworm 基础环境 + 特定任务pip依赖 tests/test.sh # 验证器入口(写入 /logs/verifier/reward.txt) tests/verifier.py # 验证器实现(嵌入式、确定性) tests/verifier_data.json # 每个任务的验证器输入(JSON格式,无代码插值) metadata.json # 来源信息:source_dataset, row_index, family 等 task.toml # 标准Harbor任务配置(CPU/内存/超时默认值)
验证器家族
safety_judge(使用 LiteLLM,默认模型为 openai/gpt-4o-mini,依据 principle 评分标准进行评分,并包含启发式拒绝检测回退机制——适用于未设置 OPENAI_API_KEY 的沙箱;同时扫描 /logs/agent 以获取智能体响应,当 /app/response.txt 缺失时使用——v2版本修复了v1中0%的解决率)
转换细节
转换由 OpenThoughts-Agent 中的 data/nemotron_gym 适配器生成,遵循 安全优先设计:
- 数据集内容从不插入到 shell、Python 或 Dockerfile 源码中,所有值通过
tests/verifier_data.json(JSON格式,运行时解析)传递 - 基础镜像使用固定名称(
python:3.11-slim-bookworm),pip规格经过严格的白名单正则表达式验证 - 文本字段去除C0/C1控制字符,长度受限,tarball路径经遍历/NUL/绝对路径攻击验证
- tarball具有确定性(条目排序、
mtime=0、uid/gid=0),生成可重现的字节数据
使用示例
加载数据集: python from datasets import load_dataset ds = load_dataset("laion/nemotron-gym-safety-v2", split="train") print(ds[0]["path"], len(ds[0]["task_binary"]))
运行单个任务: bash python - <<PY import gzip, io, tarfile from datasets import load_dataset ds = load_dataset("laion/nemotron-gym-safety-v2", split="train") row = ds[0] with tarfile.open(fileobj=io.BytesIO(row["task_binary"]), mode="r:gz") as tar: tar.extractall("/tmp/safety-v2-task") PY harbor run -t /tmp/safety-v2-task -e daytona # 或 -e docker




