新模型上线后,回答更长了,是否意味着质量下降?两个问题应分开:输出分布是否改变,以及改变是否伤害目标任务。10月模型更新频繁,同名接口也可能替换检查点;如果基线混入新旧输出,告警还没开始,比较对象就已经模糊。
长度分布、embedding空间和带标签质量各有用途。长度能暴露截断或模板变化;embedding能提示语义构成变化;人工标签或可验证答案才能直接连接任务质量。任何一层都不能自动替代另一层。
同一个质心可以藏着完全不同的数据
下面两组教学数据均值相同,但分布不同。我们用一维Wasserstein距离的等样本量特例:排序后对应位置的绝对差求平均。这里没有把多维embedding质心距离冒充Wasserstein距离。
def mean(xs): return sum(xs) / len(xs) def w1_equal(a, b): if not a or len(a) != len(b): raise ValueError("nonempty equal-size samples required") return mean([abs(x-y) for x, y in zip(sorted(a), sorted(b))]) base, now = [-2, -2, 2, 2], [-1, -1, 1, 1] assert mean(base) == mean(now) == 0 assert w1_equal(base, now) == 1 print("same centroid; W1 =", w1_equal(base, now))SciPy的定义针对一维分布,可含不同权重;上面的简化只覆盖等量、等权样本。真实embedding若需多维距离,应明确采用什么估计方法,不能把函数名换成“语义漂移”就跳过定义。
图中的曲线、点云和柱形用于说明监测维度,不对应线上观测或模型测评数据。
p值不是“线上变坏的概率”
两样本KS检验比较经验分布。在其假设与计算方法适用时,p值描述零假设下观察到至少同样极端统计量的概率;它不是零假设为真的概率,也不是业务受损概率。SciPy KS文档还说明了连续分布与独立样本的前提。离散token长度有大量并列值,直接照搬连续分布下的精确p值会有校准问题。
样本多时,小差异也可能显著;连续滑窗反复检验又会累积误报。因此,告警规则还要有最小效应量、独立基线窗口、稳定的抽样机制,以及多重检验或序贯监测的处理方案。不能在看到结果后不断调阈值,再把同一窗口当作独立验证集。
一个更接近业务的问题是:长回答是否增加事实错误或降低任务完成率?可将相同题目在旧、新输出间配对,固定标注规范,分别统计长度分层中的错误率。若答案更长而准确性没有下降,产品可能需要调整阅读成本;若长尾题出现截断,才需查生成预算或服务限制。两种修复不一样。
本文仅复核一个分布距离反例,没有测量线上漂移或调用模型。未来复跑应保存基线检查点、采样时间范围、去重规则与缺失率;没有标签时,只能报告分布变化,不能下质量退化结论。
本地验证:上方各 Python 代码块独立保存后,在 Python 3.9.6 的临时目录以python3 example.py执行,退出码均为 0;输出分别为same centroid; W1 = 1.0。数据为文中教学夹具,不是模型、GPU或线上性能测量。
SciPy两页均为持续维护文档,无独立十月发布日期。模型更新背景见DeepSeek更新日志的2026-10-17条目。