Download docs/SWESMITH_GRPO_700_EXPANSION.md from keryszhan/harbor-qwen-grpo-experiment: direct link, hf CLI and curl.
- Browser
- Download file 8.25 kB
-
https://huggingface.co/spaces/keryszhan/harbor-qwen-grpo-experiment/resolve/main/docs/SWESMITH_GRPO_700_EXPANSION.md
- Command line
-
hf download hf://spaces/keryszhan/harbor-qwen-grpo-experiment/docs/SWESMITH_GRPO_700_EXPANSION.md
-
curl -L -o SWESMITH_GRPO_700_EXPANSION.md https://huggingface.co/spaces/keryszhan/harbor-qwen-grpo-experiment/resolve/main/docs/SWESMITH_GRPO_700_EXPANSION.md
SWE-Smith GRPO 700题扩充名单
固定日期:2026-08-15;结果更新:2026-08-17
状态:700题主名单与487题候补名单用于扩充和Oracle候选。项目随后按允许短缺决策冻结267题,并已完成任务镜像、导出、AutoDL导入、注册和64K Canary;700不是最终训练集规模。2026-08-30项目阶段性归档,腾讯云CVM、云硬盘和k3s运行面已经释放。
1. 结论
主名单已按两阶段固定为700题,两个阶段互不重叠:
| 阶段 | 定义 | 数量 | 当前状态 |
|---|---|---|---|
| A | swe-smith-filter-pro 内扩充 |
350 | 保留原125题,新增225题;350题均已有 completed 基础镜像 |
| B | 官方 SWE-Smith 中存在、但不属于完整 swe-smith-filtered 3,748题集合 |
350 | 仅完成名单筛选;需要生成任务目录并处理镜像 |
| 合计 | GRPO候选主名单 | 700 | 不是最终可训练的 freeze 数据集 |
阶段A保留了现有125题 freeze-pro,没有因重新排序而删除历史任务。新增225题均来自原487题 filter-pro 且 image_available=true。阶段A仍需对新增任务补做正式 Oracle、split 和注册验收,验收完成后才能称为新的 freeze-pro-350。
阶段B使用完整固定 revision 的 kylemontgomery/swesmith-filtered 3,748题做差集,不是只减去487题 filter-pro。因此这350题确实来自此前 filtered 数据集之外。
最终执行没有强行补齐700题。完成静态、alignment、Oracle、镜像、仓库上限和split约束后,项目按显式短缺模式选择267题;该结果详见第8节。上表继续描述候选计划,不再作为当前状态。
2. 固定数据源
| 数据源 | 固定 revision | 用途 |
|---|---|---|
SWE-bench/SWE-smith |
ea6d7173829c7ec8fa16c22055699ff2e9188091 |
59,136个唯一官方任务及基础镜像元数据 |
kylemontgomery/swesmith-filtered |
d5e8f5b004b9727509d74f2a63637b09386901f1 |
完整3,748题差集边界 |
SWE-bench/SWE-smith-trajectories |
08e109b4a59eaeebf80e4675cd125d42e7ac99a4 |
Claude 3.7、Claude 3.5、GPT-4o逐任务成功证据 |
RUCAIBox/SWE-Master |
bc8904f44d62f10b5eb16189b22eca31e20cd48e |
MiniMax-M2/GLM-4.6教师池任务级成功证据 |
SWE-Master没有公开逐任务的教师模型归属。因此本文中的“跨数据源成功”只表示官方Claude/GPT轨迹与SWE-Master教师池均存在成功证据,不表示五个模型全部成功,也不能判断具体由MiniMax-M2还是GLM-4.6成功。
3. 筛选优先级
任务按以下证据层级选择,层内再优先GPT-4o、Claude 3.5、Claude 3.7成功,并以 sha256(task_id) 做最终稳定排序:
- 官方轨迹与SWE-Master两个数据源均成功;
- 官方Claude/GPT轨迹成功;
- SWE-Master
reward_mean=1; - SWE-Master
0<reward_mean<1。
阶段A另外有两个不可覆盖的约束:完整保留原125题,新增任务必须已有 completed 基础镜像。阶段B主名单和候补名单不受当前镜像状态限制,因为它们尚未进入项目的镜像流水线。
选择器在证据层级内按仓库轮转,并设置每个350题阶段约5%的初始仓库上限,即18题。本次无需放宽上限。阶段A覆盖67个仓库,阶段B覆盖102个仓库,合并后覆盖107个仓库。
4. 主名单统计
| 指标 | 阶段A | 阶段B | 合计 |
|---|---|---|---|
| 任务数 | 350 | 350 | 700 |
| 跨数据源成功 | 32 | 350 | 382 |
| 仅官方轨迹成功 | 277 | 0 | 277 |
| 仅SWE-Master full | 11 | 0 | 11 |
| 仅SWE-Master partial | 30 | 0 | 30 |
| GPT-4o成功 | 0 | 13 | 13 |
| Claude 3.5成功 | 36 | 41 | 77 |
| Claude 3.7成功 | 280 | 335 | 615 |
| 仓库数 | 67 | 102 | 107 |
同一任务可以被多个官方模型成功,因此模型列不能相加得到任务总数。阶段B的350题全部具有跨数据源成功证据;这意味着尚未使用低优先级任务就已达到目标规模。
5. 候补容量
候补名单共有487题:
- 阶段A候补137题,其中120题已有 completed 基础镜像,17题尚无当前镜像;
- 阶段B固定350题候补,350题也全部为跨数据源成功;
- 扣除阶段B主名单和候补后,仍有10,314个符合成功证据且位于完整 filtered 集合之外的候选任务。
候补任务不与700题主名单重叠。后续静态检查、Oracle或镜像处理失败时,应按同一阶段候补顺序替换,不能用阶段B任务替换阶段A并继续声称满足 filter-pro-350 定义。
6. 文件与复现
主名单:
configs/datasets/swesmith-grpo-700-20260815.json- SHA-256:
660cf10573a71086768442f171b86a99df41f564306ef2291de587053e640e61
候补名单:
configs/datasets/swesmith-grpo-reserves-20260815.json- SHA-256:
e0029d372740e3fd3a097d008e9e974166f3cf0dd815c52c2ad1b37cb21f1f82
每条记录包含任务ID、阶段、仓库、基础镜像名、证据层级、成功的官方模型、SWE-Master结果类型、当前镜像状态、是否保留自原 freeze-pro,以及是否属于固定30题模型选择Canary。主名单包含全部30题Canary,候补名单不包含Canary题。
可复现入口:
make swesmith-grpo-700-plan
只查看两个主阶段的任务ID:
jq -r '.tasks[] | select(.stage == "filter_pro") | .task_id' \
configs/datasets/swesmith-grpo-700-20260815.json
jq -r '.tasks[] | select(.stage == "outside_filtered") | .task_id' \
configs/datasets/swesmith-grpo-700-20260815.json
该复现命令只读取固定公开元数据并重建名单,不下载任务目录、不执行Oracle、不构建镜像,也不访问TCR。
7. 后续处理边界
实施已固定以下硬约束:
- 单仓库最多20题,最终split精确为490/105/105且仓库隔离;
- Stage A和Stage B必须各350题,Stage A不足时停止并报告,不用Stage B静默补齐;
- 复用历史177个Oracle accepted和103个180秒口径下的终止失败,仅4个
RuntimeError重试; - 保持现有80个TCR任务分片。每个Oracle批次先查询实际tag并做增量投影,任一分片超过100 tag即禁止云端作业;
- 复用旧版已验收的基础镜像rewrite;新基础镜像以
baseanchor-*确定性分散到现有task-00..79,不新增仓库。Linux镜像搬运在首次copy前查询目标仓库实tag并对完整pending集合做100 tag硬门禁; - 静态结果、Oracle结果、最终选择、导出包和注册数据均校验任务树/verifier指纹及精确ID集合。
执行顺序:
export CURATION_VERSION=swesmith-grpo-700-v1
export CURATION_PROFILE=grpo700
make grpo700-plan
make grpo700-materialize
make dataset-filter
make dataset-images-plan
make dataset-images-mirror-linux
make dataset-images-check
make grpo700-oracle-reconcile
# 重复执行,直到无pending任务或确认Stage A无法达标。
make dataset-oracle
make grpo700-status
make grpo700-resolve
make dataset-freeze-check
make dataset-freeze
make dataset-export
dataset-freeze在grpo700 profile下会先对最终700题的TCR任务镜像做存在性验收,然后才生成freeze-700/。AutoDL仅在导入包的SHA-256、split ID、任务指纹和数量全部一致后执行make dataset-register。实际CVM作业完成前,本文件的700个ID仍不得当成可训练freeze数据。
8. 最终冻结结果(2026-08-17)
项目最终没有把数量门槛置于质量门禁之上。以CURATION_ALLOW_SHORTFALL=true解析得到267题、89个仓库,单仓最大13题:
| 指标 | 结果 |
|---|---|
| train | 187 |
| validation | 42 |
| test | 38 |
| Stage A | 217 |
| Stage B | 50 |
| 仓库 | 89 |
| 任务镜像 | 267/267 verified |
正式数据集名为swesmith-curated-grpo-267-v1,split manifest语义摘要为ae5df9a3f4a3fc8af44fac420b36529e283839e1bd3de9daba65d5bcda51447d。导入后的profile状态为static_total=1187、static_accepted=1032、oracle_total=473、oracle_accepted=283、基础镜像103 available/2 skipped/0 pending。
冻结后使用Klear-AgentForge-8B-SFT在validation确定性抽样30题执行64K Canary,结果为12/30、Mean 0.400、Exceptions 0。后续GRPO或PPO都只消费同一267题freeze;算法切换不修改split、任务内容、镜像或Oracle结果。