05 · MLOps / Airflow / RAG
RAG Evaluation Pipeline
黑盒 RAG 评测流水线:仅通过 /api/v1/chat 评测检索、生成、意图与多轮对话质量,含 LLM-as-a-Judge 与统计显著性基线对比
概述
将 RAG 系统视为黑盒、仅通过公开 /api/v1/chat 端点度量真实用户体验的自动化评测流水线。 评测维度覆盖检索质量(MRR、NDCG、HitRate、Precision@5)、生成质量(GLM LLM-as-a-Judge 四维评分)、 意图识别(Accuracy、Macro-F1)与多轮对话(槽位 F1、澄清轮数、意图切换准确率、任务完成率)。 核心特性:单次 API 采集共享给全部单轮评测维度(服务端限流友好)、质量门槛(健康检查 / 失败率阈值, 杜绝"全零报告静默成功")、bootstrap 统计显著性基线对比、延迟 P50/P95/P99、 171 项测试含离线端到端冒烟测试;支持 Airflow 编排与免 Airflow 独立脚本两种运行方式。
Technical Deep Dive
Airflow DAG
data_preparation
│
▼
collect_responses → 单次黑盒采集 + 质量门槛 + 延迟统计
│
├── retrieval_evaluation → MRR / NDCG / HitRate / Precision
├── generation_evaluation → LLM Judge:相关性 / 流畅度 / 完整性 / 安全性
├── intent_evaluation → Accuracy / F1
└── dialogue_evaluation → 槽位 / 澄清 / 切换 / 完成
│
▼
baseline_comparison → Delta + 单样本 bootstrap(可选)
│
▼
report_generation → JSON / HTML + PostgreSQL单次采集
先健康检查,单轮样本仅调用一次 /api/v1/chat,并执行失败率门槛。
四维评分
检索、生成、意图共享响应;多轮对话使用独立有状态线程。
基线对比
计算 Delta,用当前逐样本分数对历史聚合基线做单样本 bootstrap。
报告落盘
输出 JSON/HTML、P50/P95/P99、Judge 降级计数,并可选写入 PostgreSQL。
评测指标体系
检索质量
Mean Reciprocal Rank,正确答案排名的倒数均值
Normalized Discounted Cumulative Gain,考虑相关度加权的排序指标
Top-K 中是否命中正确答案
Top-K 结果中相关文档的比例
生成质量
回答是否直接回应用户问题
语法、表达清晰度与自然程度
是否覆盖用户请求的信息
是否避免有害或不恰当内容;Judge 降级会显式记录
Baseline 对比
每次运行可将检索、Judge 生成与意图指标对比历史聚合 Baseline,用当前逐样本分数做单样本 bootstrap。多轮指标会进入报告,但暂未纳入显著性检验。
| 对比项 | Baseline | 实验组 | Delta | p-value |
|---|---|---|---|---|
| MRR | 0.42 | 0.58 | +38% | 0.003 |
| NDCG@5 | 0.51 | 0.63 | +24% | 0.012 |
| Judge Relevance | 0.78 | 0.85 | +9% | 0.041 |
| Intent Accuracy | 0.82 | 0.87 | +6% | 0.018 |
部署架构
Docker Compose ├── airflow-webserver (Airflow UI + DAG 调度) ├── airflow-scheduler (CeleryExecutor 任务分发) ├── airflow-worker × N (并行执行评测任务) ├── airflow-triggerer (延迟任务支持) ├── postgres (Airflow 元数据 + 评测结果存储) └── redis (Celery 消息队列) 独立 Runner → JSON / HTML,PostgreSQL 可选
CeleryExecutor
任务级并行,多 Worker 同时跑不同评测任务
PostgreSQL
评测结果持久化,支持历史对比和趋势分析
双运行模式
可使用 Airflow 编排,也可无 Airflow/ 无 PostgreSQL 运行独立 Runner