核心观点
构建成功的 LLM 应用必须先定义可衡量的成功标准(SMART 原则),再设计对应的评测;评测应覆盖任务保真度、一致性、相关性、语调、隐私、上下文利用、延迟、成本等多维度,优先自动化、量大于精。
1. 定义成功标准(SMART 原则)
| 维度 | 要求 | 反例 ❌ | 正例 ✅ |
|---|---|---|---|
| Specific | 明确定义目标 | ”表现好" | "情感分类 F1 ≥ 0.85” |
| Measurable | 量化指标或定性量表 | ”安全输出" | "10,000 次试验中毒性标记 < 0.1%“ |
| Achievable | 基于基准/前沿能力设定 | ”100% 准确" | "比当前基线提升 5%“ |
| Relevant | 对齐业务/用户需求 | 医疗应用只看延迟 | 医疗应用强引用准确率 |
多维度组合示例(情感分析):
- F1 ≥ 0.85(任务保真度)
- 99.5% 非毒性(安全)
- 90% 错误仅造成不便而非严重错误(风险分级)
- 95% 响应时间 < 200ms(延迟)
2. 常见成功标准维度
| 维度 | 关注点 |
|---|---|
| 任务保真度 | 核心任务完成质量、边缘情况处理 |
| 一致性 | 同义/改写输入的输出语义一致性 |
| 相关性与连贯性 | 直接回答用户问题、逻辑清晰 |
| 语调风格 | 共情/专业/耐心等主观质量 |
| 隐私保护 | 敏感信息处理、不泄露指令 |
| 上下文利用 | 有效引用/构建历史信息 |
| 延迟 | 可接受响应时间(实时 vs 批处理) |
| 成本 | API 调用成本、模型规模、使用频次 |
大多数场景需多维组合评测,单一指标易产生 Goodhart 陷阱。
3. 评测设计原则
- 贴近真实任务分布:含边缘案例(无关输入、超长输入、恶意输入、人类也难判断的模糊案例)
- 优先自动化:选择可自动评分的题型(选择题、精确匹配、代码执行、LLM 打分)
- 数量优于质量:更多略低信噪比的自动评测 > 少量高质量人工标注
4. 四类典型评测示例
| 场景 | 评测方法 | 核心指标 | 关键代码片段 |
|---|---|---|---|
| 情感分类 | 精确匹配 | Accuracy / F1 | model_output.strip().lower() == label.lower() |
| FAQ 机器人一致性 | 余弦相似度 | Sentence-BERT embedding 平均余弦相似度 | np.mean(cosine_similarity(embeddings)) |
| 摘要生成 | ROUGE-L | LCS-based F1 | Rouge().get_scores(pred, ref)['rouge-l']['f'] |
| 客服语调 | LLM Likert 1-5 | 目标语调(共情/耐心/专业)打分均值 | 用另一模型打分:Rate 1-5 for being empathetic |
边缘案例必含:
- 讽刺/反语、混合情感
- 拼写错误、冗长啰嗦、无关信息干扰
- 多主题文章、误导性标题
- 愤怒用户、复杂问题、夸奖投诉
5. 评测实施清单
- 列出 3-5 个核心成功标准(SMART)
- 收集/构建 ≥ 500 条测试样本(含 20%+ 边缘案例)
- 选择自动化指标(精确匹配/ROUGE/余弦相似度/LLM 打分)
- 建立基线(当前 prompt / 竞品 / 人类表现)
- 迭代:改 prompt → 跑评测 → 对比基线 → 定版
- 最终验证:在 held-out 测试集确认无过拟合
关键心法
- “模糊”也要量化:安全/伦理可转化为”毒性标记率 < 0.1%”
- LLM 当评委:主观维度(语调、连贯)用强模型 + 明确 rubric 打分
- 分模型评测:生成模型 ≠ 评测模型,避免自夸偏差
常见坑
- 只测”快乐路径”,忽略边缘案例
- 成功标准与业务价值脱节(如追求高 BLEU 但用户真要准确引用)
- 评测集泄露到训练/提示词调优中
- 单一指标优化导致其他维度退化(需多维守门)