【免费下载链接】grug-27b项目地址https://ai.gitcode.com/hf_mirrors/ProCreations/grug-27b点击查看免费下载 想做一次靠谱的量化 A/B 测试但苦于不知道怎么搭对照实验本文以 grug-27bQwen3.6-27B 的 token 高效推理模型仓库中自带的 eval/qat_bench.py 为蓝本手把手教你用llama.cpp在同一张 GPU 上对比三组 Q4 量化权重普通 post-training 量化的Q4_K_M对照组、QAT 全程训练的 qatfull以及混合训练的 blend25一套脚本跑完五类探针结论一目了然。为什么需要量化A/B测试grug-27b 基于 Qwen3.6-27B可参考仓库根目录的 config.json 与 model.safetensors.index.json 查看模型结构大多数用户会以 Q4 精度部署。仓库作者专门发布了 QAT 版本训练时就感受4-bit 舍入误差因此 Q4 质量优于普通量化。但更优不能只靠嘴说必须用受控对照实验来证明。qat_bench.py的做法非常值得借鉴对照组权重来源含义controlgrug-27b-gguf / grug-27b-Q4_K_M.gguf普通 PTQ 量化基线qatfullgrug-27b-qat / candidates/...qatfull-Q4_K_M.gguf全程 QAT 训练blend25grug-27b-qat / candidates/...qatblend25-Q4_K_M.gguf混合数据 QAT三组权重使用同一 llama.cpp 构建、同一 GPU、同一批 prompt只改变量化方式这一个变量——这就是 A/B 测试的核心控制变量。组名与权重定义见 eval/qat_bench.py#L25-L29。环境准备编译带CUDA的llama.cpp推理服务qat_bench.py的设计是在带有 CUDA 工具链的容器内完成作者选用 vllm/vllm-openai 镜像流程是先编译、再逐组起服务、逐组测试。你只需要关注两条命令# 1. 编译带 CUDA 加速的 llama-server cmake -B build -G Ninja -DGGML_CUDAON -DCMAKE_CUDA_ARCHITECTURESnative -DLLAMA_CURLOFF cmake --build build --target llama-server -j # 2. 启动推理服务每组权重都这样起 ./build/bin/llama-server -m 你的gguf路径 -ngl 99 -c 65536 --parallel 4 --port 8123参数说明-ngl 99让全部层跑在 GPU 上-c 65536是上下文长度--parallel 4开启 4 路并发正好匹配脚本里的 4 线程探针池见 eval/qat_bench.py#L179。服务就绪后脚本会轮询http://localhost:8123/health最多等待 6 分钟eval/qat_bench.py#L305-L311。 提示GPU 显存至少需要装下 27B 的 Q4_K_M 权重约 16GB建议 24GB 起步与仓库 requirements.txt 描述的 bf16 部署环境≥60GB 显存的 A100/H100相比门槛低很多。一键运行复现qat_bench对照实验整个实验的入口就是 eval/qat_bench.py它会依次执行四步装依赖pip install cmake ninja datasets编译llama.cpp 的llama-server循环三组权重下载 gguf → 起服务 → 跑五类探针 → 停服务汇总结果写入 JSON 并打印FINAL汇总运行方式先 clone 仓库获得脚本git clone https://gitcode.com/hf_mirrors/ProCreations/grug-27b cd grug-27b python eval/qat_bench.py每组测试完成后脚本会把中间结果上传到 QAT 仓库的results/bench.jsoneval/qat_bench.py#L322-L324即使中途崩溃也会留痕BENCH_CRASHED方便排查——这是做长耗时 A/B 测试的好习惯。五类探针qat_bench如何量化对比这套实验最可贵的部分是覆盖了能力、稳定性、长文生成三个维度共 5 个探针定义见 eval/qat_bench.py#L176-L282探针规模指标考察点MBPP 代码执行60 题mbpp_pass_pct、mbpp_words_mean量化后的代码能力 输出长度GSM8K 数学60 题gsm8k_pass_pct数值推理正确率agentic 工具调用40 例agent_valid_pct/agent_match_pct/agent_args_pct函数调用格式、选对工具、参数合法identity 循环率60 条temp 0.6identity_loop_pct是否出现重复病/未闭合思考块longform 贪心长文6 篇greedylongform_loops、longform_words_mean最严苛采样下是否退化为循环其中循环检测由loop_score实现检查文本尾部 8/15/30 词短语是否连续重复 3 次以上eval/qat_bench.py#L142-L155——这正是大模型量化后最容易出现、也最伤体验的复读机问题。采样参数值得注意非贪心探针统一用temperature 0.6 / top_p 0.95 / top_k 20与 generation_config.json 和 README 推荐的推理参数一致贪心探针则用temperature 0.0 / top_k 1eval/qat_bench.py#L122-L132。同参数、同 prompt 模板由render_prompt统一渲染保证三组看到的输入完全一致。如何解读对照实验结果跑完后你会得到类似bench.json的三组指标阅读时建议关注四点能力指标看差距是否显著mbpp_pass_pct、gsm8k_pass_pct若 QAT 组只领先 1 个百分点以内大概率是噪声需要加大样本量复测工具调用看三项分开agent_valid_pct格式合法→agent_match_pct选对工具→agent_args_pct参数符合 schema三层指标能定位量化到底伤在哪一层稳定性指标看红线identity_loop_pct与longform_loops越接近 0 越好这两项往往比 1 分的 benchmark 差距更影响实际体验别忘了 token 花费mbpp_words_mean、longform_words_mean反映输出冗长度——grug-27b 的主打卖点就是少想废话量化后若输出暴涨A/B 结论要打折扣。这套思路与仓库里另一套 vLLM 全流程评测 eval/eval_harness.pyHumanEval / GSM8K / MATH-500 / 重复压力测试互为补充前者管量化方式对比后者管模型版本对比。相关文件清单文件说明eval/qat_bench.py本文主角llama.cpp 量化 A/B 对照脚本eval/eval_harness.pyvLLM 全流程评测框架README.md模型介绍、benchmark 数据与运行方式config.json / generation_config.json模型结构与推荐采样参数handler.py推理端点部署 handlerbf16 完整协议小结量化 A/B 测试的关键不是跑得多快而是只变一个变量——同一构建、同一 GPU、同一 prompt、同一采样参数。照qat_bench.py的三组对照 五类探针搭一套你也能给出QAT 到底值不值的硬核答案。赞分享【免费下载链接】grug-27b项目地址https://ai.gitcode.com/hf_mirrors/ProCreations/grug-27b点击查看免费下载相关推荐如何利用Android GPU Inspector进行Shader性能分析和优化如何利用Android GPU Inspector进行Shader性能分析和优化 Android GPU InspectorAGI是一款强大的开源工具专为一键搞定Mac视频预览QuickLookVideo让MKV、WebM、AVI缩略图全部现形一键搞定Mac视频预览QuickLookVideo让MKV、WebM、AVI缩略图全部现形 QuickLookVideo 是一款开源的 macOS 视频预览增音视频桌面应用easy-vibe 数据附录A/B 测试原理——用对照实验与统计检验让数据做决策easy vibe 数据附录A/B 测试原理——用对照实验与统计检验让数据做决策 ::: tip 导读 在 easy vibe 的附录数据课程 docs/e教程Vibe CodingAI 应用上一篇AO3 镜像站怎么用从打不开到稳定追更下一篇Vue 2 中文文档零基础到独立开发的完整学习路线创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考