本文属于 RAG 工程框架中的「5 在线运营与成本治理」环节,聚焦「Feedback Learning(反馈学习)」方法。可先阅读 RAG-00.方法概述 再进入本篇。
原理
收集用户反馈、点击与纠错数据,构建闭环更新召回(Retrieval)、重排(Rerank)与提示策略。
关键技术/实现路径
- 显式反馈(点赞/点踩/纠错)。
- 隐式反馈(停留时长、追问行为)。
- 周期重训与灰度发布。
优缺点
- 优点:长期效果持续提升。
- 缺点:反馈噪声与偏差需治理。
性能与资源
- 离线成本中等,线上收益长期显现。
应用场景
- 用户规模较大、问题分布变化快的系统。
统一合成数据示例
输入数据片段
1 | {"session_id":"S1","query":"报销时限","feedback":"答案不完整"} |
中间结果(反馈转训练样本)
1 | {"hard_negative":"D08","positive":"D01","label":"missing_time_constraint"} |
最终生成示例(含引用)
1 | {"answer_after_update":"报销需在30天内提交。","citations":[{"doc_id":"D01","evidence_span":"30天内提交"}]} |
原始发表与工程实现
- 代表性原始发表:RLHF (2022) 与反馈闭环实践。
- 核心解决问题:解决线上持续优化。
- 成熟实现工具:LangSmith, Phoenix, W&B。
详细原理拆解
- 把在线反馈转训练样本,形成日志->重训->灰度->监控闭环。
- 典型实现可拆为:输入预处理 -> 方法核心计算 -> 候选/证据构建 -> 生成与引用。
- 工程调优重点:质量(准确率/引用率)与成本(时延/token)的联合优化。
1 | flowchart LR |
工程落地扩展示例
伪代码
1 | def feedback_to_train(logs, miner): |
参数示例
1 | negative_feedback_labels: [missing_constraint, wrong_doc, stale_version] |
常见失败案例
- 失败模式 1:用户点踩原因不明,标签噪声 把训练带偏。
- 失败模式 2:过拟合近期热点,长尾问法 变差。
- 失败模式 3:未与 A/B 或离线门禁联动,线上直接换模型风险高。
Demo 数据带入计算示例
1 | 100 条「答案不完整」反馈 → 构造 (q, gold=D01, neg=D08) 对比样本;重训后 recall@10:0.81→0.86。 |