评估与监控 (Evaluation & Monitoring)
模型从训练到上线,评估贯穿始终。离线评估决定模型能否上线,在线评估决定模型表现是否符合预期,监控则保证模型在生产环境中持续可靠运行。
离线评估 (Offline Evaluation)
分类任务指标
混淆矩阵(Confusion Matrix) 是所有分类指标的基础:
| 预测正 | 预测负 | |
|---|---|---|
| 实际正 | TP (True Positive) | FN (False Negative) |
| 实际负 | FP (False Positive) | TN (True Negative) |
常用指标:
- Accuracy = \(\frac{TP + TN}{TP + TN + FP + FN}\),适用于类别均衡的场景
- Precision = \(\frac{TP}{TP + FP}\),回答"预测为正的有多少真的是正的"
- Recall = \(\frac{TP}{TP + FN}\),回答"所有正样本中有多少被找到了"
- F1 Score = \(\frac{2 \times P \times R}{P + R}\),Precision 和 Recall 的调和平均
- AUC-ROC:ROC 曲线下面积,衡量模型在不同阈值下区分正负样本的能力,值域 [0, 1],0.5 表示随机猜测
选择原则:
- 类别不均衡时,Accuracy 会误导,应看 F1 或 AUC-ROC
- 医疗诊断等漏检代价大的场景,优先看 Recall
- 垃圾邮件过滤等误报代价大的场景,优先看 Precision
文本生成指标
BLEU (Bilingual Evaluation Understudy):
- 核心思想:计算生成文本与参考文本之间 n-gram 的重合度
- 常用于机器翻译评估
- BLEU-4 同时考虑 1-gram 到 4-gram 的匹配
- 缺点:只看词的精确匹配,不理解语义
ROUGE (Recall-Oriented Understudy for Gisting Evaluation):
- ROUGE-N:基于 n-gram 的 Recall
- ROUGE-L:基于最长公共子序列(LCS)
- 常用于文本摘要评估
- 与 BLEU 的区别:BLEU 偏 Precision,ROUGE 偏 Recall
CIDEr (Consensus-based Image Description Evaluation):
- 专门为图像描述(Image Captioning)设计
- 基于 TF-IDF 加权的 n-gram 匹配
- 会降低常见短语(如"a picture of")的权重
METEOR:
- 考虑了同义词匹配和词干还原
- 比 BLEU 更好地捕捉语义相似性
- 与人类判断的相关性通常高于 BLEU
代码生成指标
pass@k:
- 定义:生成 \(k\) 个候选代码,只要有一个能通过所有测试用例即算通过
- 计算方式:从 \(n\) 个样本中估算,避免高方差
\[
\text{pass@k} = 1 - \frac{\binom{n-c}{k}}{\binom{n}{k}}
\]
其中 \(n\) 是总生成数,\(c\) 是通过测试的数量。
HumanEval:
- OpenAI 提出的代码生成 Benchmark
- 包含 164 个 Python 编程题,每题附带测试用例
- 通常报告 pass@1 和 pass@10
LLM 综合评估 Benchmark
MMLU (Massive Multitask Language Understanding):
- 覆盖 57 个学科(数学、历史、法律、医学等)
- 四选一的选择题格式
- 衡量模型的广泛知识与推理能力
HellaSwag:
- 常识推理 Benchmark
- 给出一个场景开头,选择最合理的后续
- 通过对抗过滤(Adversarial Filtering)构造高质量干扰项
MT-Bench:
- 多轮对话评估
- 由 GPT-4 作为评判(LLM-as-Judge)
- 评估模型的指令跟随、推理、创意写作等能力
Chatbot Arena:
- 基于人类偏好的众包评估
- 用户与两个匿名模型对话,投票选择更好的回答
- 使用 Elo 评分系统排名
- 被认为是目前最接近真实用户体验的评估方式
在线评估 (Online Evaluation)
离线指标再好,也不能保证线上效果。以下是常见的在线评估策略:
A/B Testing
最经典的在线评估方法:
- 将用户流量随机分为对照组(旧模型)和实验组(新模型)
- 收集两组的关键业务指标(点击率、留存率、用户满意度等)
- 通过统计检验(如 t-test)判断差异是否显著
注意事项:
- 需要足够的样本量,避免假阳性
- 流量分配要真正随机,避免 Selection Bias
- 同时关注多个指标,防止某个指标好但另一个变差(指标权衡)
Shadow Deployment(影子部署)
将新模型部署为"影子",接收与生产模型相同的请求,但不将结果返回给用户:
- 优点:零风险,可以在真实流量上评估新模型
- 缺点:需要双倍计算资源,无法评估用户交互类指标
适用于首次上线新模型前的验证阶段。
Canary Release(金丝雀发布)
逐步放量的部署策略:
- 先将 1-5% 的流量切到新模型
- 监控关键指标,确认无异常
- 逐步增大流量比例(10% → 25% → 50% → 100%)
- 任何阶段发现问题可以立即回滚
与 A/B Testing 的区别:Canary 的目标是安全上线,而非严格的统计比较。
风险评估
Red Teaming(红队测试)
通过模拟攻击来发现模型的安全漏洞:
- 人工红队:安全专家手动构造对抗性输入
- 自动红队:用另一个LLM自动生成攻击prompt
- 测试维度:有害内容生成、信息泄露、指令注入、越狱攻击等
Bias & Fairness(偏见与公平性)
常见偏见类型:
- Demographic Bias:对不同性别、种族、年龄群体的表现差异
- Representation Bias:训练数据中某些群体被低估或歪曲
- Stereotyping:模型输出强化社会刻板印象
公平性指标:
- Demographic Parity:不同群体获得正面预测的比例应相近
- Equal Opportunity:不同群体的 True Positive Rate 应相近
- Calibration:模型预测概率在不同群体中应同等准确
Safety Benchmarks
- TruthfulQA:测试模型是否会生成看似合理但错误的信息
- BBQ (Bias Benchmark for QA):测试模型在问答中的社会偏见
- RealToxicityPrompts:测试模型生成有害内容的倾向
- SafetyBench:中文安全评估 Benchmark
监控 (Monitoring)
模型上线后,持续监控是保证服务质量的关键。
Model Drift(模型漂移)
模型部署后性能随时间下降,常见原因:
- Concept Drift:输入与输出之间的关系发生变化(如用户行为变化)
- Gradual Drift:变化缓慢、持续
- Sudden Drift:突然变化(如政策调整、突发事件)
检测方法:
- 定期在新数据上评估模型指标
- 监控预测分布的变化(如 KL 散度、PSI)
- 设置性能指标的告警阈值
Data Drift(数据漂移)
输入数据分布发生变化,但不一定立即影响模型性能:
- Covariate Shift:输入特征分布变化
- Prior Probability Shift:标签分布变化
检测方法:
- 统计检验:KS Test(Kolmogorov-Smirnov Test)、Chi-square Test
- PSI (Population Stability Index):衡量两个分布之间的差异
- PSI < 0.1:无显著变化
- 0.1 < PSI < 0.25:中等变化,需关注
- PSI > 0.25:显著变化,需要调查
Latency / Throughput 监控
对于在线服务,性能指标与模型指标同等重要:
| 指标 | 说明 | 典型告警阈值 |
|---|---|---|
| P50 Latency | 中位数延迟 | 视场景而定 |
| P99 Latency | 尾部延迟 | 不超过SLA的2倍 |
| Throughput (QPS) | 每秒处理请求数 | 低于预期容量的80% |
| Error Rate | 错误请求比例 | > 1% |
| GPU Utilization | GPU使用率 | 持续 > 95% 或 < 30% |
| TTFT | Time To First Token | LLM场景关键指标 |
| TPS | Tokens Per Second | LLM生成速度 |
Alert System(告警系统)
一个完善的告警系统应该包含:
- 多级告警:Info → Warning → Critical → Emergency
- 告警聚合:避免告警风暴(同一问题大量重复告警)
- 告警路由:不同类型的告警通知不同的团队
- 自动化响应:如流量自动切换、模型自动回滚
常用工具栈:
- 指标采集:Prometheus
- 可视化:Grafana
- 告警管理:PagerDuty, OpsGenie
- 日志分析:ELK Stack (Elasticsearch + Logstash + Kibana)
参考
- Guo et al., "Evaluating Large Language Models: A Comprehensive Survey", 2023
- Liang et al., "Holistic Evaluation of Language Models (HELM)", 2022
- Chatbot Arena Leaderboard