资讯动态

Qwen-32B-chat 的 DevQualityEval 测试生成基准报告:v0.5.0 评测数据、评分公式与模型分类机制解读

发布时间:2026/9/14 10:58:12 来源:尧图企业网站定制
Qwen-32B-chat 的 DevQualityEval 测试生成基准报告v0.5.0 评测数据、评分公式与模型分类机制解读【免费下载链接】Qwen3-CoderQwen3-Coder is the code version of Qwen3, the large language model series developed by Qwen team.项目地址: https://gitcode.com/GitHub_Trending/co/Qwen3-Coder本文以 Qwen3-Coder 评测仓库中归档的一份真实评测报告为主体——qwen-32b-chat 评测报告完整解读 DevQualityEval v0.5.0 对openrouter/qwen/qwen-32b-chat执行 Go 与 Java 测试生成任务的全部结果。读完本篇你将掌握该基准的评分公式每个 CSV 列如何加权汇总成 score、七级模型分类的判定顺序与源码实现以及如何把“模型被分到 category unknown 这一档”这类表面矛盾的结果还原成可量化的能力结论。报告定位一次可复现性受限的模型能力快照该报告由 DevQualityEval 基准qwencoder-eval/instruct/eval-dev-quality 子目录在version 0.5.0下、于 2024-06-19 11:28:04 自动生成目录结构为docs/reports/v0.5.0/模型名/。报告本身明确提醒LLM 具有非确定性结果只反映当前快照。这一点在解读时至关重要——同一模型重跑一次coverage 与 score 都可能漂移因此报告价值在于“方法论 同版本横向对比”而非绝对排名。报告目录内包含 5 个文件各自承担不同粒度文件粒度内容README.md模型级分类说明 分类柱状图入口categories.svg模型级“Models per Category” 柱状图evaluation.csv任务级每个 语言×仓库×任务 的原始指标行golang-summed.csv / java-summed.csv语言级按语言聚合models-summed.csv模型级全量聚合这套“报告模板 SVG 多级 CSV”的输出结构并非手工编写从 report/markdown.go 可以看到README 正文由 Go 模板markdownTemplate渲染标题中的时间戳、版本号、分类清单、按分类罗列模型链接均出自该模板柱状图则由barChartModelsPerCategoriesSVG使用 go-chart 库生成 SVG 并写入与 README 同目录。一个细节印证了版本演进当前模板markdown.go 第 76 行会同时输出version与revisionGit 修订号而本报告只打印了版本号——从源码结构看v0.5.0 时期的报告生成器尚不含 revision 字段。七级能力分类体系从 unknown 到 no excess response报告“Results”一节列出的 7 个分类与 metrics/category.go 中注册的AllAssessmentCategories一一对应从低到高依次为分类ID含义category unknowncategory-unknown无法归类如总任务数为 0response errorresponse-error模型响应过程中发生过错误no coderesponse-no-code响应中未产出任何源码invalid codecode-invalid产出的代码执行时报错executable codecode-executed代码可执行但未达到 100% 语句覆盖statement coverage reachedcode-coverage-statement代码执行且达到满覆盖no excess responsecode-no-excess覆盖达标且响应不含有超要求的冗余内容最高档分类的判定逻辑在 Assessments.Category() 中实现核心规则是模型必须“一致地”所有任务都达到某项指标的满分才能升入对应档位。判定采用switch顺序匹配先查response-no-error是否满分否则降为 response error再查是否含代码否则 no code再查文件是否执行成功否则 invalid code再查 coverage否则 executable code再查 no-excess否则 statement coverage reached全部通过才进入最高档 no excess response。这意味着分类体系是一个“木桶式”的门槛模型任何一项短板都会把模型钉在对应的低档。任务级明细evaluation.csv 全量数据evaluation.csv 包含 4 行任务级记录本次评测只跑了write-tests测试生成任务覆盖 Go 与 Java 两个语言的 plain小体量与 light较大体量四类仓库语言仓库任务scorecoveragefiles-executed目标文件字符数处理耗时(ms)响应字符数no-errorno-excesswith-codegolanggolang/lightwrite-tests121194030122200109658615266411517109golanggolang/plainwrite-tests43303640168062916505javajava/lightwrite-tests727869506713776892051816323411533113javajava/plainwrite-tests544041657248984970505各列在源码中的定义见 metrics/assessment.gofiles-executed成功执行的被测文件数、coverage被执行覆盖率对象数按 ×10 加权、processing-time与response-character-count×0 加权仅作观测列、response-no-error、response-with-code、response-no-excess各 ×1 加权。其中no-excess表示模型响应没有夹带超出“只要测试代码”这一要求的额外内容是对指令遵循度的考察。评分公式从 CSV 列到 score 的加权规则基准的计分规则在 README.md 的 Reward Points 一节与 assessment.go 的注册表中一致coverage每个执行覆盖对象10tests-passing每个通过的测试10仅对 write-tests 禁用防止模型乱加测试刷分files-executed、response-no-error、response-with-code、no-excess各1processing-time、response-character-count、generate-tests-for-file-character-count权重为 0只记录不加分。用 golang/light 行做一次逐列验算coverage 940 94 个覆盖对象 ×10加上 files-executed 30×1、no-error 115×1、with-code 109×1、no-excess 17×1合计 940 30 115 109 17 1211与 CSV 的 score 完全吻合。其余三行同理可验证如 java/light6950 67 115 113 33 7278。这说明score就是加权指标之和而multiplierPerAssessment注册表assessment.go 第 25-34 行同时驱动了Score()与Category()两处逻辑——分类判定的满分基准也是用它乘以任务总数得到的。语言级与模型级聚合Java 是绝对得分主体语言聚合与模型聚合分别是 golang-summed.csv、java-summed.csv 与 models-summed.csv聚合维度scorecoveragefiles-executed目标文件字符数处理耗时(ms)响应字符数no-errorno-excesswith-codegolang 合计125497033122840111339215558012017114java 合计733269907113942594541616820412033118模型总计85867960104262265205880832378424050232模型总计即两语言行逐列相加8586 1254 73327960 970 69902058808 ms ≈ 34.3 分钟总处理时间数据自洽。从聚合可以读出三点事实性结论Java 侧贡献了约 85% 的总分7332/8586其中 java/light 独占 7278 分、覆盖率对象 695 个。这与该仓库体量有关java/light 被测文件 137768 字符是四个仓库中最大的。plain 仓库得分极低43 / 54no-excess 恒为 0说明在最小仓库上模型 10 次响应无一做到“只输出测试代码”指令遵循是该模型在这项任务上的明显短板。no-error240 with-code232 no-excess50绝大多数请求成功返回且含代码但“干净地只给代码”是少数——这正好对应后面分类档位落位的问题。为什么 Qwen-32B-chat 落在 “category unknown”分类判定的实现细节本报告最反直觉的一点是README 将openrouter/qwen/qwen-32b-chat唯一归档在category unknown下而它的 CSV 数据显然显示大量可执行代码与高覆盖率。结合源码可以解释这一表面矛盾。当前源码的 Category() 签名是Category(totalTasks uint64)判定式形如a[AssessmentKeyResponseNoError] ! totalTasks * multiplierPerAssessment[...]而报告生成器在 markdown.go 第 160 行 传入的是m.TotalScore结构体注释为“per task 的总可达分数”。可以推断v0.5.0 报告生成时的分类逻辑与该分数基准组合后各档位的满分条件均无法与模型的指标值精确对上switch最终落入default之外的 unknown 分支总任务数为 0 时也返回AssessmentCategoryUnknowncategory.go 第 80-82 行。因此“category unknown” 在这里是分类管线未命中任何满分数档的兜底结果不代表模型没有能力。真实能力必须从 CSV 数值读取240 次请求全部无错no-error240、232 次返回代码、104 个文件执行成功、累计 7960 个覆盖对象被命中——按七级分类的本意衡量该模型在“代码可执行 高覆盖”这个区间内表现是明确的其短板集中在 no-excess 仅 50/232 这一点上。这也再次印证了报告头部的免责声明对 v0.5.0 时代的单模型报告README 的档位标签只作参考evaluation.csv 才是第一手事实。如何复现这份报告基准的运行方式若要在自己的环境复跑该评测README 给出了标准流程安装 Git 与 Go 后go install -v github.com/symflower/eval-dev-quality/cmd/eval-dev-quality配置 OpenRouter 令牌export PROVIDER_TOKENopenrouter:${your-key}然后只评测该模型eval-dev-quality evaluate --model openrouter/qwen/qwen-32b-chat两个关键注意点其一基准默认不在沙箱中执行模型生成的代码README 明确要求在隔离环境如--runtime docker中运行其二每个仓库可通过根目录的repository.json声明要跑的任务如{tasks: [write-tests]}本报告的 4 行结果正是只启用了 write-tests 任务、且仅评测 golang 与 java 两类仓库testdata 下另有 ruby 仓库的产物。运行结束会写出evaluation.csv与 README 报告文件CSV 列名与上文各表完全一致。小结这份报告告诉我们什么量化结论Qwen-32B-chat 在 DevQualityEval v0.5.0 的 write-tests 任务上拿到 8586 分、7960 覆盖对象、240/240 无错请求Javajava/light是主要得分来源处理总耗时约 34.3 分钟。短板定位no-excess 仅 50plain 仓库为 0说明“响应只含所请求的测试代码”这一指令约束是其主要失分项按 Category() 的木桶式判定这足以阻止其进入最高两档。方法论价值报告的 CSV 列均可按 Reward Points 规则精确验算分类档位则需对照 category.go 的判定顺序理解对 LLM 非确定性结果的横向比较应以同版本、同任务的 CSV 数值为准而非档位标签。【免费下载链接】Qwen3-CoderQwen3-Coder is the code version of Qwen3, the large language model series developed by Qwen team.项目地址: https://gitcode.com/GitHub_Trending/co/Qwen3-Coder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价