RAG

Kopei article

什么是检索增强生成RAG?

本文将为您简要介绍RAG(Retrieval-Augmented Generation)的发展历程。通过仔细阅读以下内容,您将初步了解RAG,并通过实际应用案例找到适合您的应用场景。

定义与用处

检索增强生成(RAG)是一种人工智能框架,通过基于外部知识源对模型进行信息补充,以增强大型语言模型内部对信息的表示,从而提高模型生成的响应质量。

RAG是用于从外部知识库中检索事实,在大型语言模型(LLMs)上建立基础的人工智能框架,旨在提供最准确、最新的信息,并使用户深入了解LLMs的生成过程。大型语言模型可能存在不一致性,有时它们能够准确回答问题,而其他时候则可能随机地重复训练数据中的事实。如果它们偶尔听起来好像不知道自己在说什么,那是因为它们确实不知道。大型语言模型知道词语在统计上的关联,但不知道它们的含义。

好处

在基于大型语言模型的问答系统中实施RAG有两个主要好处:它确保模型能够访问最新、可靠的事实,用户可以访问模型的信息源,以确保其响应可以进行准确性检查,最终保证可信度。

RAG还具有额外的好处,那就是敏感信息不用计入预训练。通过基于一组外部可验证的事实来基础LLM,模型减少了将信息嵌入其参数的机会。这降低了LLM泄漏敏感数据或产生不正确或误导性信息的可能性。

RAG还减少了用户不断对模型进行新数据训练和参数更新的需求。通过这种方式,RAG可以降低在企业环境中运行以LLM为动力的聊天机器人的计算和财务成本。

大模型微调的一种方式

支撑所有基础大模型的底层架构是一种被称为transformer的人工智能架构。它将大量原始数据转化为其基本结构的压缩表示。从这个基础架构表示开始,基础模型可以通过对标记的领域特定知识进行一些额外的微调来适应各种任务。

但仅仅通过微调很少能够使模型获得在不断变化的背景下回答高度特定问题所需的全部知识广度。在一篇2020年的论文中,Meta(当时称为Facebook)提出了一个名为检索增强生成的框架,以使LLMs能够访问其训练数据之外的信息。RAG允许LLMs基于专业知识体系以更准确的方式回答问题。

正如其名所示,RAG有两个阶段:检索和内容生成。在检索阶段,算法搜索并检索与用户提示或问题相关的信息片段。在开放领域的消费者设置中,这些事实可以来自互联网上索引的文档;在封闭领域的企业设置中,通常使用更窄范围的来源以增加安全性和可靠性。

这些外部知识的集合被追加到用户的提示中,并传递给语言模型。在生成阶段,LLM从增强提示和其对训练数据的内部表示中获取信息,以合成一个针对用户的引人入胜的答案。然后,可以将答案传递给带有其来源链接的聊天机器人。

RAG应用场景

个性化和可验证的响应。
如今,由LLM驱动的聊天机器人可以在无需人类编写新脚本的情况下为客户提供更个性化的答案。而RAG允许LLMs更进一步,极大地减少了对模型进行新样本喂养和重新训练的需求。只需上传最新的文档或数据,模型就以开卷考试的方式检索信息以回答问题。并且回答的问题将附带了其信息来源的链接以确认信息的正确性。

教导模型识别自己不知道的情况。
人类的查询并非总是如此直截了当。它们可能措辞模糊、复杂,或需要模型没有或不能轻松解析的知识。在这些条件下,LLMs容易编造事实。通过足够的微调,LLM可以被训练停下来并表示自己不知道如何解答而不是随意回答。但训练它可能需要看到数千个可以回答和无法回答的问题的示例。只有在那之后,模型才能学会识别无法回答的问题,并探索更多细节,直到找到它具备回答的信息的问题。

小结

RAG目前是将LLMs基础在最新的、可验证的信息上的最为知名的工具,同时降低了不断重新训练和更新它们的成本。RAG依赖于丰富提示信息的能力,其中包含在向量中的相关信息,而这些向量是数据的数学表示。向量数据库可以高效地索引、存储和检索诸如推荐引擎和聊天机器人等信息。但RAG并不完美,让RAG正确完成仍然存在许多有趣的挑战。

Azure RAG演示

推荐阅读

  • Post title:RAG
  • Post author:Kopei
  • Create time:2023-11-25 20:46:55
  • Post link:https://kopei.github.io/2023/11/25/RAG/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments