论文 | Enhancing Retrieval-Augmented Large Language Models with Iterative Retrieval-Generation Synergy

要解决的问题:

检索器很难捕捉相关性,尤其是对于具有复杂信息需求的查询。

解决的方法:

提出了一种叫ITER-RETGEN的方法,该方法迭代检索增强生成和生成增强检索。即用最初的任务输入作为查询,然后大语言模型根据这个查询去检索相关内容,检索到的内容就会显示出要回答问题可能需要的内容,然后大语言模型再根据这些内容再检索然后再生成,一直迭代这个过程,直到达到最大迭代次数或者是生成最理想的答案。

具体流程如下图所示

为什么要这样做?

  • 模型对任务输入的响应显示了完成任务可能需要的内容,这为检索到更相关的内容提供了更多的上下文,从而有助于在另一次迭代中生成更好的响应。
  • 该方法将所有检索到的知识组为一个整体进行处理,在很大程度上保持了生成的灵活性,并且不需要受到结构约束。

主要贡献:

  •  发现例如精确匹配(EM)自动度量评估指标可能会大大低估LLM在问答任务中的性能。而且EM指标的提升并不代表生成能力的改进。此外,作者认为使用LLM去评估可能更可靠。
  • 该方法优于或与最先进的检索增强方法竞争,同时更简单,检索和生成的开销更少。通过生成增强检索自适应,可以进一步提高性能,还能通过减少迭代次数来减少开销。
  • 通过使用这个方法,LLM能有效利用参数知识和非参数知识。并且,在问答任务中始终优于Self-Ask(结构化的提示技术)方法,无论非参数知识是否被提及。

迭代检索生成协同

概述公式:

给定问题q和检索语料库={},其中是段落,ITER-RETGEN重复次迭代的检索生成;在迭代中,利用上一次迭代的生成,与连接,来检索前k个段落,然后提示LLM  生成输出,将检索到的段落(表示为)和集成到提示中。  最后一个输出将作为最终响应产生。

生成增强检索

有许多自然语言任务具有复杂的信息需求。例如,在开放域多跳问答中,特定的信息需求只有在正确回答了一些先决条件的子问题后才能显现出来。换言之,原始问题与其支持知识之间可能存在语义差距,这是具有表示瓶颈的检索器无法有效解决的。在第一次迭代中,只能用问题来检索知识。在以后的迭代中,上一次迭代的LLM输出虽然不能保证正确性,但显示了回答问题可能需要什么,因此可以用来弥合语义差距;随着检索的改进,LLM可能会产生更好的输出。

检索增强生成

在每次迭代中,使用思想链提示生成一个输出,除此之外,还为问题q准备检索到的知识。

生成增强检索自适应

使用模型生成来优化检索器,以便检索器可以更好地捕捉问题中的信息需求。

数据集

HotPotQA2WikiMultiHopQAMuSiQueBamboogle

评估指标

评估指标是多跳问答数据集的精确匹配(EM)和F1,以及事实验证和常识推理数据集的准确性。为了进行更稳健的评估,作者还使用text-davinci-003评估模型输出的正确性,所得度量表示为Acc†。

例子

下表分别用HotPotQA和StrategyQA的两个例子展示了检索生成的协同作用。在第一次迭代中,由于两个问题都需要多跳推理,检索器无法仅使用问题检索所有支持知识。尽管在第一次迭代中受到分心的检索知识(HotPotQA示例中不同领域的能力)的影响,并显示出不完美的参数知识(StrategyQA示例中生成的Raclette不太可能在巴黎找到的语句),LLM在第二次迭代中生成有助于检索相关知识的短语,并成功纠正其输出。(红色表示纠正事实错误)

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着物联网系统的不断发展,机器到机器的通信变得越来越重要。MQTT作为一种轻量级的通信协议,已经被广泛应用于物联网系统中。而Python作为一种灵活且强大的编程语言,可以用来增强MQTT-based的机器到机器通信。 首先,Python提供了丰富的库和工具,可以帮助开发人员更加便捷地使用MQTT协议。通过使用Python的MQTT客户端库,开发人员可以快速地建立起MQTT连接,并且方便地进行消息的发布和订阅操作。同时,Python还提供了各种各样的扩展库,可以用来处理与MQTT相关的数据和事件。 其次,Python具有较为友好的语法和良好的可读性,这使得开发人员可以更加高效地编写和维护MQTT-based的机器到机器通信代码。同时,Python还支持异步编程,这意味着可以编写高效的并发MQTT通信程序,从而提高系统的性能和响应速度。 此外,Python还可以与各种传感器、执行器和其他物联网设备进行良好的集成。开发人员可以利用Python的丰富库和工具,将MQTT通信与物联网设备的控制和监测结合起来,从而实现更加智能和灵活的物联网系统。 综上所述,通过使用Python来增强MQTT-based的机器到机器通信,可以使物联网系统变得更加灵活、高效和功能丰富。Python为开发人员提供了丰富的工具和良好的支持,从而可以更好地应对物联网系统中的各种挑战和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值