评估最佳实践总结
High Contrast
Dark Mode
Light Mode
Sepia
Forest
3 min read691 words

评估最佳实践总结

本章是 LLM 评估全书的收官章节,提炼贯穿全书的核心原则,让你带着一份清晰的行动框架离开。

LLM 评估全局视图

graph TB A[LLM 评估体系] --> B[评估基础
Why & What] A --> C[评估方法
How] A --> D[问题检测
Safety] A --> E[生产评估
Prod] A --> F[工具生态
Tooling] B --> B1[目标→维度→指标→阈值] C --> C1[LLM-as-a-Judge
基准测试
人工评估
模型对比] D --> D1[幻觉/偏见
安全/合规
性能稳定
多轮质量] E --> E1[A/B测试
红队
优化闭环] F --> F1[Ragas/DeepEval
企业平台
CI/CD门禁] style A fill:#ede7f6,stroke:#5e35b1,stroke-width:2px style D fill:#ffcdd2,stroke:#c62828,stroke-width:2px style E fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

评估成熟度模型

from dataclasses import dataclass
from enum import IntEnum
class EvalMaturityLevel(IntEnum):
"""LLM 评估成熟度等级"""
L0_NONE = 0          # 无系统性评估
L1_MANUAL = 1        # 手动抽检
L2_AUTOMATED = 2     # 部分自动化
L3_SYSTEMATIC = 3    # 系统化评估
L4_CONTINUOUS = 4    # 持续评估 + CI 门禁
L5_PLATFORM = 5      # 企业评估平台 + 优化闭环
@dataclass
class MaturityDescriptor:
level: EvalMaturityLevel
description: str
characteristics: list[str]
next_steps: list[str]
MATURITY_GUIDE = {
EvalMaturityLevel.L0_NONE: MaturityDescriptor(
EvalMaturityLevel.L0_NONE,
"无系统评估",
["凭直觉判断模型好坏", "没有量化指标", "无法比较版本"],
["定义 3-5 个核心指标", "建立 50 条基础评估样本", "每次更新手动运行基准"],
),
EvalMaturityLevel.L1_MANUAL: MaturityDescriptor(
EvalMaturityLevel.L1_MANUAL,
"手动抽检",
["有评估样本集", "手动打分", "无自动化"],
["引入自动化评估脚本", "使用 LLM-as-a-Judge 替代部分人工", "建立评估数据集版本管理"],
),
EvalMaturityLevel.L2_AUTOMATED: MaturityDescriptor(
EvalMaturityLevel.L2_AUTOMATED,
"部分自动化",
["有评估脚本", "指标可计算", "但未接入 CI"],
["接入 CI/CD pipeline", "设定质量门禁", "定期收集生产信号"],
),
EvalMaturityLevel.L3_SYSTEMATIC: MaturityDescriptor(
EvalMaturityLevel.L3_SYSTEMATIC,
"系统化评估",
["CI 自动运行", "版本对比报告", "有质量门禁"],
["建立红队测试", "实现多模型 ELO 排名", "扩展到在线 A/B 测试"],
),
EvalMaturityLevel.L4_CONTINUOUS: MaturityDescriptor(
EvalMaturityLevel.L4_CONTINUOUS,
"持续评估 + CI 门禁",
["上线必须通过评估门禁", "有在线 A/B 测试", "有红队测试"],
["建设企业评估平台", "实现评估驱动优化闭环", "建立跨团队的评估数据治理"],
),
EvalMaturityLevel.L5_PLATFORM: MaturityDescriptor(
EvalMaturityLevel.L5_PLATFORM,
"企业评估平台",
["统一评估平台", "完整优化闭环", "多团队协作评估"],
["规模化评估能力", "建立行业基准", "开源贡献"],
),
}
def assess_current_level(org_profile: dict) -> EvalMaturityLevel:
"""根据组织能力评估当前成熟度"""
score = 0
if org_profile.get("has_eval_dataset"):
score += 1
if org_profile.get("automated_eval_script"):
score += 1
if org_profile.get("ci_integration"):
score += 1
if org_profile.get("quality_gates"):
score += 1
if org_profile.get("red_team_testing"):
score += 1
return EvalMaturityLevel(min(score, 5))
# 评估自查示例
my_org = {
"has_eval_dataset": True,
"automated_eval_script": True,
"ci_integration": False,
"quality_gates": False,
"red_team_testing": False,
}
current = assess_current_level(my_org)
descriptor = MATURITY_GUIDE[current]
print(f"当前成熟度: L{current} — {descriptor.description}")
print("\n当前特征:")
for c in descriptor.characteristics:
print(f"  ✅ {c}")
print("\n下一步行动:")
for step in descriptor.next_steps:
print(f"  → {step}")

评估 Anti-Pattern 清单

Anti-Pattern 症状 正确做法
指标膨胀 追踪 20+ 指标,每个都看不清 聚焦 3–5 个核心业务指标
测试集污染 评估样本出现在训练数据中 严格隔离,版本管理
标准漂移 每次评估改变评分标准 冻结评估配置,用新版跑对比
一次性评估 只在上线前评估一次 持续评估 + 生产监控
忽略安全测试 只关注准确性,不做红队 安全是必测项,非可选项
评估结果孤立 评估报告无人阅读 接入看板,触发告警
过高阈值焦虑 所有指标要求 99%+ 阈值要基于业务影响,不是追求完美

黄金评估流程检查单

graph LR A[需求] --> B[定义指标和阈值] B --> C[构建评估数据集] C --> D[基线评估] D --> E[接入 CI/CD] E --> F[红队测试] F --> G[上线 A/B 验证] G --> H[持续监控] H --> I[定期复审指标] style D fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style F fill:#ffcdd2,stroke:#c62828,stroke-width:2px style H fill:#c8e6c9,stroke:#43a047,stroke-width:2px

40条评估实践原则

策略层 1. 评估优先于优化——没有基线就不要开始优化 2. 业务指标 > 技术指标——BLEU 高不代表用户满意 3. 从3个核心指标开始——宁少而精,不多而散

数据层 4. 评估集要覆盖边界情况 5. 每季度更新数据集 6. 对抗样本占比 5–10% 7. 标注要至少 3 人以上,IAA ≥ 0.7

方法层 8. LLM-as-a-Judge 的判断者要比被测模型更强 9. 盲测避免确认偏见 10. ELO 比绝对分更适合横向对比 11. 每次只改一个变量

生产层 12. 上线必须通过质量门禁 13. 安全指标的阈值要高于准确性 14. 红队测试是必测项,非可选 15. 生产 A/B 测试才是最终验证

工具层 16. 就近原则——使用最简单能满足需求的工具 17. RAG 系统用 Ragas 18. 通用对话用 DeepEval 19. 评估代码也需要版本管理

本章小结

完整的 LLM 评估体系需要:

下一步行动:对照成熟度模型评估自己的现状,选择距离最近的下一级,并在本周完成第一个具体改进行动。