DeepSeek V4.1 Flash DeepSWE Reproduction
复现 DeepSeek V4.1 Flash DeepSWE:DSH Minimal 实验指南
- 作者
- DeepSeekAgent.io 编辑部
- 发布
- 更新
DeepSeek 为 V4.1 Flash 的 DeepSWE v1.1 结果公开了一条可复现路径。它对 Harness 研究很有价值:官方材料提供了固定的 Pier 与 DeepSWE 版本、dsh-minimal 接入补丁、容器约束、运行命令,以及逐任务 Trajectory 的保存位置。
官方模型卡报告,使用 DeepSWE 官方 mini-SWE Harness 时解决率为 74.2,使用 DSH Minimal 时为 72.6。这是两个不同 Scaffold 的结果。要接近官方数字,需要尽量匹配完整实验条件;单次本地运行只能用于验证链路和发现问题。
DeepSeek 报告了什么
官方 Scaffold 表格固定 V4.1 Flash,改变 Agent Runtime:
| Scaffold | DeepSWE v1.1 解决率 | Terminal-Bench 2.1 Pass@1 |
|---|---|---|
| Claude Code | 69.8 | 88.0 |
| Codex | 65.6 | 84.1 |
| OpenCode | 65.5 | 85.0 |
| Pi | 66.2 | 86.1 |
| mini-SWE | 74.2 | 90.3 |
| DSH Minimal | 72.6 | 90.6 |
| DSH Standard | 70.5 | 85.8 |
| DSH PTC | 67.6 | 85.8 |
DeepSeek 表示,DeepSWE 表格每个任务使用 8 个样本。共同条件包括 Linux 容器、temperature=1.0、top_p=0.95、100 万 Token 上下文,以及每个 Agent 最多 500 步。报告模型成绩时需要同时写清 Harness,表格本身已经展示了 Scaffold 对结果的影响。
复现前准备
环境需要 Docker、Python 3.12 或更高版本、uv,以及 DeepSeek API 兼容 Endpoint。Key 应放在环境变量中,避免进入脚本与日志:
export DEEPSEEK_API_KEY="your-key"
export DEEPSEEK_BASE_URL="https://api.deepseek.com"
官方步骤把 Pier 与 DeepSWE 固定到具体 Commit。第一次基线运行应保留这些版本,后续升级实验单独记录配置。随模型仓库提供的 dsh-minimal.patch 负责把 Harness SDK 接入 Pier 的 ATIF Trajectory 格式,并加入评测约束。
补丁为什么重要
补丁处理了多项可能改变分数的细节:
- 把预先准备的 Harness SDK 以只读方式挂载进每个 Sandbox。
- 要求 Agent 在
/app工作、不修改/tests、不访问网络或包镜像。 - 把测试运行器并发上限传入容器。
- 启用 IPv6 Loopback,避免绑定
::1的测试被跳过后计为失败。 - 添加 DSH 挂载时保留 Pier 默认
/logs挂载。
这些属于实验控制条件。缺少任意一项,都可能改变测试是否执行、测试进程实际拿到的 CPU,或 Trajectory 与 Patch 能否被完整收集。
准备 DSH Minimal
官方路径先在宿主机目录中准备 deepseek-harness-sdk 0.1.5 系列 Artifact,目标环境是 Python 3.12 与 x86_64 manylinux;随后把该目录挂载到每个任务容器的 /opt/dsh-minimal。每轮 Trial 不会在镜像内部重新安装 SDK。
第一次复现应直接使用官方源文档中的精确命令。核心配置需要保持一致:
| 设置 | 基线值 |
|---|---|
| Agent | dsh-minimal |
| 模型 | deepseek-flash |
| 推理强度 | max |
| 单任务资源 | 按任务声明使用 2 CPU、8 GB |
| 并发示例 | 32,应按宿主机资源调整 |
| 网络 | 任务约束下关闭 |
| SDK 挂载 | 只读挂载到 /opt/dsh-minimal |
并发数不能机械照抄。应同时根据 CPU 与内存设置,否则主机资源争抢会把 Harness 对比变成调度器对比。
用 mini-SWE 作为对照
同一份官方说明也包含 mini-swe-agent 路径。Pier 会把它安装到各任务镜像中,其模型字符串采用 LiteLLM 风格的 deepseek/deepseek-flash;DSH Minimal 直接使用 deepseek-flash。
两套都运行,可以更快定位偏差来源:
- 两边同时下降:检查 Endpoint、模型路由、容器资源与任务版本。
- 只有一边下降:检查对应 Agent Prompt、Tool Loop、补丁、步数上限与 Trajectory 转换。
- 通过率接近但成本或 Token 差异很大:先核对 Provider 与缓存口径,再判断 Harness 影响。
读取并审计输出
Pier 会保存总览 result.json、逐任务结果目录、Verifier 输出、收集到的 Patch,以及 DSH Minimal 的 ATIF Trajectory。至少检查以下内容:
- 总体解决率与 Token 总量。
- 每项任务的 Reward、fail-to-pass 与 pass-to-pass 数量。
- Trajectory 中的工具调用和推理状态变化。
- 环境因素导致失败时的测试输出。
- 两种 Scaffold 结果不同的具体任务。
可以用 uv run pier view jobs/<job-name> 浏览单个 Job。建议同时保存原始输出与实验清单,清单包含 Commit Hash、SDK 版本、Endpoint、运行时间、并发数、模型 ID 和推理强度。
怎样可靠地报告结果
报告应包含任务数量、每任务样本数、平均解决率、重复运行的不确定性、实际费用与失败类型。API 路径不同,或模型别名背后路由发生变化,都应作为新的实验单独标注。
官方 DSH Minimal 72.6 与 mini-SWE 74.2 只描述一个模型快照、一个 Benchmark 版本和一组有边界的实验条件,无法推导出长期固定的 Harness 排名。
相关阅读
- DeepSeek V4.1 Flash 完整解读
- 在 DeepSeek Harness 中配置 V4.1 Flash
- V4.1 Flash 与 V4 Flash 的 Harness 场景对比
- DeepSeek Harness vs Pi 社区测试解读
常见问题
72.6 是 V4.1 Flash 的 DeepSWE 总成绩吗?
72.6 是 DeepSeek 在跨 Scaffold 表格中报告的 DSH Minimal 成绩。主要模型对比采用 DeepSWE 官方 mini-SWE Harness,报告成绩为 74.2。
跑一次可以复现官方成绩吗?
不可以。模型卡说明 DeepSWE Scaffold 评测对每个任务使用 8 个样本。一次运行可以验证管线与发现失败,无法复现该聚合结果。
为什么要固定 Pier 与 DeepSWE Commit?
任务、Verifier、容器行为和适配代码都可能变化。固定版本让基线可审计,也能避免后续变更悄悄进入对比。