多任务评测加权:平均分漂亮,不代表业务真的更好
一、简单平均会隐藏任务差异
多任务模型评测常把多个任务分数简单平均,得到一个总分。这个总分方便排序,但可能误导决策。任务难度不同、样本量不同、业务价值不同,简单平均会把这些差异抹平。
如果一个模型在低价值任务上提升很多,在核心任务上下降一点,简单平均可能仍然变高。但业务实际感受可能变差。多任务评测要先定义任务权重,而不是评完再挑解释。
二、权重来自评测目标
flowchart TD A[任务集合] --> B[业务价值] A --> C[样本规模] A --> D[风险等级] B --> E[权重设计] C --> E D --> E E --> F[综合得分]权重可以来自业务流量、用户价值、风险等级或研究目标。客服场景里,高频问题权重可以更高;医疗或金融场景里,高风险任务即使低频也不能忽略。
权重必须在评测前确定。评测后再改权重,很容易让结论迎合结果。严谨的评测流程应记录权重版本和制定理由。
三、综合分要可分解
def weighted_score(task_scores, weights): total = 0.0 weight_sum = 0.0 for task, score in task_scores.items(): w = weights[task] total += score * w weight_sum += w return total / weight_sum综合分只是入口,报告里必须展示每个任务的分数和权重贡献。否则模型为什么赢,为什么输,无法解释。
tasks: qa: score: 83.1 weight: 0.5 summarization: score: 79.4 weight: 0.3 classification: score: 91.0 weight: 0.2还要看任务间 trade-off。某些优化会提升分类,降低生成;提升短文本,降低长文本。总分上升不代表所有任务都变好。
四、权重也需要敏感性分析
如果结论对权重非常敏感,就要谨慎。可以尝试几组合理权重,观察模型排序是否稳定。如果稍微调整权重,第一名就变化,说明当前结论不够稳。
业务上线时,最好选择在关键任务上稳定、不确定性可控的模型,而不是只看综合平均分最高的模型。多任务评测服务的是决策,不是排行榜好看。
任务间指标尺度也要统一。一个任务用准确率,一个任务用 Rouge,一个任务用人工评分,直接加权前需要确认方向和范围一致。否则某个指标天然数值更大,会在综合分中占据不合理影响。
可以先对每个任务做相对提升归一化,再计算综合表现。但归一化方式也会影响结论,应在报告中说明。评测里最怕的是数学处理很复杂,却没有解释它代表什么业务含义。
权重还要支持版本管理。业务重点变化后,权重可以调整,但旧报告仍应保留旧权重。这样团队能知道模型排序变化是因为模型进步,还是因为评测目标变了。
最后,综合分旁边最好放一个“关键任务不退化”检查。只要核心任务下降超过阈值,即使总分上升,也不应直接上线。
还可以报告 Pareto 前沿。如果模型 A 在任务一更好,模型 B 在任务二更好,就不要强行用一个分数掩盖取舍。把不可同时优化的任务画出来,决策会更透明。
五、总结
多任务评测不能只做简单平均。权重应来自业务价值、样本规模和风险等级,并在评测前确定。
综合分漂亮只是开始。能解释每个任务的贡献和代价,才是可用于选型的评测结果。