ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

DeepSeek-V4.1-Flash 评测复现实战:用 Pier 跑通 dsh-minimal 与 mini-swe-agent 的 DeepSWE v1.1 基准

2026/9/30 6:56:54 拓冰建站 浏览量
DeepSeek-V4.1-Flash 评测复现实战:用 Pier 跑通 dsh-minimal 与 mini-swe-agent 的 DeepSWE v1.1 基准 人工智能大模型多模态【免费下载链接】DeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家MoE模型拥有 5520 亿骨干参数并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入并以自回归方式生成文本项目地址https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-V4.1-Flash点击查看免费下载本文是 DeepSeek-V4.1-Flash 仓库内 evaluation/README.md 的完整实操展开以官方发布的dsh-minimal补丁与mini-swe-agent两条路径为准逐步复现 DeepSWE v1.1 基准评测。读完本文你将掌握如何准备环境、获取并打补丁安装 Pier、以两种 agent 形式运行评测套件、理解补丁的底层源码改动以及如何解读jobs/下的评测结果文件。1. 评测背景为什么要复现 DeepSWE v1.1根据仓库根 README.md 的说明DeepSeek-V4.1-Flash 的代码智能体code agent基准Terminal-Bench 2.1/3.0/4.0、DeepSWE v1.1、NL2Repo-Bench、ProgramBench 等均以DeepSeek Harness 的 Minimal 模式配合1M token 上下文窗口评估其中 DeepSWE v1.1 为对齐官方环境要求而使用mini-SWE harness即下文中的mini-swe-agent。所有 agent 评测使用temperature1.0, top_p0.95。README 中给出的同一模型在不同脚手架上的 DeepSWE v1.1Resolved结果为mini-SWE74.2、DSH Minimal72.6、DSH Standard 70.5、DSH PTC 67.6Terminal-Bench 2.1Pass1上 DSH Minimal 达到90.6、mini-SWE 90.3。而dsh-minimal正是本仓库评测目录所聚焦的官方 Minimal 模式评测路径——本文要复现的就是跑出这一类结果所需的完整工程流程。2. 前置条件Prerequisites评测运行在宿主机 Docker 沙箱的架构上需满足Docker处于运行状态且能够拉取镜像Python 3.12与uvPython 包与项目管理工具用于安装 Pier 及运行pier run任意 DeepSeek-API 兼容服务的 endpoint 与 key下文以 DeepSeek 官方 API 为例。通过环境变量注入 API 凭证export DEEPSEEK_API_KEYsk-your-key-here export DEEPSEEK_BASE_URLhttps://api.deepseek.com这两个变量在后续pier run中通过--aeagent 环境变量传入容器dsh-minimalagent 会读取DEEPSEEK_API_KEY缺失时直接报错与DEEPSEEK_BASE_URL缺省回落到https://api.deepseek.com见补丁中dsh_minimal.py的_base_url()。3. 获取 Pier 与 DeepSWE评测套件由两部分组成调度框架Pierdatacurve-ai/pier与任务集DeepSWEdatacurve-ai/deep-swe。两者都必须 checkout 到与本补丁匹配的指定 commitgit clone https://github.com/datacurve-ai/pier.git git -C pier checkout 0c802fc067a425345b24d1c69411aa98acf61a1d git clone https://github.com/datacurve-ai/deep-swe.git git -C deep-swe checkout 0b9fabbb63b9104d678fe965e1632f2dd9eaa2ea注意commit 是补丁正确应用的前提。后续所有命令默认在pier目录内执行任务集通过相对路径../deep-swe/tasks引用。4. 打补丁并安装 Pier仓库 evaluation/dsh-minimal.patch 随本文档一同发布。官方明确提示把它当作参考补丁reference patch请根据你自己的环境适配后再应用。应用与安装cd pier git apply /path/to/dsh-minimal.patch uv sync补丁共改动/新增了多个文件下面结合补丁源码逐条说明其行为帮助你判断是否需要在自有环境上做适配。4.1 新增dsh-minimalagent补丁在src/pier/agents/factory.py中注册了新的 agent 类型DshMinimal并在src/pier/models/agent/name.py中新增枚举DSH_MINIMAL dsh-minimal。核心实现在src/pier/agents/installed/dsh_minimal.py该 agent通过 Harness SDK 驱动模型并把 SDK 的事件流折叠fold成一条 Pier 的ATIF 轨迹SUPPORTS_ATIF True轨迹文件固定为trajectory.jsonSDK 产物从不安装进镜像第 5.2 节的--mounts-json将宿主机上的 SDK 目录以只读方式 bind-mount 进沙箱挂载点常量DIST /opt/dsh-minimal因此任何 trial 都不会往镜像里安装东西install_spec()直接返回NoneThe distribution is bind-mounted, so no image layer is needed配合base.py中install()对None的空迭代处理跳过镜像层安装setup()会把随附的dsh_minimal_runner.py上传到容器内的/tmp/dsh-minimal-runner.py并确保可读network_allowlist()只放行DEEPSEEK_BASE_URL指向的地址运行参数方面reasoning_effort只接受(low, high, max)三个取值非法值直接抛ValueError模型名缺省为deepseek-flash。4.2 为两个 agent 追加运行时约束补丁在src/pier/agents/installed/base.py中定义了统一的运行时约束段并分别注入到dsh-minimal与mini-swe-agent的任务指令尾部## Runtime constraints - Work in /app; do not modify files under /tests. - No network or mirror access; use only dependencies already in the image.即agent 只能在/app下工作、不得改动/tests、不得访问网络或包镜像。这保证了评测环境的隔离性与公平性也让测试验证verifier跑在未被 agent 污染的环境里。4.3 向容器传递测试运行器并发上限Docker 的--cpus只是带宽配额quota容器内nproc依然报告宿主机核数测试运行器会据此把 worker 池开到远超容器实际份额的规模。补丁新增src/pier/environments/docker/parallelism.py按 CPU 上限为各类运行器注入并发上限GOMAXPROCSGo、CARGO_BUILD_JOBSRust 构建、NEXTEST_TEST_THREADSRust 测试、PYTEST_XDIST_AUTO_NUM_WORKERSpytest-xdist直接取 CPU 上限值对不吃环境变量的 Node 运行器额外生成一个node --require预加载脚本/opt/pier-node-cpu-clamp.js通过覆写os.cpus()/os.availableParallelism()来钳制 worker 数并以只读卷挂进容器。这些改动集中在src/pier/environments/docker/docker.py的资源 compose 生成逻辑中。4.4 启用容器内 IPv6 回环Docker 默认在容器网络命名空间禁用 IPv6导致绑定::1的测试套件被跳过并判为失败。补丁为 Linux 容器统一写入 sysctlnet.ipv6.conf.all.disable_ipv60Windows 容器除外从而与真实 Linux 主机的行为对齐。4.5--mounts-json改为叠加而非替换原 Pier 中--mounts-json会整体替换默认挂载补丁将其语义改为增量叠加docker.py中挂载列表变为[*self._default_log_mounts(), *(mounts_json or [])]从而保留承载 agent 日志与收集补丁的/logs绑定卷。注意验证器verifier环境使用独立的mounts_override参数不共享这些目录见src/pier/trial/trial.py。5. 运行评测套件两个 agent 使用同一任务集、同一并发度、同一--no-delete--no-delete会在多次 trial 之间缓存任务镜像。官方建议每次运行更换--job-name多次运行后取平均以降低采样波动。资源规划每个 trial 的容器占用其任务声明的2 CPU 与 8 GB 内存因此-n并发 trial 数要按宿主机的核数与内存来设定避免超额调度。5.1 mini-swe-agentPier 会在每个任务镜像构建/运行期把mini-swe-agent安装进去宿主机侧无需任何准备uv run pier run \ -p ../deep-swe/tasks \ --agent mini-swe-agent \ --model deepseek/deepseek-flash \ --ak reasoning_effortmax \ --ak cost_limit0 \ --ae DEEPSEEK_API_KEY$DEEPSEEK_API_KEY \ --ae DEEPSEEK_BASE_URL$DEEPSEEK_BASE_URL \ -n 32 --no-delete -r 2 --job-name deepswe-mini-run1 -y要点--model接受 litellm 风格的provider/model字符串这里deepseek/deepseek-flash--ak是传给 agent 的附加参数reasoning_effortmax对应最大推理努力cost_limit0关闭成本上限-r 2表示每个任务重复 2 次。5.2 dsh-minimaldsh-minimal需要在宿主机安装一次 Harness SDK 产物再以只读方式 bind-mount 进每个容器。首先安装 SDKmkdir -p ~/dsh-minimal cd ~/dsh-minimal uv pip install --target dsh-dist \ --python-version 3.12 --python-platform x86_64-manylinux_2_28 \ deepseek-harness-sdk0.1.5.*关键点--target dsh-dist把 SDK 装到指定目录而非 site-packages--python-version 3.12 --python-platform x86_64-manylinux_2_28保证产物与任务镜像内的 Python 运行时3.12、x86_64 Linux兼容。然后运行uv run pier run \ -p ../deep-swe/tasks \ --agent dsh-minimal \ --model deepseek-flash \ --ak reasoning_effortmax \ --ae DEEPSEEK_API_KEY$DEEPSEEK_API_KEY \ --ae DEEPSEEK_BASE_URL$DEEPSEEK_BASE_URL \ --mounts-json [{type:bind,source:$HOME/dsh-minimal/dsh-dist,target:/opt/dsh-minimal,read_only:true}] \ -n 32 --no-delete --job-name deepswe-dsh-run1 -y--mounts-json说明source上文dsh-dist目录的绝对路径target固定为/opt/dsh-minimal与源码中DIST常量一致runner 与 SDK 均从该路径加载read_only: true只读挂载容器内任何 trial 都无法改写 SDK 产物。与 mini-swe-agent 命令相比这里--model直接写deepseek-flash不带 provider 前缀也未传-r如需多重复实验可自行添加。5.3 参数速查表参数含义取值/说明-p任务集目录指向deep-swe/tasks--agent运行的 agentmini-swe-agent或dsh-minimal--model模型标识litellm 风格provider/model如deepseek/deepseek-flashdsh-minimal 也接受裸模型名--akagent 附加参数keyvalue可重复如reasoning_effortmax、cost_limit0--aeagent 环境变量keyvalue可重复如DEEPSEEK_API_KEY、DEEPSEEK_BASE_URL--mounts-json附加挂载的 JSON 数组仅 dsh-minimal 需要语义为叠加在默认/logs挂载之上-n并发 trial 数按宿主机核数/内存规划每 trial 约 2 CPU / 8 GB--no-delete不删除任务镜像缓存镜像以便多次 trial/多 job 复用-r每任务重复次数mini-swe-agent 示例为 2--job-name本次运行的作业名决定jobs/下的输出目录名换名重跑便于取平均-y跳过交互确认直接执行6. 读取与浏览结果运行结束后结果按作业名落在jobs/job-name/下jobs/job-name/ result.json pass rate and token totals task__id/ result.json reward, fail-to-pass / pass-to-pass counts, tokens agent/trajectory.json full ATIF trajectory (dsh-minimal) agent/mini-swe-agent.trajectory.json mini-swe-agent trajectory verifier/ reward.json and test output字段含义作业级result.json通过率pass rate与token 总量任务级task__id/result.jsonreward、fail-to-pass / pass-to-pass 计数即 SWE-bench 风格的回归指标、token 消耗agent/trajectory.jsondsh-minimal的完整 ATIF 轨迹详见下节agent/mini-swe-agent.trajectory.jsonmini-swe-agent 的轨迹verifier/验证器产出的reward.json与测试输出。浏览某个作业的完整结构uv run pier view jobs/job-name7. 从源码看 dsh-minimal 的 ATIF 轨迹产出补丁随附的src/pier/agents/installed/dsh_minimal_runner.py是轨迹产出的核心它以DeepSeekHarness(profilesdk-minimal, providerdeepseek-official, ...)驱动 Harness并通过on_notification回调把session.event流交给Collector折叠成ATIF v1.7格式的轨迹。几个值得注意的实现事实一个模型调用对应一条 agent stepCollector._step()以(turn, step)为键去重llm_call_count恒为 1tool/call与assistant/message中的 tool-call 块都收敛到同一 step 的tool_callstool/result通过callId回填到发起调用的 step 的observation.resultstoken 口径_metrics()把 SDK 报告的inputTokens与cacheReadTokens/cacheWriteTokens重新合并为prompt_tokenscompletion_tokens取outputTokens并单独记录cached_tokens与可选reasoning_tokens失败也能留痕轨迹在每条通知后与finally中都执行 checkpoint 写入先写临时文件再原子替换即使 harness 异常退出extra.failure也会记录异常类型与消息轨迹文件仍然完整退出码语义仅当无失败且finish_reason为completed或max-tokens可被验证器评分的有界结果时进程以 0 退出否则退出 1 标记该 trial 未产生可用 turnsdk-minimal 无压缩compactionfinal_metrics中summarization_count恒为 0peak_context_tokens取各 step 的最大 prompt token 数即该 profile 不会用摘要 step 替代历史前缀。对复现者而言这意味着jobs/job-name/task__id/agent/trajectory.json是可直接审计的逐模型调用记录配合verifier/reward.json可以精确定位某个任务失败发生在哪一步、消耗了多少 token。8. 与已发布结果的对照与注意事项仓库 README 的“Performance across agent scaffolds”表以N8 采样/任务DeepSWE v1.1、N3Terminal-Bench 2.1、Linux 容器、temperature1.0, top_p0.95、1M token 上下文、max_steps500为统一设置本指南中的命令默认未显式传递这些采样参数如需与官方数值严格对齐应在任务集/采样配置层面补充 N 与max_steps官方结果中 DSH Minimal 与 mini-SWE 在 DeepSWE v1.1 上分别报 72.6 与 74.2Resolved说明两条路径都是官方认可的复现通道但数值会受到任务采样、并发调度与宿主环境的影响因此文档强调“更换--job-name多次运行后取平均”本指南给出的命令以 DeepSeek 官方 API 为例任何 DeepSeek-API 兼容服务只需替换DEEPSEEK_BASE_URL与DEEPSEEK_API_KEY即可dsh-minimal.patch是参考补丁Pier 与 deep-swe 后续版本可能引入 API 变化应用前请先在对应 commit 上验证git apply的干净度并检查src/pier/下相关文件是否与补丁上下文一致。9. 小结复现 DeepSWE v1.1 评测的完整链路为准备 Docker / Python 3.12 / uv 与 API 凭证 → 拉取 Pier 与 DeepSWE 到指定 commit → 应用dsh-minimal.patch并uv sync→ 用pier run分别驱动mini-swe-agentPier 自动安装与dsh-minimal宿主安装 SDK 只读 bind-mount→ 在jobs/job-name/中解读 pass rate、reward、fail-to-pass/pass-to-pass 与 ATIF 轨迹。两条路径共享任务集与并发语义差异仅在 agent 的部署形态一个由 Pier 打进镜像一个以只读卷注入。掌握本节流程后你即可在自己的宿主环境上独立复现 DeepSeek-V4.1-Flash 的 DeepSWE v1.1 基准结果并依据 ATIF 轨迹进行逐任务审计。赞分享人工智能大模型多模态【免费下载链接】DeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家MoE模型拥有 5520 亿骨干参数并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入并以自回归方式生成文本项目地址https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-V4.1-Flash点击查看免费下载相关推荐Trae Agent 基准评测实战指南基于 SWE-bench、SWE-bench-Live 与 Multi-SWE-bench 的端到端评测流程Trae Agent 基准评测实战指南基于 SWE bench、SWE bench Live 与 Multi SWE bench 的端到端评测流程 本篇指南完人工智能大模型AI AgentAgent 框架代码智能体CLI工具调用mini-swe-agent 实战指南在 SWE-bench 基准上批量运行与单实例调试mini swe agent 实战指南在 SWE bench 基准上批量运行与单实例调试 导读 本指南以 mini swe agent 仓库提供的两个官方脚本人工智能大模型AI Agent代码智能体mini-swe-agent SWE-ReX Docker 环境实战指南用 SWE-ReX 沙箱化 Docker 执行运行 SWE-bench 评测mini swe agent SWE ReX Docker 环境实战指南用 SWE ReX 沙箱化 Docker 执行运行 SWE bench 评测 mini人工智能大模型AI Agent代码智能体创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考