|
社区问答(CQA)平台(如 Stack Overflow、AskUbuntu)沉淀了大量高质量知识,但在工业界落地时仍面临三大挑战: - 静态知识不足:仅靠官方文档难以覆盖真实业务场景的“坑”。
- 历史 QA 质量参差不齐:早期答案可能已被更好答案取代。
- 实时性 + 存储爆炸:新问题持续涌入,如何快速检索并控制存储增长?
现有方法要么只检索社区历史,要么只用静态文档,缺少“动态反思 + 高效存储”的机制。ComRAG 正是为了解决这些痛点而生。  ComRAG 框架概览 *图 1:ComRAG 实时社区问答(CQA)架构。系统整合了一个静态知识向量库和两个动态 CQA 向量库(高质量与低质量),后者通过基于质心的记忆机制进行管理。 核心思想一句话:“既要官方文档的权威,也要社区历史的经验,还要随时间动态遗忘低质量内容”。 技术拆解3.1 静态知识向量库- 用 embedding 模型把官方文档切成 chunk → 建索引 → 向量检索。
- 负责兜底:当社区没有相似 QA 时,由官方文档直接生成答案。
3.2 动态 CQA 向量库为了处理“质量不一致 + 存储无限膨胀”两个问题,作者提出双库 + 质心记忆机制: | | |
|---|
| High-Quality Store | | | | Low-Quality Store | | 同样聚类,但仅作为“反面教材”提示 LLM 不要重蹈覆辙 |
 图 4:利用质心聚类控制存储增长,ProCQA 上 10 轮迭代后 chunk 增长率从 20.23% 降到 2.06% 3.3 三路径查询策略收到新问题 q 时,ComRAG 按相似度阈值 τ, δ 走三条路径之一: - 直接复用:与高质量库中某 QA 几乎一样(sim ≥ δ),直接返回答案。
- 参考生成:与高质量 QA 有点相似(τ ≤ sim < δ),把相关 QA 作为上下文让 LLM 重写。
- 避坑生成:高质量库里没类似问题,则拿低质量 QA 做“负面例子”+ 官方文档,让 LLM 生成更可靠答案。
3.4 自适应温度- 根据检索到的历史答案得分方差 Δ 动态调整 LLM temperature:
 实验验证4.1 数据集与指标指标: - 语义:BERT-Score F1、SIM(embedding 余弦相似度)
4.2 主实验结果
表 1:三大数据集上 ComRAG 均显著优于所有基线 - 可扩展性:10 轮迭代后延迟最多再降 52.5 %(ProCQA)
图 2:PolarDBQA 上移除任一模组都会显著降低 BERT-Score 或增加延迟 - 移除高质量库 → BERT-Score −2.6,延迟 +4.9 s
- 移除质心记忆 → BERT-Score −0.5,延迟 +2.2 s
关键结论 & 工业落地启示 | |
|---|
| 效果 | 语义相似度最高提升 25.9 %,显著优于 DPR/BM25/RAG | | 效率 | 延迟随时间递减,最多再降 52 %,适合高并发场景 | | 存储 | chunk 增长率被压制到 < 2.1 %,节省 90 % 存储 | | 可插拔 | LLM、embedding、打分器、向量库全部可替换 |
“ComRAG 的核心价值不在于模型本身,而在于用质心记忆机制把‘时间’和‘质量’显式建模进了检索-生成流程。”
https://arxiv.org/abs/2506.21098ComRAG:Retrieval-AugmentedGenerationwithDynamicVectorStoresforReal-timeCommunityQuestionAnsweringinIndustry |