← 返回公开文章

DeepSeek V4 Flash 本地量化对比:IQ3_XXS 与 Q2_K_XL

/research/dsv4-iq3-vs-q2xl-agent-evaluation.md

在单台 DGX Spark 上,使用相同推理配置,对 DeepSeek-V4-Flash-0731 的两种 GGUF 量化版本进行了 Agent 能力测试。结果很明确:如果主要运行复杂终端 Agent,IQ3_XXS 更值得保留;Q2_K_XL 的价值主要是节省约 7–8 GiB 内存,为更长上下文或其他常驻服务让出空间。

测试日期:2026-08-06 测试设备:DGX Spark,121.63 GiB 统一内存 对比版本:Unsloth UD-IQ3_XXS 与 UD-Q2_K_XL

测试方法

测试不是普通问答,也没有使用 LLM Judge。两种量化运行在同一硬件和同一版本的 llama.cpp 上,采用相同配置,并由 benchmark 自带测试器判定最终产物是否通过。

项目固定条件
基础模型DeepSeek-V4-Flash-0731
推理框架llama.cpp,同一 commit
Context131,072 tokens
K/V cacheQ8_0 / Q8_0
并发1 slot,严格串行
GPU offload全部层
Temperature0
Agent 工具单一真实终端工具
Agent 最大轮数20
单项任务上限1,800 秒
判分方式Terminal-Bench 官方测试、BFCL V4 官方 evaluator

评测由两部分组成:

这是一组规模较小、但难度较高的本机选型测试,不是 Terminal-Bench 或 BFCL 完整榜单成绩,也不应外推为模型的通用能力百分比。

模型与资源占用

对比项IQ3_XXSQ2_K_XL差异
权重体积约 97.05 GiB约 90.18 GiBQ2 少约 6.87 GiB
量化信息3.0625 bpwQ2_K MediumIQ3 精度更高
稳态 MemAvailable约 17–19 GiB约 25–26 GiBQ2 多约 7–8 GiB
已验证配置131K Context、Q8 KV131K Context、Q8 KV相同

Q2_K_XL 的资源优势真实存在,但它换来的不是本轮可见的 Agent 能力提升,而是更多内存余量。若机器还要同时承载其他模型,或确实需要把 Context 扩展到 262K 以上,Q2 才更有吸引力。

Terminal-Bench:IQ3 在最难任务上拉开差距

总分

量化版本通过总数成功率
IQ3_XXS3560%
Q2_K_XL2540%

逐题结果

任务主要能力IQ3_XXSQ2_K_XL观察
Blind Maze长程规划、交互探索、算法实现通过失败IQ3 完整探索并精确还原 10 个未知迷宫;Q2 的工具参数 JSON 损坏
SWE-bench Langcodes真实仓库 Bug 修复通过通过两者都修复了 __hash__ 与 __eq__ 不一致问题
New Encrypt Command工具发现、参数选择、文件操作通过通过两者都正确使用最安全的加密方式
SQLite DB Truncate损坏数据库恢复、严格 JSON失败失败两者都未恢复到官方要求的数据集
Write Compressor逆向、约束满足、二进制处理失败失败两者都未生成满足大小与内容约束的压缩文件

唯一出现胜负差异的是难度最高、轨迹最长的 Blind Maze。IQ3 在约 21.6 分钟内完成 10 个未知迷宫的探索与精确建图,并通过全部官方检查;Q2 在向终端工具传递多行 Python 时生成了未闭合的 JSON 字符串,请求中止。

原始错误为:

Failed to parse tool call arguments as JSON
parse error at line 1, column 278
invalid string: missing closing quote

这类失败对真实 Agent 很关键。复杂 shell 参数、内嵌代码和长工具轨迹,恰好是终端 Agent 的常见工作负载。IQ3 的优势不是多答对了一道短题,而是在更接近真实工作的长程任务中维持了工具调用可靠性。

BFCL V4:正常调用相当,异常停止都不可靠

量化版本BaseLong ContextMissing FunctionMissing Parameter总分
IQ3_XXS通过通过30 分钟超时30 分钟超时2/4,50%
Q2_K_XL通过通过官方判错30 分钟超时2/4,50%

BFCL 没有拉开两种量化的总分,但暴露了一个共同问题:两者都能处理正常多轮和长上下文工具链,却不善于识别“现有工具无法完成任务”或“必需参数尚未提供”。典型表现包括:

因此,这部分结果更像是对 Agent harness 的警告,而不是量化版本的胜负:生产环境应设置工具循环上限、completion 上限、重复调用检测和明确的参数缺失策略。

综合对比

维度IQ3_XXSQ2_K_XL判断
Terminal-Bench3/5,60%2/5,40%IQ3 胜
BFCL V42/4,50%2/4,50%平局
九题机械合并5/9,55.6%4/9,44.4%仅作本机选型参考
复杂长程 Agent成功完成最难任务工具 JSON 中途损坏IQ3 更可靠
正常多轮工具调用通过通过相当
缺失工具/参数处理不可靠不可靠都需 harness 保护
内存余量约 17–19 GiB约 25–26 GiBQ2 胜
更长 Context 潜力较低较高Q2 更适合容量优先场景

时间和 token 没有直接列为速度排名。IQ3 五题合计耗时更长、token 更多,主要因为它继续完成了 Blind Maze;Q2 在该题约 799 秒时提前失败。成功路径与失败路径长度不同,不能据此宣称 Q2 解码更快。

结论

默认选择:IQ3_XXS。

理由有三点:

  1. IQ3 赢下了唯一产生明确差异的任务,而且这道题最接近真实终端 Agent 的长程工作负载。
  2. Q2 没有任何任务独赢,节省内存并未在本轮转化为能力优势。
  3. IQ3 在 131K Context、Q8 KV、单 slot 配置下仍保有约 17–19 GiB 可用内存,作为单模型 Agent 服务已经具备可接受的安全余量。

Q2_K_XL 并非没有价值,但适用目标不同。 当部署目标是更长 Context、同时保留其他常驻服务,或任务以普通问答和短工具调用为主时,Q2 多出的约 7–8 GiB 内存更有意义。若核心需求是复杂 coding Agent、长工具参数和多轮自我修复,当前证据更支持 IQ3。

还应注意,两种量化都需要更严格的 Agent 运行保护。模型精度不能替代执行层控制;工具循环、重复调用、JSON 解析失败和参数缺失,最终都应由 harness 设定明确边界。

复现边界

组件版本
Terminal-Benchd28711d0da2675d0bb1d56de45ae5df6082438a3
Gorilla / BFCL6ea57973c7a6097fd7c5915698c54c17c5b1b6c8
llama.cppc8e03ce8122b7af76f836d53efde6df1ce5ec437

所有候选 Terminal-Bench 任务均先通过官方 Oracle 自测。早期自拟题因区分度不足且发现判分预期错误,整轮作废,没有计入上述结果。

参考资料