Qwen3-Coder 仓库中 DevQualityEval v0.5.0 评测报告详解toppy-m-7b 单模型案例与评分、分类机制【免费下载链接】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 仓库内归档的一份真实评测报告——openrouter/undi95/toppy-m-7b在 DevQualityEval v0.5.0 中的单项结果——为样本逐字段解读报告目录中的 CSV 数据并结合仓库中 vendored 的基准工具源码验证其得分构成与七档结果分类算法。读完本文你将掌握 DevQualityEval 报告的完整阅读方法如何从evaluation.csv还原每个任务的实际表现、如何用源码中的评分乘数交叉验证 score 列、以及为什么一个总得分高达 3858 的模型最终却被归档进 category unknown。报告出处与目录结构本报告由 DevQualityEval 基准版本0.5.0于2024-06-19 10:52:54生成原始说明文件为 toppy-m-7b/README.md。它是 v0.5.0 整轮评测同目录下还归档了数十个模型如gpt-4o/、deepseek-coder/、qwen-2-72b-instruct/等中针对单一模型的独立报告目录当前仓库保留了以下文件文件内容README.md报告正文分类图、结果分类说明、模型归类清单evaluation.csv逐任务明细模型、语言、仓库、任务、得分与各项指标models-summed.csv模型级汇总所有任务求和golang-summed.csvGo 语言维度汇总java-summed.csvJava 语言维度汇总categories.svgModels per Category 分类柱状图需要注意两点边界事实其一原 README 中提到的完整请求/响应日志evaluation.log在当前仓库目录中并未保留因此下文的量化分析全部以 CSV 文件为准其二报告原文明确提示LLMs are nondeterministic. The following results just reflect a current snapshot.LLM 是非确定性的结果只反映一次快照因此这份数据只能作为该时间点的一次采样不适合跨运行直接比较。七档结果分类及其源码定义原 README 将本轮所有模型划分为 7 个类别并给出了逐字定义category unknown无法归类的模型response error产生响应时遇到错误的模型no code未产生任何代码的模型invalid code产生了无效代码的模型;executable code产生了可执行代码的模型statement coverage reached产生的代码达到了完整语句覆盖率的模型no excess response响应中没有超出要求内容的模型。这 7 段文字并非人工撰写而是由基准工具的分类定义直接渲染而来。在 evaluate/metrics/category.go 中每个类别都是一个带ID、Name、Description的AssessmentCategory结构体注册顺序与描述文案和 README 完全一一对应源码常量IDName报告展示名AssessmentCategoryUnknowncategory-unknowncategory unknownAssessmentCategoryResponseErrorresponse-errorresponse errorAssessmentCategoryResponseNoCoderesponse-no-codeno codeAssessmentCategoryCodeInvalidcode-invalidinvalid codeAssessmentCategoryCodeExecutedcode-executedexecutable codeAssessmentCategoryCodeCoverageStatementReachedcode-coverage-statementstatement coverage reachedAssessmentCategoryCodeNoExcesscode-no-excessno excess response报告生成侧的入口在 evaluate/report/markdown.go遍历每个模型的Assessment调用assessment.Category(m.TotalScore)得到档位把模型名追加进ModelsPerCategory随后由barChartModelsPerCategoriesSVG渲染出categories.svg。也就是说README 中### Result category ...小节下的模型列表和柱状图都是这段代码对同一份分类结果的不同视图。本次运行的任务与完整明细数据DevQualityEval 的核心任务之一是Test Generationwrite-tests给定一段源码要求模型编写能编译通过并达到 100% 语句覆盖率的测试完整任务与测试用例说明见 基准 README 的 The Evaluation 一节测试数据仓库在 testdata。toppy-m-7b 本轮恰好运行了 3 个write-tests用例evaluation.csv 的完整内容如下modellanguagerepositorytaskscorecoveragefiles-executedgen-tests-for-file-charprocessing-timeresponse-charno-errorno-excesswith-codeopenrouter/undi95/toppy-m-7bgolanggolang/plainwrite-tests12002300124932874534openrouter/undi95/toppy-m-7bjavajava/lightwrite-tests382535402813547551442217712411531111openrouter/undi95/toppy-m-7bjavajava/plainwrite-tests211012200161784166505各列的含义可以在 evaluate/metrics/assessment.go 的指标注册处找到权威定义response-no-error乘数 1响应无错误每个成功响应计 1 分response-with-code乘数 1响应中包含源码计 1 分response-no-excess乘数 1响应没有超出要求的内容计 1 分files-executed乘数 1成功执行的文件数coverage乘数 10执行的覆盖率对象计数每单位计 10 分processing-time乘数 0任务耗时毫秒不参与评分response-character-count/generate-tests-for-file-character-count乘数 0响应与生成测试文件的字符数仅作观测指标。得分机制验证score 列如何由各项指标加总Score() 方法 的语义是对所有乘数非零的指标求和乘数为 0 的processing-time、字符数等只记录不评分。用这个规则对上面三行逐行验算可以完全复现score列golang/plainno-error 5 with-code 4 no-excess 3 files-executed 0 coverage 0 12✓该任务的生成测试未能执行0 覆盖、0 执行文件得分全部来自响应行为指标java/plainno-error 5 with-code 5 no-excess 0 files-executed 1 coverage 10 21✓有 1 个文件执行成功并拿到 1 个覆盖对象但响应存在多余内容no-excess 为 0java/lightno-error 115 with-code 111 no-excess 31 files-executed 28 coverage 3540 3825✓三行相加得到 models-summed.csv 的模型级汇总同样自洽no-error 125 with-code 120 no-excess 34 files-executed 29 coverage 3550 3858与汇总行的score3858一致而 java-summed.csv3825213846与 golang-summed.csv12之和也恰为 3858。这份数据还揭示了该模型在本轮的行为画像绝大多数产出集中在java/light生成测试文件 135475 字符、响应 177124 字符、耗时 514422 毫秒约 8.6 分钟占全部响应的 96%Java 侧 29 个执行文件中 28 个跑通并拿到 3540 分覆盖率但 115 次无错误响应中只有 31 次无多余内容——即大多数 Java 响应在测试代码之外还附带了额外文本这与测试生成任务响应必须只包含测试代码的要求相违背直接拉低了response-no-excess档位的表现。为什么总得分 3858 仍被归入 category unknown报告最终的分类结果与得分形成了鲜明反差README 的模型清单中toppy-m-7b 被列在唯一的category unknown小节下而没有出现在其余任何高档位。对照 Category() 分类算法可以推断原因分类是一个严格的阶梯判断自上而下依次检查no-error未达totalTasks×1→response errorwith-code与files-executed双双未达 →no codefiles-executed未达 →invalid codecoverage未达totalTasks×10→executable codeno-excess未达 →statement coverage reached全部达成才是no excess response。源码注释与 category_test.go 的 Inconsistent 用例2 个任务中覆盖只达成 1 次 → 类别止步于code-executed共同表明档位取决于模型是否在所有任务上一致达成该档标准而非平均分或总分数。算法首行if totalTasks 0 { return AssessmentCategoryUnknown }从源码结构看category unknown 只在该分支触发即传入分类器的任务总数为 0。报告模板markdown.go传入的是m.TotalScore作为该计数结合本报告把模型归入 unknown 的事实可以推断这份单模型独立报告在分类时使用的任务计数口径为 0因此模型跳过了全部阶梯判断——这与它拥有 3858 分的逐任务得分并不矛盾CSV 里的分数是逐任务累计的真实产出而分类档位是另一个独立判定的口径。阅读此类报告时应把得分和档位当作两套结论而不是互相替代。如何复现安装与运行基准Qwen3-Coder 仓库在 qwencoder-eval/instruct/eval-dev-quality/ 内置了该基准的完整副本其 README 给出了安装与运行方式需 Go 环境# 安装评测二进制 go install -v github.com/symflower/eval-dev-quality/cmd/eval-dev-quality基准默认不在沙箱中执行 LLM 生成的代码README 明确建议在隔离环境中运行例如使用--runtime docker。使用 OpenRouter 作为推理提供方本报告中的openrouter/undi95/toppy-m-7b即经此通道调用export PROVIDER_TOKENopenrouter:${your-key} # 运行全部模型与任务 eval-dev-quality evaluate # 只评估指定模型本报告对应的调用形态 eval-dev-quality evaluate --modelopenrouter/undi95/toppy-m-7b也可以用 Docker 运行时获得隔离执行docker build . -t eval-dev-quality:dev eval-dev-quality evaluate --runtime docker --runtime-image eval-dev-quality:dev --model symflower/symbolic-execution除 OpenRouter 外README 还登记了 Ollama--model ollama/...默认端口 11434与任意兼容 OpenAI chat completion API 的自定义端点--urlscustom-${name}:${endpoint-url}两类提供方完整选项见eval-dev-quality evaluate --help。评测结果会写入evaluation.csv并额外生成包含分类结果的报告文件——本报告目录就是该流程对 topy-m-7b 的一次输出快照。结果解读的注意事项非确定性原 README 的提示依然成立同一模型多次运行会得到不同的score与coverage本目录数据仅代表 2024-06-19 的一次采样。档位 ≠ 得分如前文所述category由全任务一致达成的阶梯逻辑决定总分高的模型也可能因覆盖未全达成或响应携带多余内容而止步于中低档。版本口径仓库中同时归档了v0.2.0/、v0.4.0/、v0.5.0/、v0.6/多轮报告不同版本的指标列与奖励规则可能不同例如本轮 CSV 的列集合与当前 assessment.go 注册的指标键一致跨版本比较前应先核对各自 CSV 的列定义。数据可得性本轮报告未保留evaluation.log原文逐条提示词与模型响应已不可查深度归因例如java/light中 87 次多余响应的具体内容无法在仓库内完成CSV 指标即为可验证的全部依据。对于要在 Qwen3-Coder 评测体系中复现或扩展单模型报告的分析工作建议的阅读顺序是先读单模型目录的README.md看档位归属再用evaluation.csv按乘数非零项求和规则复核score列最后对照 category.go 的阶梯逻辑解释档位结果——本文对 topy-m-7b 的解析过程即是这一方法的完整示例。【免费下载链接】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),仅供参考