当前,使用 LLM 问答类应用时,最让人困扰的就是无法知道它的回答是否真实可靠,为了避免“掉坑”,在对于一些很严谨的问题上,用户更愿意使用传统搜索。今天,我们要介绍一种名为 LeReT(Learning to Retrieve by Trying)的技术,它通过强化学习显著提升大型语言模型(LLM)的检索能力,克服“幻觉”,让 AI 的回答更加靠谱。
什么是 LeReT?
LeReT[1] 是一个基于强化学习的框架,旨在增强 LLM 的检索能力,使其生成的答案更加可靠。通过将答案建立在人类生成和验证的数据之上,LeReT 成功地将检索准确率提高了 29%,下游生成评估提升了 17%。简单来说,其原理就是通过不断尝试和优化查询,使 LLM 能够更准确地检索到相关信息,从而减少幻觉现象。该框架具有高度的灵活性,它将检索视为一个黑盒,这意味着通用算法适用于任何工具和奖励函数。因此,LeReT 可以扩展到通用代理系统或 LLM 流程中。
多跳检索与强化学习
减少幻觉是提升 LLM 生成答案可信度的关键。将答案建立在人类验证的数据之上是一个自然的解决方案,但捕捉相关事实却颇具挑战。LeReT 通过让 LLM 根据用户问题查询相关事实,并学习提升那些能带来相关信息查询的权重,从而提高检索准确率和下游生成评估。
多跳检索是 LeReT 的核心技术之一,通过多次查询不同信息源,逐步逼近正确答案。例如,在回答“谁是美国的现任总统?”时,LeReT 会先检索相关新闻,再进一步确认最新信息。
LeReT 如何工作?
多样化查询生成:LeReT 首先生成一系列多样化的查询。它通过DSPy优化的少样本提示(few-shot prompts)来激发模型生成多样的,高奖励的样本。
奖励计算:根据检索到的文档,LeReT 计算出一个奖励值。这个奖励值用于评估查询的有效性。
模型训练:通过标准 SFT(Supervised Fine-Tuning)步骤和 IPO(Interleaved Preference Optimization)训练,LeReT 不断优化 LLM 的查询生成能力。
LeReT 特别适用于多跳检索场景。例如,当用户提出一个复杂问题时,LLM 首先生成查询以检索相关文档,然后基于这些文档生成后续查询,最终生成答案。
实验结果
LeReT 在 HotpotQA 和 HoVer 数据集上进行了测试,使用了 Llama 3 8b 和 Gemma 2 9b 基础模型。实验结果显示,LeReT 在这两个数据集和基础模型上都显著提高了检索准确率和生成质量。
具体数据如下图所示:
结论
LeReT 通过强化学习显著提升了 LLM 的检索能力,减少了幻觉,使 AI 的回答更加靠谱,这将更有利于 RAG 类应用产品的落地,特别是在生成式检索,智能客服,内容审核,教育辅助等场景中拥有广阔的前景。
参考资料
后台回复“入群”进群讨论。