资讯动态

Qwen3-Coder 评测仓库解读:用 DevQualityEval v0.5.0 的 granite-code-3b-instruct 报告读懂 LLM 代码生成质量评测

发布时间:2026/9/14 9:36:06 来源:尧图企业网站定制
Qwen3-Coder 评测仓库解读用 DevQualityEval v0.5.0 的 granite-code-3b-instruct 报告读懂 LLM 代码生成质量评测【免费下载链接】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 评测仓库qwencoder-eval中eval-dev-quality基准的 v0.5.0 单模型报告为样本完整拆解一份 DevQualityEval 评测报告的组成结构、七类结果分类体系、CSV 汇总数据的含义与交叉校验方法并结合基准源码说明 write-tests 任务的打分流程与本地复现方式。读完你可以独立阅读该基准下任意模型的报告并能复现一次针对指定模型的评测运行。1. 报告定位一份由 DevQualityEval v0.5.0 生成的单模型评测快照该报告位于仓库路径qwencoder-eval/instruct/eval-dev-quality/docs/reports/v0.5.0/granite-code-3b-instruct-q8_0-b93b1a15197d/标题为 Evaluation from 2024-06-24 14:53:48即 2024-06-24 14:53:48 生成。报告首页明确声明Keep in mind that LLMs are nondeterministic. The following results just reflect a current snapshot.也就是说报告中的所有数字只是该模型在某一时刻的一次运行快照而非模型的稳定能力度量——这是解读任何 LLM 评测结果时首先要注意的前提。报告目录内的实际文件包括文件内容README.md报告正文分类说明 各分类下的模型清单categories.svg按分类汇总所有参评模型的条形图evaluation.csv逐任务model/language/repository/task的明细得分models-summed.csv该模型跨语言的总体汇总golang-summed.csvGo 语言的按语言汇总java-summed.csvJava 语言的按语言汇总README 中还引用了两个文件./evaluation.log包含全部请求/响应的完整日志以及模型明细子目录./ollama_granite-code:3b-instruct-q8_0/。经核对这两个路径在当前仓库副本中并不存在因此本报告的可核验数据以上述 5 个文件为准。该报告只评估了一个模型ollama/granite-code:3b-instruct-q8_0经 ollama 提供的 Granite Code 3B instruct 模型的 Q8_0 量化版本。整个v0.5.0/目录下还有 claude、gemini、deepseek、codellama、gemma 等大量兄弟目录可横向对比不同模型的报告。2. 七类结果分类体系读懂报告的骨架报告正文把参评模型划入以下 7 个分类分类文案在 README 中逐条给出分类判定逻辑实现于 evaluate/metrics/category.go分类报告中的定义category unknown无法归入任何分类的模型response error评测过程中遇到错误的模型no code模型没有产出任何代码invalid code模型产出了无法编译/无效的代码executable code模型产出了可执行的代码statement coverage reached模型产出的代码达到了完整的语句覆盖率no excess response模型的响应没有超出任务要求的内容不多答从 category.go 的源码结构看这些分类是依据一组 Assessment如response-with-code、files-executed、覆盖率是否达到上限等指标的判定结果逐层归类的源码中还有一个值得注意的注释由于目前不能总是可靠地检测模型响应中是否包含源码当代码实际全部成功运行时会避免将其误判为 no code对应 upstream issue #43见category_test.go中的 Code not Detected but Executes 用例。本报告的实际结果是ollama/granite-code:3b-instruct-q8_0被归入category unknown分类。也就是说它既不满足可执行代码档位的判定也没有落入其他更明确的类别。要理解为什么需要看下一节的明细数据。3. 明细与汇总数据字段逐项解读3.1 evaluation.csv 的字段含义evaluation.csv 共 4 行数据2 种语言 × 2 个仓库字段及本报告中的取值如下字段含义说明model参评模型 IDollama/granite-code:3b-instruct-q8_0language评测语言golang/javarepository评测仓库golang/light、golang/plain、java/light、java/plaintask任务类型本基准的write-tests给实现代码写测试score综合得分见 3.2 节的口径校验coverage语句覆盖数测试实际覆盖到的语句对象计数files-executed成功执行测试的源文件数模型生成的测试真正跑起来的文件数量generate-tests-for-file-character-count被测试源文件的总字符数衡量任务规模processing-time处理耗时汇总值报告未注明单位解读时应作相对比较而非绝对时长response-character-count模型响应总字符数衡量响应体量response-no-error无错误响应的任务数模型正常返回了响应未报错的任务数response-no-excess无冗余响应的任务数响应未超出任务要求内容response-with-code响应中包含代码的任务数检测到代码输出的任务数4 行明细数据原文如下ollama/granite-code:3b-instruct-q8_0,golang,golang/light,write-tests,480,300,17,99456,4841933,100952,115,19,29 ollama/granite-code:3b-instruct-q8_0,golang,golang/plain,write-tests,9,0,1,1102,62323,1587,5,1,2 ollama/granite-code:3b-instruct-q8_0,java,java/light,write-tests,7083,6830,78,78624,4259723,108799,115,10,50 ollama/granite-code:3b-instruct-q8_0,java,java/plain,write-tests,46,30,5,1520,87186,2677,5,1,53.2 三份汇总 CSV 与交叉校验汇总文件scorecoveragefiles-executedno-errorno-excesswith-codemodels-summed.csv总体761871601012403186golang-summed.csv489300181202031java-summed.csv71296860831201155三份汇总与明细之间是可以互相印证的score480 9 7083 46 7618与 models-summed 一致其中 Go 侧 480 9 489Java 侧 7083 46 7129coverage300 0 6830 30 7160Go 侧300、Java 侧6860files-executed17 1 78 5 101response-no-error115 5 115 5 240即每个语言各有 120 个文件级任务全部拿到了无错误响应。3.3 数据画像这个模型报告说明了什么把汇总数字翻译成任务口径240 个 文件级写测试 任务响应成功率 100%240/240 no-error模型调用层面没有报错说明其分类不可能是 response error约 36% 的响应检测到代码86/240 with-code大量响应未被检测出代码内容仅约 42% 的任务测试真正跑通101/240 files-executed只有不到一半的生成测试能编译并执行且 Go 侧18/120 ≈ 15%明显弱于 Java 侧83/120 ≈ 69%语句覆盖 7160绝大部分6860来自 Java/light 仓库而两个plain简单仓库基本没拿到分Go/plain 仅 9 分、0 覆盖仅 31/240 个响应满足 no excess response多数响应包含了超出要求的内容。这就解释了为什么该模型被归入 category unknown它有稳定的响应能力但既没有足够的可执行代码比例、也没有达到分类阈值上的完整覆盖表现因而落不到任何一个明确的成功档。对一个 3B 量级的量化 instruct 模型而言这份报告给出的画像与模型规模是相符的——这也体现了该基准 用可执行、可验证的信号而非主观打分来刻画模型 的设计取向。4. 分数从哪里来write-tests 任务的实际流程要理解上面的字段需要看基准源码中写测试任务的执行链实现见 evaluate/task/task-write-test.go遍历目标源文件TaskWriteTests.Run从仓库数据目录枚举所有源文件逐个构建model.Context语言、仓库路径、文件路径调用模型的CapabilityWriteTests能力生成测试每个文件执行前会先ctx.Repository.Reset重置临时仓库保证任务间互不污染。向模型发出写测试请求eval-dev-quality/README.md 中保留了一段真实评测日志可以直观看到请求模板。Go 语言的任务 prompt 为Given the following Go code file plain.go with package plain, provide a test file for this code. The tests should produce 100 percent code coverage and must compile. The response must contain only the test code and nothing else. golang package plain func plain() { return // This does not do anything but it gives us a line to cover. }Java 任务的 prompt 则额外指定了测试框架provide a test file for this code with JUnit 5 as a test framework。注意 prompt 明确要求响应只包含测试代码——这正是汇总字段 response-no-excess 度量是否多答的依据。执行测试并计量拿到模型响应后ctx.Language.ExecuteTests实际运行测试日志中的对应命令形如symflower test --language golang --workspace /tmp/eval-dev-quality.../plain成功时记录AssessmentKeyFilesExecuted1 个可执行文件与AssessmentKeyCoverage覆盖的语句对象数。日志示例显示成功判据是测试 PASS 且输出coverage: 100.0% of statements。超时与失败处理若执行超时context.DeadlineExceeded则跳过修复尝试直接记账若 Go 语言任务测试执行失败还会额外走一条symflower fix修复链路把模型原始结果与修复后结果分别记入IdentifierWriteTests与IdentifierWriteTestsSymflowerFix两组指标见 task-write-test.go。报告中展示的 score 对应的是模型原始结果组。汇总落盘评测结束后框架把逐任务明细写入evaluation.csv并按语言/模型维度输出*-summed.csv与分类图categories.svg即本报告目录所见的全部文件。值得说明的口径细节score与coverage在汇总文件中同时存在且 score ≥ coverage7618 vs 7160说明 score 是在覆盖点数之上叠加了其他指标如可执行文件、无错误响应等之后的综合分仓库中metrics包实现了具体的指标键与聚合逻辑但报告本身未给出逐字段的算式引用具体分值时应以 CSV 原文为准。5. 复现方法安装与运行 DevQualityEval本报告由 eval-dev-quality 工具version 0.5.0生成其安装与运行方式在 qwencoder-eval/instruct/eval-dev-quality/README.md 中有完整说明安装前置条件Git、Gogit clone https://github.com/symflower/eval-dev-quality.git cd eval-dev-quality go install -v github.com/symflower/eval-dev-quality/cmd/eval-dev-quality安装后即可使用eval-dev-quality二进制执行基准测试。配置模型提供方凭证。该工具支持 openrouter、ollama、openai-api 等 provider见 provider/ 目录以 openrouter 为例export PROVIDER_TOKENopenrouter:${your-key}执行评测。全量运行eval-dev-quality evaluate只评估一个或多个模型本报告即单模型报告模型 ID 前缀ollama/表明走的是 ollama 通道eval-dev-quality evaluate --modelopenrouter/meta-llama/llama-3-70b-instruct安全前提README 特别强调该工具默认不在沙箱中执行 LLM 生成的代码务必在隔离环境中运行例如加--runtime docker。完整参数见eval-dev-quality --help与eval-dev-quality evaluate --help。产物运行过程输出逐请求的详细日志最终结果保存到evaluation.csv本仓库docs/reports/v0.5.0/下每个模型子目录就是对应一次运行的固化报告顶层另有全量 evaluation.csv 用于跨模型对比。6. 使用与引用该报告时的注意事项快照性质报告首页已声明 LLM 输出非确定性数字只代表 2024-06-24 14:53:48 那次运行的结果不宜作为模型的长期能力排名依据单模型、双语、四仓库本报告只覆盖write-tests任务在 golang/java 的light、plain四个仓库组合code-repair、transpile等其他任务evaluate/task/ 中另有task-code-repair.go、task-transpile.go不在其内缺失文件README 引用的evaluation.log与模型明细子目录未随仓库保留逐条请求/响应级别的可追溯性受限深入核对只能依赖 5 个 CSV 文件横向对比入口若要把 granite-code-3b-instruct 与 GPT-4o、Claude 3.5 Sonnet、DeepSeek-Coder-V2 等模型对比直接查看v0.5.0/下各兄弟目录的同名 CSV 结构即可字段口径完全一致适用前提复现时需自备模型访问凭证与隔离运行环境建议--runtime docker且 ollama 量化版本q8_0的量化配置会影响结果换用非量化版本不应直接沿用本报告数值。综合来看这份报告是 DevQualityEval 以真实测试执行结果刻画代码生成质量方法论的一个最小完整样本七类分类给出定性结论evaluation.csv及其三份汇总给出可交叉验证的定量明细而 task-write-test.go 中的执行链则解释了每个数字的确切来源——三者结合就构成了阅读整个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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价