Skip to content

评估与监控 (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

最经典的在线评估方法:

  1. 将用户流量随机分为对照组(旧模型)和实验组(新模型)
  2. 收集两组的关键业务指标(点击率、留存率、用户满意度等)
  3. 通过统计检验(如 t-test)判断差异是否显著

注意事项:

  • 需要足够的样本量,避免假阳性
  • 流量分配要真正随机,避免 Selection Bias
  • 同时关注多个指标,防止某个指标好但另一个变差(指标权衡)

Shadow Deployment(影子部署)

将新模型部署为"影子",接收与生产模型相同的请求,但不将结果返回给用户:

  • 优点:零风险,可以在真实流量上评估新模型
  • 缺点:需要双倍计算资源,无法评估用户交互类指标

适用于首次上线新模型前的验证阶段。

Canary Release(金丝雀发布)

逐步放量的部署策略:

  1. 先将 1-5% 的流量切到新模型
  2. 监控关键指标,确认无异常
  3. 逐步增大流量比例(10% → 25% → 50% → 100%)
  4. 任何阶段发现问题可以立即回滚

与 A/B Testing 的区别:Canary 的目标是安全上线,而非严格的统计比较。


风险评估

Red Teaming(红队测试)

通过模拟攻击来发现模型的安全漏洞:

  • 人工红队:安全专家手动构造对抗性输入
  • 自动红队:用另一个LLM自动生成攻击prompt
  • 测试维度:有害内容生成、信息泄露、指令注入、越狱攻击等

详细内容参见 红队测试LLM越狱

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

评论 #