模型升级不是玄学:一套可复用的 LLM 回归评估流程
王王老师189 阅读
做 LLM 应用,最常被问的问题:"换这个模型效果怎么样?""这个 prompt 改完是变好了吗?"——如果靠感觉回答,早晚翻车。我搭了一套回归评估流程,谁改了什么,跑一遍就知道。
核心:固定测试集 + 客观指标。
准备一份不随改动而变的测试集(离线评估集):
JSON
[
{"input": "怎么退款?", "expected": "包含:退款流程、条件、时效"},
{"input": "帮我写一封请假邮件", "expected": "格式正确、语气得体、包含关键信息"}
]
测试集要覆盖:典型场景、边界场景、易错场景(比如用户输入很乱、很长的场景)。
指标设计:
- 可自动判定的:格式正确率(输出是否为合法 JSON)、包含/不包含关键词、长度是否达标
- 需要模型判定的:语义一致性(用 GPT-4 当评委,判断输出是否满足 expected 描述)
- 人工抽检:自动判定 + 模型判定跑完,再抽 5% 人工复核
流程:
- 改动前跑一遍基线,记录指标
- 改动后跑同样测试集,对比
- 指标提升 → 通过;下降 → 回滚或调查
- 关键改动(换模型)要跑两遍取平均,因为 LLM 有随机性
坑:
-
测试集被污染。如果测试题被模型记住(比如调优时把测试题喂给过模型),效果虚高。测试集要"留出",调优过程不接触。
-
单样本波动。LLM 输出有随机性,跑一次不代表真实水平。温度设 0 或跑多次取平均。
-
指标和目标脱节。格式正确率高了,但用户满意度没变,说明指标选错了。指标要能反映"真实业务目标"。
-
评估成本。测试集大 + 用高级模型当评委,评估一次也花钱。控制测试集规模(100-300 条),关键改动才全量评估。
落地工具:
- 轻量:一个 Python 脚本 + JSON 测试集
- 完善:LangSmith、Promptfoo 这类开源评估工具,自带测试集管理和对比面板
最后:评估流程的价值不在"跑一次",而在"每次改动都能对比"。固定测试集 + 固定指标,让"变好变坏"从感觉变成数据。
评论0
还没有评论,来抢沙发~