跳到主要内容

L40S 大模型部署实录④:160 道题考三个大模型,赢家出乎意料

阅读需 4 分钟

跑得最快的模型,长文本全部超时。参数最多的模型,总分垫底。最终胜出的是参数最少的那个——76.6% vs 69.7% vs 69.1%。这篇记录 160 道题、6 个维度的完整评测过程,以及为什么"参数大 ≠ 质量好"。

评测设计

参考了 Artificial Analysis 和主流 benchmark 的方法论,设计了 6 个维度、160 道题的评测集:

维度题数数据来源考察能力
通识基础50MMLU-Pro多领域知识
高级推理30GSM8K + ARC-Challenge数学 + 逻辑
指令跟随30IFEval格式约束遵循
模型幻觉25TruthfulQA + SQuAD v2拒答 + 事实性
工具调用10BFCL v3Function Calling
长文本15K8s 文档8K-32K 上下文理解

为什么不直接用公开 benchmark

公开 benchmark 的问题:

  1. 数据污染——模型训练数据可能包含测试题
  2. 场景不匹配——我们需要的是工具调用、长文本理解,不是做高考题
  3. 量化影响——FP8 量化后的表现和原始精度不同,需要实测

所以我从公开数据集中抽样,加上自己构造的工具调用和长文本题目,确保评测贴近实际使用场景。

评测流程

1. Collect:向每个模型发送 160 道题,收集原始回复
2. Auto-Score:规则引擎自动评分(MCQ 精确匹配、数学答案提取、格式检查)
3. Manual Review:人工审核自动评分结果,修正误判

关键配置:

  • temperature=0.6,开启 thinking mode(Qwen3.5/3.6 支持)
  • max_tokens=4096
  • 超时 300 秒/题

自动评分规则

不同题型用不同评分逻辑:

  • MCQ:精确匹配选项字母(A/B/C/D)
  • 数学:从回复中提取 \boxed{} 或加粗数字,和标准答案比较
  • 指令跟随:逐条检查约束(JSON 格式、字数限制、语言要求、关键词包含等)
  • 幻觉/可回答:语义匹配预期答案
  • 幻觉/不可回答:检测拒答模式("I don't know"、"无法确定"等)
  • 工具调用:解析模型输出的 tool call 格式,匹配函数名和参数

评测结果

维度Qwen3.5-27BQwen3.6-35BGemma4-31B
通识基础 (50)52.0%50.0%60.0%
高级推理 (30)93.3%86.7%86.7%
指令跟随 (30)71.7%61.7%68.3%
模型幻觉 (25)100%100%100%
工具调用 (10)100%80.0%90.0%
长文本 (15)80.0%60.0%0.0% ⚠️
总分 (160)76.6%69.7%69.1%

逐维度分析

通识基础:Gemma4 领先

Gemma4 在 MMLU-Pro 多选题上表现最好(60%),可能因为 Google 的训练数据在百科知识方面更全面。Qwen3.5 和 3.6 都在 50% 左右,说明 FP8 量化对知识类任务有一定影响。

高级推理:Qwen3.5 碾压

Qwen3.5 在数学推理上达到 93.3%,远超其他两个模型。Qwen3.6 虽然有 thinking mode,但倾向于过度推理——在复杂数学题上写了很长的推导过程,结果被 max_tokens 截断,最终答案没输出完。

这是 MoE 架构的一个隐性问题:Expert 路由增加了推理路径的不确定性,模型更容易"跑偏"。

指令跟随:所有模型都不够好

IFEval 的约束非常严格("用 JSON 格式回答"、"不超过 50 个词"、"必须包含关键词 X"),三个模型都只有 62-72%。这是当前开源模型的普遍短板。

模型幻觉:全部满分

三个模型在幻觉测试上都是 100%——该拒答的拒答,该引用的引用。FP8 量化没有影响模型的事实性判断能力。这是个好消息。

工具调用:格式差异

Qwen3.5 满分,Gemma4 90%,Qwen3.6 只有 80%。

问题出在格式

  • Qwen3.5/3.6 用 <function=name> XML 格式
  • Gemma4 用 <|tool_call>call:name{...} 格式

Qwen3.6 的 2 道错题是参数格式不对(JSON 里多了引号转义),不是逻辑错误。这种问题在实际使用中可以通过 prompt 工程缓解。

长文本:Gemma4 全军覆没

Gemma4 的 15 道长文本题全部超时(300 秒)。原因:Dense 31B 模型在单卡 L40S 上处理 8K-32K 的 prefill 太慢,TTFT 超过 300 秒。

这不是模型能力问题,是硬件限制。如果给 Gemma4 双卡 TP=2,长文本性能会好很多。但在单卡方案里,它不适合长文本场景。

最终选型

综合性能和质量:

指标Qwen3.5-27BQwen3.6-35BGemma4-31B
质量总分76.6%69.7%69.1%
单请求速度18.1 tok/s11.0 tok/s17.4 tok/s
并发吞吐130.3 tok/s83.6 tok/s132.0 tok/s
长文本支持✅ 128K⚠️ 64K❌ 32K OOM
工具调用100%80%90%

结论:Qwen3.5-27B-FP8 是单卡 L40S 上的最佳选择。

它在质量、速度、长文本、工具调用四个维度上都是最优或接近最优。唯一的短板是通识知识(52% vs Gemma4 的 60%),但这对我们的业务场景(代码生成、文档问答、工具调用)影响不大。

复盘

整个评测过程中学到的几点:

  1. 不要同时跑 throughput 和 eval——我犯过这个错误,两个测试互相干扰,数据全废了
  2. MoE 模型的"活跃参数"是个陷阱——3B 活跃参数不代表 3B 的速度,Expert 路由有开销
  3. 量化对不同能力的影响不同——FP8 对推理能力影响小,对知识记忆影响大
  4. 硬件限制比模型能力更重要——Gemma4 的长文本能力不差,是单卡显存不够

这个系列到此结束。从基础设施搭建、显存优化、性能测试到质量评测,完整记录了在单卡 L40S 上部署大模型推理服务的全过程。希望对同样在做企业内部大模型部署的同学有帮助。