42 分钟
大模型内核:从经典机器学习到对齐与前沿

模型评测体系与推理系统优化:怎么知道模型真的强、怎么让它又快又省

前半讲如何严谨评测模型(能力维度、基准、数据污染、人工与模型裁判的风险),后半讲推理部署侧的核心优化:量化、蒸馏、投机解码、连续批处理与 KV Cache 管理,建立「训得好」还要「用得起」的系统观

  • 掌握严谨评测的要素与常见陷阱(污染、过拟合榜单、裁判偏差)
  • 理解长上下文能力该如何正确评测
  • 说清量化、蒸馏、投机解码、连续批处理各自优化什么
  • 建立推理显存、吞吐、延迟三者权衡的系统认知

评测:比「跑个分」严肃得多

模型能力是多维的:知识、推理、代码、数学、指令遵循、长文本、多语言、安全、工具调用……没有任何单一分数能概括。严谨评测要按维度选基准(Benchmark),用独立、未被训练见过的题,并报告多个指标与失败案例,而不是只挑一个最好看的数字。

为什么「跑分高」不能直接信?首先,模型可能在训练时见过这些题——评测集一旦公开,很快就会被爬进预训练语料,模型是背答案而不是真会。其次,单一榜单只测一个侧面:数学满分的模型可能写不通顺的邮件、也可能在该拒答时拒答得很僵硬。再加上「模型当裁判」本身有偏向——它偏爱和自己风格相似的回答、偏爱长回答,这些都需要用人工盲评校准。所以资深工程师看一个模型发布,第一眼不是看总分,而是问:题目新不新、有没有污染、覆盖了哪几个维度、有没有把做错的题拿出来分析。分数只是入口,失败案例才藏着真实能力的边界。

四类互补的评测手段

客观基准

有标准答案的题集,自动判分,覆盖知识/推理/代码/数学等维度

人工偏好评测

盲评、成对比较,衡量主观质量,成本高但接近真实体验

模型当裁判

用强模型给回答打分,便宜可规模化,但有偏见、可被钻空子,需校准

真实任务/在线评测

在真实业务与 A/B 中看完成率、用户反馈,最贴近落地价值

🚫数据污染:榜单虚高的头号原因

如果评测题在预训练语料里出现过,模型可能是「背答案」而非真会。要检测污染、使用最新或私有构造的题、做扰动变体。同理,针对某个榜单反复调参会过拟合该榜单。看到分数先问:题是否见过、是否多维度、是否有失败分析。

长上下文不是「能塞下」就算

上下文窗口变长不等于真能用好长文本。要分别测: needles 类信息检索(长文里找关键句)、多跳推理(跨文档整合)、首尾与中段的位置利用率、以及长文本下的稳定性。常见现象是「中间遗忘」——模型对开头结尾敏感、忽略中段。评测长上下文必须把关键信息放在不同位置,而不是只测最大长度。

为什么要特意提醒「中间遗忘」?因为很多模型在短文本上表现很好,一拉长就暴露问题:它记得开头和结尾,却把塞在正中间的关键信息漏掉了。如果评测只在文档末尾放一句关键句再提问,得到的分数是虚高的——真实使用中用户随便贴一大段文档,关键信息可能落在任何位置。所以长上下文评测有个朴素但关键的做法:把那句「针」故意埋在文档的开头、四分之一、中间、四分之三、结尾,分别测能不能捞出来。位置一换就答不对,说明模型并没有真正「读懂」长文,只是在靠首尾的表面线索答题。这种细节上的较真,才是区分「看起来支持长上下文」和「真的能用长上下文」的关键。

推理优化:让模型又快又省地服务

训练出模型只是开始,真正服务用户要在有限显卡上追求高吞吐、低延迟、可接受成本。推理瓶颈主要是显存带宽、显存容量和计算,主流优化各打一个点:

推理和训练的瓶颈很不一样。训练要算梯度、存优化器状态,重计算;推理只是前向一遍,瓶颈往往变成「把权重从显存搬到计算单元」这件事——也就是显存带宽。每生成一个 token,都要把整层权重读一遍,词一多就卡在搬数据上。这就是为什么量化在推理阶段特别值钱:权重从 16bit 压到 4bit,要搬的数据直接减到四分之一,速度立刻上来,而精度损失往往小到用户无感。投机解码利用了「小模型快但糙、大模型慢但准」的不对称:让一个小模型先飞快地草拟几个词,大模型一次性并行校验,对就直接采用,错才回退——几乎不掉质却快很多。连续批处理则解决 GPU 空等:把不同用户的请求动态拼成一批,不让显卡在等某个慢请求时空转。这些手段的共同目标,都是让有限的显卡同时服务更多人、每个人等得更短。

推理系统六大优化杠杆

量化

把权重从 FP16 压到 INT8/INT4,省显存、提速,精度损失要评估

蒸馏

用大模型教小模型,缩小体积、降低部署成本

投机解码

小模型快速起草、大模型并行校验,几乎不掉质的提速

连续批处理

动态拼批、不空等最慢请求,显著提升 GPU 吞吐

PagedAttention

像操作系统管内存一样分页管理 KV Cache,减少显存碎片

KV Cache 优化

量化/驱逐/共享前缀缓存,压低长对话显存占用

推理三要素相互制约,需要按业务权衡

显存容量

能同时装下权重与多少并发会话的 KV

吞吐

单位时间服务多少请求/ token

延迟

首 token 时间与生成速度,决定体验

结果回流,持续迭代(回到第一步循环)

批更大吞吐高但单请求延迟升;量化省成本但要盯质量

🐍评测与系统是专家分水岭

初级工程师盯着模型分数和「能不能跑」,专家会同时追问:这个分数可不可信(污染/维度/失败案例),以及这套效果在目标硬件和并发下要花多少钱、延迟多少。能力与成本必须一起评估,才是能落地的工程判断。

选择题

某模型在公开榜单上分数极高,但上线后真实任务表现一般,最需要优先排查的是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

先查数据:标签是否正确、有没有特征和标签泄漏、是否做了归一化;再查损失与学习率:学习率太大震荡、太小几乎不动;接着看批量大小和优化器,最后才怀疑模型结构。一个极好用的冒烟测试是:用极少量样本训练,看损失能不能被压到接近零——能,说明整条代码链路是通的;不能,问题一定在实现里,先别谈调参。