直达「 通往AGI之路 」飞书知识库 →
首页/问答列表/问答详情

RAG到底是什么

回答

RAG(Retrieval-Augmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。

具体来说:

  • 利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用。
  • 当需要依靠不包含在大模型训练集中的数据时,可通过 RAG 实现。其过程包括文档加载(从多种不同来源加载文档)、文本分割(把文档切分为指定大小的块)、存储(将切分好的文档块进行嵌入转换成向量形式并存储到向量数据库)、检索(通过某种检索算法找到与输入问题相似的嵌入片)。

LangChain 是一个用于构建高级语言模型应用程序的框架,它和 RAG 的关系在于:RAG 是一种结合了检索(检索外部知识库中相关信息)和生成(利用 LLM 生成文本)的技术,能够为 LLM 提供来自外部知识源的附加信息,使得 LLM 在应对下游任务时能够生成更精确和上下文相关的答案,并减少 LLM 的幻觉现象。而 LangChain 的设计主张集中在模块化组件上,为使用 LLM 提供行为抽象和实现集合,允许开发人员构造新链或实现现成的链。

内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

问:RAG 是什么?

RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。

手把手教你本地部署大模型以及搭建个人知识库

因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片

问:LangChain 和 RAG 有什么关系?

LangChain是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain的设计主张集中在模块化组件上,这些组件提供用于使用LLM的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用LLM生成文本)的技术。RAG能够为LLM提供来自外部知识源的附加信息,使得LLM在应对下游任务时能够生成更精确和上下文相关的答案,并减少LLM的幻觉现象。LangChain和RAG之间的关系可以概括为:

