大语言模型入门(四)——检索增强生成(RAG)

news/2024/12/21 20:36:27/

一、什么是检索增强生成

        检索增强生成(Retrieval-Augmented Generation,RAG)由Facebook AI Research(FAIR)团队于2020年首次提出,这是一种结合了信息检索技术与语言生成模型的人工智能技术。它通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型(LLM),以增强模型处理知识密集型任务的能力,如问答、文本摘要、内容生成等。RAG技术的优势在于它能够提供更加准确、丰富且符合用户需求的文本内容。它允许开发人员为生成模型提供最新的研究、统计数据或新闻,从而保持信息的时效性和相关性,缓解知识截止问题(模型的知识仅限于训练时的数据)和模型幻觉(模型生成不准确或虚假的信息)。

二、RAG的流程

        RAG的工作流程通常包括以下几个步骤:

        1、检索(Retrieval):根据用户的查询,从预先构建的知识库中检索出相关的信息。这些信息通常被转换成向量形式存储在数据库中,通过计算查询与数据库中向量的相似度来检索最相关的信息。

        2、增强(Augmentation):将检索到的信息与原始查询结合起来,形成增强的提示词,这个增强的提示词包含了查询的上下文信息。

        3、生成(Generation):利用增强的提示词作为输入,大语言模型生成回答或完成特定的语言任务。

三、如何应用RAG

1、Kimi等智能助手

        最直接可以体验RAG优势的就是Kimi智能助手了(也有一些其他的智能助手支持联网),它支持可调节的网络访问,你可以选择让Kimi联网或者不联网响应你的需求,只需要在对话框的左下角点击按钮即可。联网模式下,对于有的需求,Kimi会自动联网搜索并生成回复,而有的需求并不会这样,这取决于上下文以及Kimi的判断逻辑。不过,当你需要它搜索的时候,可以尝试在提示词中强制它联网搜索(虽然有时候会失败):

e125603e03324ded9b4cc7c9d9cf425b.png

2、LangChain

        LangChain 是一个开源框架,用于构建由大型语言模型(LLM)驱动的应用程序。它通过提供工具和抽象,使开发人员能够将语言模型与外部数据源连接,这相当于给LLM配备了一个小型的专属数据库,它可以随时检索数据库中的知识来回答你的问题。LangChain 的工作流程通常包括以下步骤:

  • 用户提出问题。

  • 问题被转换成向量表示,用于在向量数据库中进行相似性搜索。

  • 从向量数据库中提取相关信息块,并将其输入给语言模型

  • 语言模型生成答案或执行操作。

四、总结

        检索增强生成的概念很简单,复杂的是如何实现检索增强生成的这个流程。目前网上诸多跟LangChain类似的开源解决方案,但其中还有很多细节值得关注。例如,如何最大化压缩存储空间,如何提高检索速度,如何让大模型更好地应用检索到的知识或者信息等等,这些我们后面再逐一探究。

 


http://www.ppmy.cn/news/1537025.html

相关文章

ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

Swift 方法

Swift 方法 Swift 是一种强大的编程语言,用于开发 iOS 和 macOS 应用程序。在 Swift 中,方法是一段代码,它定义了执行特定任务的步骤。方法可以提高代码的可重用性和可维护性。本文将介绍 Swift 方法的基本概念、语法和用法。 1. 基本概念 …

智云人才推荐与管理系统

1.产品介绍 产品名称:智云人才推荐与管理系统 主要功能: 智能人才匹配引擎 功能描述:利用先进的人工智能算法,根据企业岗位需求(如技能要求、工作经验、教育背景等)自动从海量人才库中筛选并推荐最合适的…

c语言中有关指针的题型整理,以及一些详解

(1)应注意其二维数组的书写形式,以及逗号表达式的 (2)要注意数组名表示首元素地址,解引用之后表示元素,&a表示整个数组,1表示指向后面的,ptr-1又指向数组末尾&#x…

深度解析企业数据治理目标,提升核心竞争力

在当今数据驱动企业发展的时代,数据治理在企业管理当中显得尤为重要。随着企业的不断壮大和发展,数据资产也逐步快速扩张,企业的日常管理和运营也随之难度增加,如何有效管理和利用这些数据成为企业成功的关键。企业数据治理的目标…

SpringBoot与舞蹈艺术:古典舞在线交流平台开发记

第二章 相关技术介绍 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译&#xf…

巧用armbian定时任务控制开发板LED的亮灭

新买了个瑞莎 3E 开发板,号称最小SBC,到了之后简直玩开了花,各种折腾后 安装好armbian系统,各种调优。 不太满意的地方:由于板子太小的原因,导致两个USBTYPEC的接口距离很近,所以买的OTG转接口如果有点宽的话 会显得特别拥挤。 还有就是每天晚上天黑了之后,卧室…

Sping Cache 使用详解

缓存是提升应用性能的常用手段。它通过将耗时的操作结果存储起来,下次请求可以直接从缓存中获取,从而避免重复计算或查询数据库,显著减少响应时间和服务器负载。Spring 框架提供了强大的缓存抽象 Spring Cache,它简化了缓存的使用…