以下是关于 RAG 的相关文档内容:
RAG 是由 Lewis 等人(2021)提出的一种通用微调方法。它使用预训练的 seq2seq 作为参数记忆,用维基百科的密集向量索引作为非参数记忆(通过神经网络预训练的检索器访问)。
RAG 在 Natural Questions、WebQuestions 和 CuratedTrec 等基准测试中表现出色。在 MS-MARCO 和 Jeopardy 问题测试中,生成的答案更符合事实、更具体、更多样,FEVER 事实验证使用后也得到更好结果,说明它是一种可行方案,能在知识密集型任务中增强语言模型的输出。
基于检索器的方法越来越流行,常与 ChatGPT 等流行 LLM 结合使用来提高能力和事实一致性。LangChain 文档中有使用检索器和 LLM 回答问题并给出知识来源的简单例子。
虽然网络上提示工程相关资料众多,但 RAG 任务中提示工程的资料相对较少。LangGPT 社区推出了 RAG 任务下的提示词实践经验系列分享,《RAG 提示工程》为系列文章,第一篇会带领大家了解 RAG 架构的概念、基本组成、常见痛点以及提示词工程在其中的应用,并逐步指导实操 RAG 提示词案例。
通用语言模型微调可完成常见任务,更复杂和知识密集型任务可基于语言模型构建系统访问外部知识源。Meta AI 研究人员引入的 RAG 方法把信息检索组件和文本生成模型结合,可微调,内部知识修改高效,无需重新训练整个模型。RAG 接受输入并检索相关文档,给出来源,组合后送给文本生成器得到最终输出,适应事实变化,让语言模型获取最新信息并产生可靠输出。
Lewis等人(2021)提出一个通用的RAG微调方法。这种方法使用预训练的seq2seq作为参数记忆,用维基百科的密集向量索引作为非参数记忆(使通过神经网络预训练的检索器访问)。这种方法工作原理概况如下:图片援引自:[Lewis et el.(2021)(opens in a new tab)](https://arxiv.org/pdf/2005.11401.pdf)RAG在[Natural Questions(opens in a new tab)](https://ai.google.com/research/NaturalQuestions)、[WebQuestions(opens in a new tab)](https://paperswithcode.com/dataset/webquestions)和CuratedTrec等基准测试中表现抢眼。用MS-MARCO和Jeopardy问题进行测试时,RAG生成的答案更符合事实、更具体、更多样。FEVER事实验证使用RAG后也得到了更好的结果。这说明RAG是一种可行的方案,能在知识密集型任务中增强语言模型的输出。最近,基于检索器的方法越来越流行,经常与ChatGPT等流行LLM结合使用来提高其能力和事实一致性。LangChain文档中可以找到[一个使用检索器和LLM回答问题并给出知识来源的简单例子(opens in a new tab)](https://python.langchain.com/docs/use_cases/question_answering/quickstart)。
虽然目前网络上关于提示工程的相关资料已经多如牛毛,然而RAG(检索增强生成)任务中提示工程如何进行的资料相对而言却较少。不少朋友之前也热烈的讨论过RAG场景下提示词的运用,因此LangGPT社区特别推出RAG任务下的提示词实践经验系列分享。蓝衣剑客(微信lanyijianke1992)是LangGPT社区核心成员,清华大学数据治理研究中心主任助理,曾经参与生成式人工智能行业应用合规标准起草,作为企业技术负责人主导参与了多个大模型实际应用场景下的落地工作,在RAG相关领域有着大量的实践经验。云中江树(微信1796060717)是LangGPT提示词社区的主理人,结构化提示词提出者。蓝衣剑客负责本文主要内容的撰写,江树负责本文内容框架的整体设计和质量把控。《RAG提示工程》为系列文章,今天为大家带来的是《RAG提示工程》的第一篇。在这篇文章中,我们将带领大家了解RAG架构的概念、基本组成、常见痛点以及提示词工程在RAG架构中的应用。随后,我们将逐步指导大家实操一个RAG提示词案例,让大家逐步了解如何编写、调试符合企业生产级标准的提示词。
通用语言模型通过微调就可以完成几类常见任务,比如分析情绪和识别命名实体。这些任务不需要额外的背景知识就可以完成。要完成更复杂和知识密集型的任务,可以基于语言模型构建一个系统,访问外部知识源来做到。这样的实现与事实更加一性,生成的答案更可靠,还有助于缓解“幻觉”问题。Meta AI的研究人员引入了一种叫做[检索增强生成(Retrieval Augmented Generation,RAG)(opens in a new tab)](https://ai.facebook.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/)的方法来完成这类知识密集型的任务。RAG把一个信息检索组件和文本生成模型结合在一起。RAG可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。RAG会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样RAG更加适应事实会随时间变化的情况。这非常有用,因为LLM的参数化知识是静态的。RAG让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。