UniConv: Unifying Retrieval and Response Generation for Large Language Models in Conversations¶
会议: ACL 2025
arXiv: 2507.07030
代码: 无 (Amazon)
领域: 文本生成
关键词: 对话搜索, 统一模型, 检索+生成, 联合训练, LLM
一句话总结¶
探索如何将对话场景中的稠密检索和响应生成统一到单个 LLM 中,通过三个联合训练目标(对话检索 + 响应生成 + 上下文识别指令)和数据差异缓解机制,在五个对话搜索数据集上实现检索和生成的相互促进,超越分离式基线。
研究背景与动机¶
- 领域现状:对话搜索系统通常使用分离的检索器和生成器,分别训练和推理。结合 RAG 的商业对话搜索引擎(如 Perplexity.ai、SearchGPT)日益流行。
- 现有痛点:(a) 分离模型无法同时利用两者的内在知识——检索效果好不一定帮助生成(不一致性风险);(b) 部署维护两个模型增加硬件需求和维护成本;(c) 现有统一方法只能覆盖"理解对话上下文/独立检索/生成响应"中的两个方面,没有一个模型能同时做到三点。
- 核心矛盾:检索目标(对比学习的嵌入相似度)和生成目标(自回归交叉熵)训练范式不同,联合训练时一个目标的优化可能损害另一个。另外,现有训练数据格式不区分检索和生成输出的不同需求。
- 本文要解决什么? 构建首个同时具备对话理解、独立检索、响应生成三项能力的统一 LLM。
- 切入角度:设计三个互补的训练目标+数据差异缓解策略,让检索和生成的知识在同一模型中协同工作。
- 核心idea一句话:用上下文识别指令桥接检索和生成训练目标,加入格式匹配的对话搜索数据缓解数据差异。
方法详解¶
整体框架¶
基于 decoder-only LLM(如 LLaMA),三个联合训练目标:(1) 对话稠密检索(InfoNCE 对比损失);(2) 对话响应生成(自回归损失,使用 session-masked 技术);(3) 上下文识别指令(将查询与正例段落拼接,用对比学习区分好/坏响应)。总损失:\(\mathcal{L} = \mathcal{L}_R + \mathcal{L}_G + \alpha \mathcal{L}_{CII}\)。
关键设计¶
- 对话稠密检索:
- 做什么:让 LLM 同时作为对话理解的稠密检索器
- 核心思路:将多轮对话历史 \(\mathcal{H}_n\) 与当前查询 \(q_n\) 拼接为完整会话查询 \(q'_n\),用末尾
</s>token 的隐状态作为查询/段落表示,InfoNCE 对比损失训练 -
设计动机:继承 ChatRetriever 的做法,但保持生成能力不退化
-
上下文识别指令(Context Identification Instruction, CII):
- 做什么:桥接检索和生成,减少训练-推理不一致
- 核心思路:将查询与正例段落拼接作为输入,对比正确响应和错误响应——让模型学习"给定检索上下文时选择正确答案"。\(\mathcal{L}_{CII}\) 使用对比学习损失
-
设计动机:训练时检索和生成分开进行,但推理时模型需要用检索结果辅助生成——CII 模拟了这个推理场景,减少训练-推理的 gap
-
数据差异缓解:
- 做什么:解决训练数据格式不匹配问题
- 核心思路:之前的方法用响应当段落(检索训练)或用段落当响应(生成训练),但统一模型需要每个样本同时包含段落和响应。引入对话搜索数据(如 QReCC)确保每个训练样本有独立的查询-段落-响应三元组
- 设计动机:格式正确的数据让模型区分"什么时候像检索器"和"什么时候像生成器"
损失函数 / 训练策略¶
- 三目标联合训练:\(\mathcal{L} = \mathcal{L}_R + \mathcal{L}_G + \alpha \mathcal{L}_{CII}\)
- 检索用 bi-encoder + InfoNCE,生成用 session-masked 自回归
- 基于 Mistral-7B
实验关键数据¶
主实验(五个对话搜索数据集)¶
| 维度 | 分离模型(检索器+生成器) | UniConv | 说明 |
|---|---|---|---|
| 检索性能(MRR/Recall) | ChatRetriever 最佳 | 超越或持平 | 检索能力保持 |
| 生成性能(ROUGE/F1) | ChatQA 最佳 | 超越 | 生成能力增强 |
| 检索-生成一致性 | 检索好的不一定生成好 | 更一致 | CII 的贡献 |
| 部署成本 | 两个模型 | 一个模型 | 减半 |
消融实验¶
| 配置 | 效果 | 说明 |
|---|---|---|
| w/o CII | 生成性能下降 | 上下文识别指令是关键桥梁 |
| w/o 数据差异缓解 | 检索生成不一致加剧 | 格式匹配的数据重要 |
| 仅检索训练 | 生成能力崩溃 | 验证了联合训练的必要性 |
| 仅生成训练 | 检索能力缺失 | 同上 |
关键发现¶
- UniConv 是首个同时具备对话理解+开放域检索+响应生成的统一模型
- 检索和生成确实相互促进——检索改善了生成的输入质量,生成提供了更好的查询理解
- CII 是保证一致性的关键——没有它,模型检索到好段落但不能有效利用
- 数据格式比数据量更重要——少量格式正确的数据优于大量格式不匹配的数据
- 统一模型在跨数据集泛化上也优于分离模型
亮点与洞察¶
- "同一个模型同时当检索器和生成器"是对话搜索的自然进化——减少部署成本且提升一致性。
- CII 训练目标巧妙地模拟了 RAG 推理场景——在训练时就让模型学会"用检索到的段落来生成",而非训练检索和生成分开做。
- 数据差异缓解指出了一个被忽视的问题——训练数据的格式需要匹配任务的实际输出格式。
- 该统一范式可扩展到更多对话任务(如对话推荐、对话总结)。
局限性 / 可改进方向¶
- 基于 Mistral-7B,更大规模模型可能表现不同
- 训练需要同时准备检索和生成的标注数据
- bi-encoder 检索的效果可能不如专用检索模型(如 ColBERT)
- 未探索多模态对话搜索场景
相关工作与启发¶
- vs ChatRetriever: 仅做检索,微调后生成能力崩溃;UniConv 保持两者
- vs ChatQA/RankRAG: 需要外部检索器提供段落,非独立检索;UniConv 自己检索
- vs GRIT: 通用检索+生成统一但不支持多轮对话;UniConv 专门针对对话场景
- vs OneGen: 将检索 token 嵌入生成过程但不能独立检索;UniConv 的 bi-encoder 可独立运行
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个同时具备对话理解+开放域检索+响应生成三项能力的统一 LLM,CII 训练目标设计新颖
- 实验充分度: ⭐⭐⭐⭐ 五个数据集+完整消融+一致性分析+多种强基线对比,评估全面
- 写作质量: ⭐⭐⭐⭐ 问题定义清晰(Table 1 功能对比一目了然),三个训练目标各自独立又互补,方法形式化完整
- 价值: ⭐⭐⭐⭐ 对对话搜索系统有直接实用价值,减少部署成本同时提升一致性,是对话 AI 产品化的重要进展方向