知识库中有搭建在线 RAG 知识库的相关内容。
RAG(Retrieval-Augmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型提供额外的、来自外部知识源的信息。
自顶向下,RAG 的流程分为离线数据处理和在线检索两个过程。离线数据处理的目的是构建知识库,知识按某种格式及排列方式存储在其中等待使用。在线检索是利用知识库和大模型进行查询的过程。
对于 RAG 来讲,检索的质量直接影响生成的结果,常见的检索方法有关键词检索和语义检索。关键词检索是最传统和基础的方法,基于查询词与文档中词语的精确或近似匹配,实现简单但难以处理同义词和上下文语义。语义检索将查询和文档映射到同一语义空间,通过计算向量相似度判断相关性,能捕捉深层语义但计算成本较高。
在构建知识库的流程中,在线检索各个流程的“是什么”与“为什么”同等重要。例如在检索环节,选择合适的检索方法或组合对系统性能至关重要。
大模型存在无法记住所有知识尤其是长尾知识、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高等缺点,而 RAG 具有数据库存储和更新稳定、数据更新敏捷且可解释、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本等优点。
旁白:一路千辛万苦,终于要真正了解RAG的全貌了,好激动前面的开胃菜已经完毕,这里我们进入正餐,先上一张图注:这张图引用自:https://mp.weixin.qq.com/s/37tKVQbxenVVBAeMZ334aQ公众号:AI花果山一位RAG大佬,正在编写一系列教程《RAG高效应用指南》这张图将会是我们本章的知识地图,看到这么多的概念,不要慌,我们先整体理解下RAG。自顶向下,RAG的流程分为离线数据处理和在线检索两个过程。我们前面讲到,知识库是RAG的“活字典”,可以让AI随时进行查阅。而离线数据处理的目的就是为了构建出这本“活字典”。经过离线数据后,知识则会按照某种格式以及排列方式存储在知识库中,等待被使用。而在线检索则是我们使用利用知识库+大模型进行查询的过程。在学习一门新知识的时候,是什么与为什么同等重要是什么让你知其然为什么让你知其所以然接下来我们就以RAG最经典的应用场景《构建智能问答客服》来了解RAG所有流程中的What与Why
对于RAG来讲,检索的质量直接会影响生成的结果,因此选择合适的检索方法或组合对系统性能至关重要。在检索这块有很多的检索方法,对于非专业人员来讲,我们不需要了解那么多。最常见的两种检索方法分别是——关键词检索:这是最传统和基础的检索方法。原理:基于查询词与文档中词语的精确或近似匹配。优点:实现简单,计算效率高。缺点:难以处理同义词、多义词,无法理解上下文语义语义检索:这是近年来随着深度学习发展而兴起的方法。原理:将查询和文档映射到同一语义空间,通过计算向量相似度来判断相关性。优点:能够捕捉深层语义,处理同义词和上下文。缺点:计算成本较高,需要大量训练数据接下来我通过一个例子来说明关键词检索和语义检索的不同:用户的查询场景:“电脑运行缓慢如何解决?”假设我们知识库的文档集如下:1."如何提升电脑运行速度:10个实用技巧"2."常见电脑问题及解决方案大全"3."电脑硬件升级指南:从内存到SSD"4."软件优化:让你的电脑运行更快"5."病毒和恶意软件如何影响电脑性能"基于关键词检索的结果:我们这里运用的是TF-IDF的算法,感兴趣请阅读附录TF-IDF不了解TF-IDF算法并不会影响你理解这块
RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。[heading2]为什么LLM需要RAG?[content]众所周知,大模型已经在很多领域和问题下都取得了很好的效果,那为什么还需要RAG进行检索优化呢?[heading3]LLM的缺点[content]1.LLM无法记住所有知识,尤其是长尾的。受限于训练数据、现有的学习方式,对长尾知识的接受能力并不是很高;长尾数据是指数据集中某些类别数量较少,而其他类别样本数较多的不平衡“长尾”状态。例如在自然语言处理中,一些少见的词汇出现频率很低,而常见的词汇出现频率很高。2.LLM的知识容易过时,而且不好更新。只是通过微调,模型的接受能力其实并不高而且很慢,甚至有丢失原有知识的风险;3.LLM的输出难以解释和验证。一方面最终的输出的内容黑盒且不可控,另一方面最终的结果输出可能会受到幻觉之类的问题的干扰;4.LLM容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私;5.LLM的规模大,训练和运行的成本都很大。[heading3]RAG的优点[content]1.数据库对数据的存储和更新是稳定的,不像模型会存在学不会的风险。2.数据库的数据更新可以做得很敏捷,增删改查可解释,而且对原有的知识不会有影响。3.数据库的内容是明确、结构化的,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。4.知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。5.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。