其他人在问
如何对rag进行评估
对 RAG 进行评估可以从以下几个方面入手: 1. 使用 RAG 三角形的评估方法: 在 LangChain 中创建 RAG 对象,使用 RAGPromptTemplate 作为提示模板,指定检索系统和知识库的参数。 在 TruLens 中创建 TruChain 对象,包装 RAG 对象,指定反馈函数和应用 ID。反馈函数可使用 TruLens 提供的 f_context_relevance、f_groundness、f_answer_relevance,也可自定义。 使用 with 语句运行 RAG 对象,记录反馈数据,包括输入问题、得到的回答以及检索出的文档。 查看和分析反馈数据,根据 RAG 三角形的评估指标评价 RAG 的表现。 2. 建立评估框架将检索性能与整个 LLM 应用程序隔离开来,从以下角度评估: 模型角度(generation): 回答真实性:模型结果的真实性高低(减少模型幻觉)。 回答相关度:结果和问题的相关程度,避免南辕北辙。 检索角度(retrieval): 召回率(recall):相关信息在返回的检索内容中的包含程度,越全越好。 准确率(precision):返回的检索内容中有用信息的占比,越多越好。 3. 考虑以下评估方法和指标: 生成质量评估:常用自动评估指标(如 BLEU、ROUGE 等)、人工评估和事实验证,衡量生成文本的流畅性、准确性和相关性。 检索效果评估:包括检索的准确性、召回率和效率,其好坏直接影响生成文本的质量。 用户满意度评估:通过用户调查、用户反馈和用户交互数据了解用户对 RAG 系统的满意度和体验。 多模态评估:对于生成多模态内容的 RAG 系统,评估不同模态之间的一致性和相关性,可通过多模态评估指标实现。 实时性评估:对于需要实时更新的 RAG 任务,考虑信息更新的及时性和效率。 基准测试集:使用基准测试集进行实验和比较不同的 RAG 系统,涵盖多样化的任务和查询,以适应不同的应用场景。 评估方法和指标的选择取决于具体的任务和应用场景,综合使用多种评估方法可更全面地了解 RAG 系统的性能和效果,评估结果能指导系统的改进和优化,满足用户需求。此外,RAGAS 是一个用于 RAG 评估的知名开源库,可参考使用: 。需要注意的是,RAG 适合打造专才,不适合打造通才,且存在一定局限性,如在提供通用领域知识方面表现不佳,可能影响模型的风格或结构输出、增加 token 消耗等,部分问题需使用微调技术解决。
2024-11-13
RAG加速有什么好办法吗
以下是一些加速 RAG 的好办法: 1. 确保 LLM 以正确的格式回应:函数调用已成为确保 LLM 严格输出特定格式的相对靠谱的新方法,推荐使用此方法提升性能。可参考结构化输出文档,其中高层次的 LangChain API 展示了不同 LLM 如何调用工具和函数。 2. 使用参考样例:在实际操作中,将输入和对应输出的样例纳入其中通常大有裨益,这些样例有时比指示本身更能有效指导 LLM 处理特定情况。在提取用例文档中可找到更多细节,助您从 LLMs 中提取更好的性能。 此外,LangChain 携手 NVIDIA 为 RAG 加速带来了新的篇章: 1. 将 NVIDIA NIM 与 LangChain 结合使用:新增了支持 NIM 的集成包,安装专门的集成包后可导入所需模型,并通过示例展示如何构建应用程序,包括安装额外的包、加载数据源、初始化嵌入模型等一系列操作。 2. NVIDIA NIM 介绍:NVIDIA NIM 是一系列用户友好的微服务,旨在加速企业内部生成式 AI 的部署进程,支持广泛的 AI 模型,基于强大的推理引擎和技术构建,提供无缝的 AI 推理体验,是实现大规模、高性能生成式 AI 推理的最佳选择。其具有自托管特性,能保证数据安全;提供预构建的容器,方便选择和使用最新模型;具有可扩展性。开始使用 NIM 非常简单,在 NVIDIA API 目录中可轻松访问多种 AI 模型,NIM 是 NVIDIA AI Enterprise 的一部分,可通过相关博客获取详细指南。
2024-11-12
搜索DragGAN
DragGAN 于 2023 年 6 月 25 日开源。喜欢 AI 绘画的对它应该不陌生,期待它带来更大的惊艳。此外,相关论文中增加了微软研究院新发布的多模态 AI 助手;学习路径中增加了适合初学者的深度学习课程 fast.ai ;AI 名词增加到 80 多个,补充了很多技术名词。您可以通过以下链接获取更多详细信息:
2024-11-11
AI相关常见缩写及对应含义,包含例如prompt,rag
以下是一些 AI 相关的常见缩写及对应含义: LLM:Large language model 的缩写,即大语言模型。 Prompt:中文译作提示词,是输入给大模型的文本内容,可理解为与大模型说的话或下达的指令,其质量会显著影响大模型回答的质量。 Token:大模型语言体系中的最小单元。不同厂商的大模型对中文的文本切分方法不同,通常 1Token≈12 个汉字。大模型的收费计算及输入输出长度限制常以 token 为单位计量。 上下文(context):指对话聊天内容前、后的内容信息,其长度和窗口会影响大模型回答的质量。 在 AI 绘画中,常见的画面构图提示词有: 视图相关:Bottom view(底视图)、front,side,rear view(前视图、侧视图、后视图)、product view(产品视图)、extreme closeup view(极端特写视图)、look up(仰视)、firstperson view(第一人称视角)、isometric view(等距视图)、closeup view(特写视图)、high angle view(高角度视图)、microscopic view(微观)、super side angle(超博角)、thirdperson perspective(第三人称视角)、Aerial view(鸟瞰图)、twopoint perspective(两点透视)、Threepoint perspective(三点透视)、portrait(肖像)、Elevation perspective(立面透视)、ultra wide shot(超广角镜头)、headshot(爆头)、a crosssection view of)
2024-11-08
如何提高RAG应用中的准确率
以下是一些提高 RAG 应用准确率的方法: 1. 基于结构化数据来 RAG: 避免数据向量化和语义搜索的问题,直接利用原始数据和 LLM 的交互,提高准确率。因为结构化数据的特征和属性明确,能用有限标签集描述,可用标准查询语言检索,不会出现信息损失或语义不匹配的情况。 减少 LLM 的幻觉可能性,LLM 只需根据用户问题提取核心信息和条件,并形成标准查询语句,无需理解整个文档语义。 提高效率,省去数据向量化和语义搜索过程,直接使用标准查询和原始数据进行回复,且结构化数据的存储和更新更易更省空间。 增加灵活性,适应不同数据源和查询需求,只要数据是结构化的,就可用此方法进行 RAG。 2. 参考行业最佳实践,如 OpenAI 的案例: 从较低的准确率开始,尝试多种方法,标记哪些被采用到生产中。 通过尝试不同大小块的信息和嵌入不同内容部分,提升准确率。 采用 Reranking 和对不同类别问题特别处理的方法进一步提升。 结合提示工程、查询扩展等方法,最终达到较高的准确率,同时强调模型精调和 RAG 结合使用的潜力。 3. 深入了解 RAG 的基础概念: RAG 由检索器和生成器组成,检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息制作精确连贯的答案,适合处理需要广泛知识的任务,如问答系统,能提供详细准确的回答。
2024-11-08
什么是RAG的分词?
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。通过检索的模式为大语言模型的生成提供帮助,使大模型生成的答案更符合要求。 LLM 需要 RAG 进行检索优化的原因在于 LLM 存在一些缺点: 1. 无法记住所有知识,尤其是长尾的,受限于训练数据和现有的学习方式,对长尾知识的接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在内容黑盒、不可控以及受幻觉干扰等问题。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 在 PDF 结构识别方面,基于规则的方法 PyPDF 存在一些问题: 1. 不擅于检测段落的边界,没有解析段落的边界,使用特殊分隔符“.\n”的启发式方法在很多情况下不成立。 2. 无法识别表格内的结构,表格的结构会被完全破坏,大语言模型无法从中辨别有意义的信息。 3. 无法识别内容的阅读顺序,按照字符存储顺序解析文档,面对复杂布局时可能导致解析结果混乱。 4. 无法识别段落和表格的边界,会错误地分割表格,并将部分与后续段落合并。 PyPDF 的解析和分块工作流程是:先将 PDF 文档中的字符序列化为没有文档结构信息的长序列,然后使用分割规则如换行符“\n”进行分割,仅当组合块的长度不超过预定限制 N 个字符时,才会合并相邻块。
2024-11-05
你觉得人工智能带给人类的到底是提升还是毁灭呢?
人工智能带给人类的影响既有提升也有潜在的挑战,但并非必然导致毁灭。 从提升的方面来看: 技术上可以解决类似于社会歧视等问题,如通过 RLHF 等方法。 优化工作效率,虽然可能导致某些岗位的调整,但实际每个工作的组成部分不是单一的,人可以和人工智能更好地协同。例如放射科医生的案例,解读 X 光照片只是其工作的一部分,实际并未失业。 可以成为解决气候变化和大流行病等问题的关键。 作为自主的个人助理,代表人们执行特定任务,如协调医疗护理。帮助构建更好的下一代系统,并在各个领域推动科学进展。 潜在的挑战和担忧包括: 可能放大人类的负面影响,需要在技术层级加以解决。 导致失业,但能掌握人工智能的人会取代不会的人。 存在人类毁灭的担忧,不过目前此类观点缺乏具体的说明和论证。 对于强人工智能,目前 ChatGPT 的崛起引发了相关讨论,但通用技术并非等同于强人工智能。对于复杂的神经网络和黑箱模型的研究仍在进行,如何使用和控制这些模型是业界和社会争论的热点。科技公司倾向于训练辅助人类的超级智能助手,而非自我改进升级的超级智能体,以推动新一轮的工业革命和经济增长。 总之,人工智能的发展带来了巨大的机遇和挑战,需要我们聪明而坚定地采取行动,以实现其正面影响并应对潜在风险。
2024-11-16
ai到底有何用
AI 具有广泛的用途,以下为您详细介绍: 在新工业革命中,特别是生物科技领域,AI 有助于将过去昂贵、人力密集、效率较低且难以获得的事物转变为更低成本、更高效、甚至更有效的“计算”。 医疗保健方面: 医学影像分析,辅助诊断疾病。 加速药物研发,识别潜在药物候选物和设计新治疗方法。 提供个性化医疗,分析患者数据制定个性化治疗方案。 控制手术机器人,提高手术精度和安全性。 金融服务领域: 风控和反欺诈,降低金融机构风险。 评估借款人信用风险,辅助贷款决策。 分析市场数据,助力投资决策。 提供 24/7 客户服务,回答常见问题。 零售和电子商务行业: 分析客户数据进行产品推荐。 改善搜索结果和提供个性化购物体验。 实现动态定价。 汽车行业: 自动驾驶技术,进行图像识别、传感器数据分析和决策制定。 增强车辆安全性能,如自动紧急制动、车道保持辅助和盲点检测。 提供个性化用户体验,根据驾驶员偏好和习惯调整车辆设置。 进行预测性维护,减少停机时间和维修成本。 实现生产自动化,提高生产效率和质量控制。 辅助销售和市场分析。
2024-09-11
大模型到底是什么
大模型是指输入大量语料,从而让计算机获得类似人类“思考”能力,能够进行文本生成、推理问答、对话、文档摘要等工作的模型。 大模型之所以被称为“大”,主要体现在以下几个方面: 1. 拥有庞大的参数数量,通常包含从数十亿到数千亿的参数,这些参数包括权重和偏置,例如 GPT3 拥有 1750 亿参数。 2. 需要大量的数据进行训练,无论是文本、图像还是音频数据,都是其学习的基础。通过对海量数据的学习,模型能够掌握丰富的知识和技能。 可以用“上学参加工作”这件事来类比大模型的训练和使用过程: 1. 找学校:训练大模型需要大量的计算,因此 GPU 更合适,只有购买得起大量 GPU 的才有资本训练自己的大模型。 2. 确定教材:大模型需要的数据量特别多,几千亿序列(Token)的输入基本是标配。 3. 找老师:即用合适的算法讲述“书本”中的内容,让大模型能够更好理解 Token 之间的关系。 4. 就业指导:为了让大模型能够更好胜任某一行业,需要进行微调(fine tuning)指导。 5. 搬砖:就业指导完成后,正式干活,比如进行一次翻译、问答等,在大模型里称之为推导(infer)。
2024-08-28