在一把 key 上让第二个后端当自动评分员:规模化给第一个模型的输出打分
本文介绍如何利用同一把 API key 配置第二个模型作为自动评分员,规模化评估主模型输出质量,并重点讨论如何避免评分模型自身的偏好导致分数虚高。
在构建 LLM 应用时,我们经常需要评估主模型的输出质量。人工评估成本高、速度慢,而使用另一个模型作为自动评分员(LLM-as-a-Judge)可以规模化地完成这项任务。聚合站允许你用同一把 API key 调用多个模型,这为配置评分模型提供了便利。
为什么需要自动评分员
自动评分员可以快速对大量输出进行打分,适用于 A/B 测试、回归测试和持续监控。它比传统指标(如 BLEU、ROUGE)更灵活,能理解语义和上下文。但评分模型本身也可能带有偏好,导致分数不准确。
配置评分模型的基本步骤
- 选择评分模型:建议选择与主模型不同的模型系列,以减少同源偏好。例如主模型用 Claude,评分模型可以用 GPT 或 DeepSeek。
- 定义评分细则:明确评分维度(如相关性、准确性、完整性)和每个维度的评分标准(如 1-5 分),并提供示例。
- 设计提示词:将用户问题、主模型回答和评分细则一起放入评分模型的提示词中,要求它输出分数和理由。
- 批量调用:使用同一把 API key,通过聚合站的统一接口调用评分模型,处理所有待评估的输出。
避免评分模型偏好抬高分数
评分模型可能因为以下原因给出虚高分数:
- 同源偏好:评分模型与主模型来自同一家族,倾向于认可相似风格的输出。
- 长度偏好:倾向于给更长的回答打高分,即使内容冗余。
- 格式偏好:偏好结构化或带列表的回答,忽视内容质量。
- 正面偏差:倾向于给出正面评价,避免批评。
为了减少这些偏差,可以采取以下措施:
1. 使用异源评分模型
尽量选择与主模型不同的模型系列作为评分员。如果条件允许,可以组合多个评分模型,取平均分或投票结果。
2. 设计平衡的评分细则
在评分细则中明确每个分数的具体标准,避免模糊描述。例如:
- 5 分:回答完全正确、相关且完整,无冗余。
- 3 分:回答基本正确但遗漏关键点,或包含少量冗余。
- 1 分:回答错误或无关。
同时,要求评分模型先给出理由再打分,理由需要引用具体内容。
3. 随机化呈现顺序
如果同时评估多个模型的输出,随机化它们在提示词中的顺序,避免位置偏差。
4. 校准评分模型
定期用人工标注的样本校准评分模型,检查其分数与人工评分的一致性。如果发现系统性偏差,调整提示词或评分细则。
5. 监控分数分布
跟踪评分模型给出的分数分布。如果分数普遍偏高或集中,可能意味着评分模型过于宽松,需要重新审视评分标准。
实践建议
- 从小规模开始:先在一小部分数据上测试评分流程,验证有效性后再扩大。
- 保留原始输出和评分理由:便于后续分析和审计。
- 结合人工抽查:自动评分不能完全替代人工,定期抽查以确保质量。
通过合理配置和校准,你可以在同一把 key 上高效地运行自动评分系统,持续提升主模型输出的质量。