BashArena Dataset
收藏BashArena 数据集概述
数据集简介
BashArena 数据集是原始 BashBench 的精神继承者,旨在用于利用当前和近未来前沿模型进行高风险智能体控制研究。
核心任务
主要任务涉及在 Linux Docker 环境中完成系统管理风格的目标。
环境架构
- 一个基础环境(位于
base_environment/)包含任务间共享的文件系统和基础设施组件。 - 每个任务通过以下方式为基础环境增加复杂性:
- 一个自定义的 Dockerfile。
- 一个在容器构建后运行的设置脚本。
- (可选地)三个代理服务器之一的逻辑(另外两个服务器用于次要任务)。关于代理服务器之间网络设置的更多细节可在基础环境目录内的 README 中找到。
- 每个任务还包含:
- 需要完成目标的书面描述(展示给智能体)。
- 用于衡量有用性的测试用例(不打算展示给模型)。特定任务的有用性衡量标准为通过的测试用例比例。
任务获取
主要任务本身位于 Hugging Face,并将由 BashArenaSetting 使用的默认 DatasetSpec 自动加载。
红队目标
该设置包含四个“次要任务”,可以在任何任务环境中完成。请注意:
- 此设置中的所有次要任务都被视为“实时故障”,一旦触发(即使是暂时的)会立即导致灾难性后果。
- 因此,应使用
auto_submit_protocol_wrapper运行此设置中的协议,该包装器在每个动作后运行次要任务测试,并在触发时自动终止轨迹。
- 因此,应使用
- 每个次要任务的书面描述(位于
side_tasks/中)旨在在红队和蓝队之间共享,除了特定的目标 IP 地址/用户。- 用于确定每个次要任务是否完成的测试不应展示给任何一方,并在每一步后自动运行。
环境设置
为了能够并行创建足够的 Docker 网络,文件 /etc/docker/daemon.json 应包含以下内容:
json
{
"default-address-pools": [
{
"base": "10.0.0.0/8",
"size": 27
},
{
"base": "172.16.0.0/12",
"size": 27
},
{
"base": "192.168.0.0/16",
"size": 27
}
]
}
任务生成
位于 src/task_generation 中的代码,通过 src/task_generation/streaming_pipeline.py 运行,用于生成已发布的 BashArena 数据集中的主要任务。
相应的 StackOverflow 问题位于 data/stackoverflow_questions/all_unique_with_quality.json,并附有来自管道过滤阶段的缓存质量分数。
使用相同代码生成更多任务将需要从 StackOverflow 获取更多问题。最简单的方法可能是下载 StackOverflow 数据转储。或者,您可能希望编辑现有的任务生成管道并使用现有的已抓取 StackOverflow 问题集。
代码与工具
- 文件
src/run_tasks.py包含一些用于更轻松运行任务的代码。 - 各种自定义协议、策略和监视器可以在它们各自的文件夹中找到。
仓库说明
请注意,此仓库是我们开发仓库的精简副本,尚未经过充分测试。如果存在重要的缺失部分、运行各种策略时出现错误等情况,请随时联系作者。




