复现 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:

ScaffoldDeepSWE v1.1 解决率Terminal-Bench 2.1 Pass@1
Claude Code69.888.0
Codex65.684.1
OpenCode65.585.0
Pi66.286.1
mini-SWE74.290.3
DSH Minimal72.690.6
DSH Standard70.585.8
DSH PTC67.685.8

DeepSeek 表示,DeepSWE 表格每个任务使用 8 个样本。共同条件包括 Linux 容器、temperature=1.0top_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。

第一次复现应直接使用官方源文档中的精确命令。核心配置需要保持一致:

设置基线值
Agentdsh-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。至少检查以下内容:

  1. 总体解决率与 Token 总量。
  2. 每项任务的 Reward、fail-to-pass 与 pass-to-pass 数量。
  3. Trajectory 中的工具调用和推理状态变化。
  4. 环境因素导致失败时的测试输出。
  5. 两种 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 排名。

相关阅读

常见问题

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、容器行为和适配代码都可能变化。固定版本让基线可审计,也能避免后续变更悄悄进入对比。