翻译: RAG检索增强生成 增加LLM未知的知识 Retrieval Augmented Generation
我们已经看到了如何用大型语言模型(LLM)进行提示操作,这种方法可以带来相当大的成效。但还有一种被称为检索增强生成(Retrieval Augmented Generation,简称RAG)的技术,它可以通过为LLM提供互联网或其他公开来源之外的额外知识,显著扩展你能从LLM中获得的信息。让我们来看一下。如果你向一个通用的聊天系统,比如互联网上的一个系统,提问像“员工有停车位吗?”这样的问题,它可能会回答类似“我需要更具体的关于你的工作场所的信息”,因为它不知道你公司的停车政策。但RAG技术可以给LLM额外的信息,所以如果你问是否有停车位,它可以参考你公司特定的政策。
它是如何工作的呢?RAG有三个步骤。第一步是给出问题“员工有停车位吗?”它会先查阅可能有答案的文档集合。例如,如果你的公司有关于员工福利、休假政策、设施和薪酬流程的不同文档,那么RAG系统的第一步就是让计算机找出哪些文档与这个问题最相关。停车看起来像是关于设施的问题,关于团队工作的建筑,所以希望它会选择设施文档作为最相关的。
第二步是将检索到的文档或文本纳入更新的提示中。让我构建一个提示,如下所示。我要说“使用以下上下文回答问题”,然后我把我设施文档中关于停车政策的相关文本——所有员工可以在1楼和2楼停车等等——放入我的提示中。这是一个相当长的提示,因为它试图给LLM提供很多上下文。现在记住上周我们提到的LLM输入长度或提示长度的限制。实际上,为了避免将非常长的文档完全倒入提示中,你可能会只提取文档中与问题最相关的部分,并将其放入提示中。
然后,我们再加上原始问题,“员工有停车位吗?”这就是所谓的检索增强生成,因为我们要生成对此的回答,但我们会通过检索相关上下文或信息并用这些额外的文本增强提示来增强文本生成。
构建好这个提示后,最后一步是用这个丰富的提示提示LLM。希望LLM会给我们一个深思熟虑的答案,告诉我们在哪里可以停车。在一些应用RAG的情况下,在向用户显示的输出中,我们也会添加一个指向产生这个答案的原始来源文档的链接。在这种情况下,我们可能会链接到那个设施文档,这样用户可以回去阅读原始文档,并为自己核实答案。
RAG是一种重要的技术,它使许多LLM能够拥有超出其在公开互联网上学到的内容的上下文或信息。这里有一些基于RAG的应用示例。今天有很多公司提供让你与PDF文件聊天的软件。例如,如果你正在阅读一篇白皮书,但可能没有时间仔细阅读整篇文章,却有一个问题想根据那篇白皮书得到答案。今天有很多应用程序,如PandaChat、AskYourPDF、ChatPDF等,允许您上传您的PDF文件,然后提出问题。它们将使用RAG来为您生成答案。我发现其中一些软件包的效果更好,有些则效果较差。所以您得到的结果可能会有所不同。但肯定有很多人对构建让您与PDF文件聊天的应用程序感到兴奋和感兴趣。
还有越来越多的基于RAG的应用程序可以根据网站文章回答问题。例如,Coursera Coach做了很多事情,但其中之一就是使用RAG来回答基于Coursera网站本身内容的问题。SnapChat还有一个聊天机器人,使用Snap的文本来回答您可能对他们的产品有的不同问题。Hubspot,一家营销自动化公司,也是一个例子,它有一个聊天机器人,让您提出问题,并试图根据公司或网站本身的内容为您生成答案。因此,这些类型的聊天正在成为让用户获得他们可能对您公司产品有的问题的答案的替代方式。
RAG也正在引领新的网络搜索形式。Microsoft Bing有聊天功能。Google也有生成AI功能,可以根据您的查询生成文本,而startup.com实际上是我以前的博士生之一Richard Socher创立的,是一个以聊天界面为中心构建的网络搜索引擎。RAG如今被用于许多应用程序中,令人兴奋的是,它似乎甚至正在改变网络搜索。
总结这个视频,我想与您分享一个重要的观点,那就是将LLM视为一个推理引擎,而不是一个知识存储库。LLM可能已经阅读了互联网上的大量文本,因此很容易将它们想象为知道很多事情,它们确实知道,但它们并不知道一切。通过RAG方法,我们在提示本身提供相关上下文,并要求LLM阅读那段文本,然后处理它以得到答案。换句话说,我们不是指望它记住足够多的事实来给我们答案,而是作为一个推理引擎来处理信息,而不是信息来源。
我发现这种将LLM视为推理引擎而不是存储和检索信息的方式的思考,可以扩展我们可能头脑风暴并认为LLM能够做的应用集。诚然,LLM技术还处于早期阶段,它并不总是做得很好。但如果LLM不仅仅是一个为您存储大量信息的数据库,而且可以处理和推理信息。我认为这是一个值得思考的令人兴奋的方向,LLM可能会从这里发展到哪里。尽管我主要讨论RAG在构建软件应用程序的背景下,但如果您使用网络用户界面,这个想法也可能很有用。
有时我会将一段文本复制到LLM的在线网络UI的提示中,然后告诉它使用该上下文为我生成答案,这也可以是RAG的应用。我发现RAG对许多不同的应用程序都很有用,我希望您也会这样觉得。
参考
https://www.coursera.org/learn/generative-ai-for-everyone/lecture/qF1Az/retrieval-augmented-generation-rag
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!