赞
踩
论文题目:Active Retrieval Augmented Generation
论文地址:Active Retrieval Augmented Generation - ACL Anthology
会议:EMNLP 2023 main (Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing)
github 链接:jzbjyb/FLARE: Forward-Looking Active REtrieval-augmented generation (FLARE) (github.com)
笔记参考: Better RAG with Active Retrieval Augmented Generation FLARE (lancedb.com)
传统方法采用retrieve-and-generate 的范式进行检索增强,这种方式一般仅检索一次。本文提出了一种名为Forward-Looking Active REtrieval augmented generation (FLARE)的主动检索的方法,可以在生成过程中主动决定何时检索以及检索的内容。
具体来说,它迭代式地对 待生成的句子进行预测,如果预测的句子中含有低置信度的token,就使用预测的结果作为query检索相关文档,然后重新生成句子。
单次检索增强大模型比纯参数化的模型在 short-form knowledge-intensive generation task上表现更好,这种任务的信息需求在用户的输入中是明确的,并且仅基于输入来检索相关知识就足够了。
short-form knowledge-intensive generation task 比如 factoid question answering
long-form knowledge-intensive generation task 比如long-form QA, open-domain summarization,chain-of-thought reasoning 任务。
而long-form的任务需要的信息常常在输入中不明显,与人类写文章时的过程类似,往往需要在生成的过程中多次收集信息。
之前的文章提出了两类多次检索的策略,但这些都不是主动决定何时检索以及检索内容。
每生成固定的n个token就找回一次【1】(In-Context RALM)【2】(IRCoT)
将问题分解为多个子问题,每个子问题检索一次,如多跳QA问题
multihop QA问题指需要阅读多个段落才能回答问题
主动决定何时检索和检索的内容,并将检索到的内容会拼接在用户输入之前以辅助未来的生成。
何时检索: 当模型缺少相关知识时。因此作者认为当模型产生低概率或低置信度的token时说明LLM缺乏相关知识,需要进行检索。
检索什么:通过生成一个临时的下一个句子来预测未来,使用它作为查询来检索相关文档,然后结合检索到的文档重新生成下一个句子。
原则
提出了两类方法:
这种方式参考了Toolformer【3】的方式,模型通过输出**[Search(query)]**来表达检索信息的需求。
Toolformer 可以决定调用哪些 API、何时调用它们、传递哪些参数以及如何最好地将结果合并到未来的令牌预测中
如上图,分别产生了两个[Search(query)]进行检索信息。
这种方式在使用时既需要指导大模型完成任务的指令,又需要指导大模型生成检索query的指令,同时可能还需要指导大模型i将两者结合起来的指令。如下图
疑问,当需要检索时,模型生成会停止。而当检索到内容后,怎么让LLM结合检索的内容在停止的地方接着生成?
应该是在检索到相关文档后,将文档放在用户query的前部,然后去掉上一步生成的检索query,指示大模型继续生成。
缺陷
如果重新生成的句子中也有置信度低的怎么办?
利用含有低概率token句子进行检索的方法有两种。
Self-ask 【4】也实现了在回答初始问题前生成显示query,但这种方法需要手动在下游任务中插入后续问题作为示例。
在text-davinci-003的API上测试本方法
检索器:BM25用来检索Wikipedia dump, Bing search engine用来检索开放的网络信息
数据集
MultihopQA:2WikiMultihopQA
Commonsense reasoning:StrategyQA
Long-form QA:ASQA
Open-domain summarization:WikiAsp
前瞻性的主动检索是非常有效的,而使用前一个句子进行检索的改进相对较小,我们假设这主要是因为前一个句子经常描述与下一个句子不同的实体或关系。
F L A R E i n s t r u c t FLARE_{instruct} FLAREinstruct效果不算好,说明教LM使用任务通用检索指令和范例生成搜索查询是具有挑战性的。
对40%-80%的句子进行触发检索,通常会导致跨任务/数据集的良好表现
在文本和代码生成任务中人们研究了迭代检索和细化。【5】【6】【7】本文与它们的不同在于生成的粒度和检索策略的不同。
在主动检索方面,一些研究【8】【9】关注于单次检索场景,基于问题流行度以及生成概率,而本文关注需要主动信息访问的长文本生成任务。
【1】[2302.00083] In-Context Retrieval-Augmented Language Models (arxiv.org)
【2】ACL 2023 long Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions - ACL Anthology
【3】[2302.04761] Toolformer: Language Models Can Teach Themselves to Use Tools (arxiv.org)
【4】EMNLP 2023 findings Measuring and Narrowing the Compositionality Gap in Language Models - ACL Anthology
【6】EMNLP 2023 [2303.12570] RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation (arxiv.org)
【7】COLING 2022 Generate-and-Retrieve: Use Your Predictions to Improve Retrieval for Semantic Parsing - ACL Anthology
【8】ACL 2023 long [2212.10511] When Not to Trust Language Models: Investigating Effectiveness of Parametric and Non-Parametric Memories (arxiv.org)
【9】ACL 2023 findings [2305.10998] The Web Can Be Your Oyster for Improving Large Language Models (arxiv.org)
【9】ACL 2023 findings [2305.10998] The Web Can Be Your Oyster for Improving Large Language Models (arxiv.org)
【10】NAACL 2021 main[2103.06332] Hurdles to Progress in Long-form Question Answering (arxiv.org)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。