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

RAG什么意思

回答

RAG 是检索增强生成(Retrieval-Augmented Generation)的缩写,是一种结合了检索模型和生成模型的技术。其核心目的是通过某种途径把知识告诉给 AI 大模型,让大模型“知道”我们的私有知识,变得越来越“懂”我们。

RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。

RAG 的最常见应用场景包括知识问答系统,用户提出问题,RAG 模型从大规模的文档集合中检索相关的文档,然后生成回答。

大模型存在一些缺点,如无法记住所有知识尤其是长尾知识、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高,而 RAG 具有一些优点,如数据库对数据的存储和更新稳定、数据更新敏捷且可解释、能降低大模型输出出错的可能、便于管控用户隐私数据、可降低大模型的训练成本。

一个 RAG 的应用可以抽象为 5 个过程:文档加载(从多种不同来源加载文档)、文本分割(把文档切分为指定大小的块)、存储(将切分好的文档块进行嵌入转换成向量形式并存储到向量数据库)、检索(通过检索算法找到与输入问题相似的嵌入片)、输出(把问题以及检索出来的嵌入片一起提交给 LLM 生成答案)。

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

参考资料

RAG性能提升策略和评估方法(产品视角)

相信经过一年的知识沉淀,RAG是什么大家都不陌生了。RAG是检索增强生成(Retrieval-Augmented Generation)的缩写,它是一种结合了检索模型和生成模型的技术。其核心目的是通过某种途径把知识告诉给AI大模型,让大模型“知道”我们的私有知识,变得越来越“懂”我们。RAG的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。RAG的最常见应用场景知识问答系统:RAG可以用于构建问答系统,用户提出问题,RAG模型从大规模的文档集合中检索相关的文档,然后生成回答。

问:RAG 是什么?

众所周知,大模型已经在很多领域和问题下都取得了很好的效果,那为什么还需要RAG进行检索优化呢?[heading3]LLM的缺点[content]1.LLM无法记住所有知识,尤其是长尾的。受限于训练数据、现有的学习方式,对长尾知识的接受能力并不是很高;长尾数据是指数据集中某些类别数量较少,而其他类别样本数较多的不平衡“长尾”状态。例如在自然语言处理中,一些少见的词汇出现频率很低,而常见的词汇出现频率很高。2.LLM的知识容易过时,而且不好更新。只是通过微调,模型的接受能力其实并不高而且很慢,甚至有丢失原有知识的风险;3.LLM的输出难以解释和验证。一方面最终的输出的内容黑盒且不可控,另一方面最终的结果输出可能会受到幻觉之类的问题的干扰;4.LLM容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私;5.LLM的规模大,训练和运行的成本都很大。[heading3]RAG的优点[content]1.数据库对数据的存储和更新是稳定的,不像模型会存在学不会的风险。2.数据库的数据更新可以做得很敏捷,增删改查可解释,而且对原有的知识不会有影响。3.数据库的内容是明确、结构化的,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。4.知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。5.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

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

文本加载器就是将用户提供的文本加载到内存中,便于进行后续的处理

其他人在问
有没有RAG 基本架构的中文图示
以下是关于 RAG 基本架构的介绍: RAG 是当今大多数现代人工智能应用程序的标准架构。以 Sana 的企业搜索用例为例,其工作原理如下: 1. 应用程序加载和转换无结构文件(如 PDF、幻灯片、文本文件),跨越企业数据孤岛(如 Google Drive 和 Notion),通过数据预处理引擎(如 Unstructured)转换为 LLM 可查询格式。 2. 这些文件被“分块”成更小的文本块,作为向量嵌入并存储在数据库(如 Pinecone)中,以实现更精确的检索。 3. 当用户提出问题时,系统检索语义上最相关的上下文块,并将其折叠到“元提示”中,与检索到的信息一起馈送给 LLM。 4. LLM 从检索到的上下文中合成答复返回给用户。 RAG 的基本概念: RAG 是一种结合了检索和生成的技术,能让大模型在生成文本时利用额外的数据源,提高生成的质量和准确性。其基本流程为: 首先,给定用户输入(如问题或话题),RAG 从数据源中检索出相关文本片段(称为上下文)。 然后,将用户输入和检索到的上下文拼接成完整输入传递给大模型(如 GPT),输入通常包含提示,指导模型生成期望输出(如答案或摘要)。 最后,从大模型的输出中提取或格式化所需信息返回给用户。
2024-10-17
基于飞书的知识库RAG的搭建,需要什么接口进行全文搜索
基于飞书的知识库 RAG 搭建,可用于全文搜索的接口方式主要有以下几种: 1. 语义检索:语义匹配关注查询和文档内容的意义,而非仅仅表面的词汇匹配。通过向量的相似性来判断语义的相似性。 2. 全文检索:这是基于关键词的检索方式。例如,对于句子“猫的饮食习惯包括吃鱼和鸡肉”,输入“猫”“饮食”“猫的饮食习惯”“吃鱼”等关键词可搜索到该句子,但输入“猫喜欢吃什么呀”则无法搜索到。 3. 混合检索:结合了语义匹配和全文检索的优点,通常系统先进行全文检索获取初步结果,然后再对这些结果进行语义匹配和排序。 此外,在本地部署资讯问答机器人实现 RAG 时,会涉及加载所需的库和模块,如 feedparse 用于解析 RSS 订阅源,ollama 用于在 python 程序中跑大模型。还会为文档内容生成向量,如使用文本向量模型 bgem3 等。 在开发 LangChain 应用开发指南中,实现 LangChain 和 RAG 的结合时,需要加载数据、分割文档、转换嵌入并存储到向量存储器、创建检索器以及聊天模型等步骤。
2024-10-17
如何在个人电脑中部署本地RAG
在个人电脑中部署本地 RAG 可以按照以下步骤进行: 1. 加载所需的库和模块: 确保 ollama 服务已开启并下载好模型,ollama 用于在 python 程序中跑大模型。 feedparse 用于解析 RSS 订阅源。 2. 从订阅源获取内容: 函数用于从指定的 RSS 订阅 url 提取内容,如需接收多个 url 可稍作改动。 通过专门的文本拆分器将长文本拆分成较小的块,并附带相关元数据,如标题、发布日期和链接。最终,这些文档被合并成一个列表并返回,用于进一步的数据处理或信息提取任务。 3. 为文档内容生成向量: 使用文本向量模型 bgem3,从 hf 下载好模型后放置在指定路径,如 /path/to/bgem3,通过函数利用 FAISS 创建一个高效的向量存储。 4. 创建 Python 虚拟环境: 创建 python 虚拟环境,并安装相关库,版本如下: ollama:0.1.8 langchain:0.1.14 faisscpu:1.8.0(有 gpu 则安装 gpu 版本) gradio:4.25.0 feedparser:6.0.11 sentencetransformers:2.6.1 lxml:5.2.1 5. 导入依赖库。 6. 基于用户的问题,从向量数据库中检索相关段落,并根据设定的阈值进行过滤,最后让模型参考上下文信息回答用户的问题,从而实现 RAG。 7. 创建网页 UI:通过 gradio 创建网页 UI,并进行评测。 8. 问答测试:对于同样的问题和上下文,基于 Qwen7b、Gemma、Mistral、Mixtral 和 GPT4 分别进行多次测试。 总结: 1. 本文展示了如何使用 Langchain 和 Ollama 技术栈在本地部署一个资讯问答机器人,同时结合 RSSHub 来处理和提供资讯。 2. 上下文数据质量和大模型的性能决定了 RAG 系统性能的上限。 3. RAG 通过结合检索技术和生成模型来提升答案的质量和相关性,可以缓解大模型幻觉、信息滞后的问题,但并不意味着可以消除。
2024-10-13
知识图片与RAG
RAG 分为离线数据处理和在线检索两个过程。离线数据处理旨在构建知识库,就像准备一本“活字典”,知识会按特定格式和排列方式存储在其中以待使用。在线检索则是利用知识库和大模型进行查询的过程。 LangChain 是专注于大模型应用开发的平台,提供一系列组件和工具帮助构建 RAG 应用,包括: 1. 数据加载器(DocumentLoader):能从数据源加载数据并转换为包含 page_content(文本内容)和 metadata(元数据)的文档对象。 2. 文本分割器(DocumentSplitter):将文档对象分割成多个小文档对象,方便后续检索和生成,因大模型输入窗口有限,短文本更易找相关信息。 3. 文本嵌入器(Embeddings):将文本转换为高维向量的嵌入,用于衡量文本相似度以实现检索。 4. 向量存储器(VectorStore):存储和查询嵌入,通常使用 Faiss 或 Annoy 等索引技术加速检索。 5. 检索器(Retriever):根据文本查询返回相关文档对象,常见实现是向量存储器检索器,利用向量存储器的相似度搜索功能检索。 6. 聊天模型(ChatModel):基于大模型如 GPT3,根据输入序列生成输出消息。 使用 LangChain 构建 RAG 应用的一般流程如下:(具体流程未给出)
2024-10-11
什么是RAG技术
RAG 是检索增强生成(RetrievalAugmented Generation)的缩写,是一种结合了检索模型和生成模型的技术。其核心目的是通过某种途径把知识告诉给 AI 大模型,让大模型“知道”我们的私有知识,变得越来越“懂”我们。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。 RAG 由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得 RAG 非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。 一个 RAG 的应用可以抽象为 5 个过程: 1. 文档加载(Document Loading):从多种不同来源加载文档。 2. 文本分割(Splitting):把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储(Storage):包括将切分好的文档块进行嵌入(Embedding)转换成向量的形式,以及将 Embedding 后的向量数据存储到向量数据库。 4. 检索(Retrieval):通过某种检索算法找到与输入问题相似的嵌入片。 5. Output(输出):把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2024-10-06
RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 大语言模型(LLM)需要 RAG 进行检索优化的原因在于 LLM 存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳,还存在丢失原有知识的风险。 3. 输出难以解释和验证,结果可能受幻觉等问题干扰,且内容黑盒不可控。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本。 RAG 在 Natural Questions、WebQuestions 和 CuratedTrec 等基准测试中表现出色,在使用 MSMARCO 和 Jeopardy 问题进行测试时,生成的答案更符合事实、具体且多样,FEVER 事实验证使用 RAG 后也有更好结果。基于检索器的方法越来越流行,常与 ChatGPT 等流行 LLM 结合使用以提高能力和事实一致性。 在商业化问答场景中,优化 AI 更准确回答问题的过程中,RAG 是一个专业术语。RAG 由检索器和生成器组成,检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息制作精确连贯的答案,适合处理需要广泛知识的任务,能提供详细准确的回答。
2024-10-01
国内有适合做新媒体平台创意思路的ai软件,例如抖音、小红书等,
目前对于适合国内新媒体平台(如抖音、小红书等)创意思路的 AI 软件,还没有明确的定论。但我们可以先从内容创作的角度来思考。之前汉青老师分享时提到,生成式 AI 的内容与传统社交媒体内容共存,如小红书、抖音、微信等。短期内,大家可能因新鲜感获得流量红利,但最终人们在意的仍是高质量的内容。 我们虽掌握了各种先进工具,如在 MJ 里用关键词出图、用 SD 做复杂工作流、制作炫酷宣传片等,但在此我们先不讨论工具,而是专注于内容。让节奏慢下来,认真感受真实世界,关注身边通常被一扫而过的普通人。 比如偶然在朋友朋友圈刷到的题材:“这两张照片其实是在同一条街道上拍下的,只不过年轻的女孩在街上,孤独的老人在围墙里。”“这张照片传递两种关系、一种爱意,年轻人手牵着怀孕的爱人,老母亲扶着女儿坐上电动车,这应该是这个世界最稳固的两种关系,而现在他们相遇在一张照片当中。”“很多人把生活当中的便利,比如电商快递外卖速度快便宜看着是我们的移动互联网优势,其实唯一的优势是我们的劳动力,无数个在深夜独自啃着馒头的年轻人支撑着美团阿里的市值...放大镜头看你会发现这其实是一个非常年轻的女孩子,她瘦小,即使戴了头盔也比后面的箱子高不了多少,她进食的时候甚至都没玩手机——我骑车路上看到过很多快递小哥都是边骑车边刷短视频,这至少说明他们对生活中的乐子还充满期待,而图中的女孩看着让人垂头丧气,不仅是她,也包括我。” 关于如何与 AI 结合来为新媒体平台创作优质内容,目前还没想好,也没完全想明白,需要慢慢思考和探索。
2024-10-18
API是什么意思
API 就像是一个信差,它接受一端的请求,告诉那边的系统您想要做的事情,然后把返回的信息发回给您。 以搜索“奥本海默”为例,在网址 https://www.themoviedb.org/search?query=奥本海默 中,域名 www.themoviedb.org 用于定位网站,路径 /search 表示搜索页面,query 是查询参数,其值为“奥本海默”。 对于获取数据的操作,如在 TMDb 中,有些数据虽然不展现,但为了支持筛选会保留。像“backdrop_path”是不完整的图片地址,TMDb 的官方 API 文档里有如何构造完整图片 URL 的说明。对于一些不熟悉的 API,需要在 Prompt 里告知如何使用。 Action 的工作流大致为:先思考要做什么样的 GPT 以及是否需要外部数据;然后寻找所需外部数据的 API 文档,或自己开发 API,寻找可用的 Action;最后基于 API 文档编写 Action 里的 Schema 和 Prompt 来处理取回的信息。 如果对 Action 感兴趣,可以系统学习 API 相关知识、寻找可用的 API 练习、发掘 GPT Action 更多潜力。
2024-10-11
agent什么意思
“智能体”(Agent)在人工智能和计算机科学领域是一个重要概念,指能够感知环境并采取行动以实现特定目标的实体,可以是软件程序或硬件设备。 从以下几个方面详细介绍: 1. 定义:智能体是一种自主系统,通过感知环境(通常通过传感器)并采取行动(通常通过执行器)来达到某种目标。 2. 在 LLM 支持的自主 Agent 系统中,LLM 充当 Agents 的大脑,并辅以几个关键组成部分: 规划:将大型任务分解为更小、可管理的子目标,有效处理复杂任务。 反思和完善:对过去的行为进行自我批评和反思,从错误中吸取教训,完善未来步骤,提高最终结果质量。 记忆:包括短期记忆(所有的上下文学习利用模型的短期记忆来学习)和长期记忆(为 Agents 提供长时间保留和回忆无限信息的能力,通常通过利用外部向量存储和快速检索实现)。 工具使用:学习调用外部 API 来获取模型权重中缺失的额外信息,包括当前信息、代码执行能力、对专有信息源的访问等。 从产品角度思考 Agent 设计: Who:Agent 可以是一个历史新闻探索向导,具有知识渊博、温暖亲切、富有同情心的性格,主导新闻解析和历史背景分析。为使角色生动,可为其设计背景故事,明确起源、经历和动机,定义性格特点、说话方式和风格,设计对话风格,明确核心功能及附加功能。 在 AI 大模型中,agent 是比较火的概念,被认为是大模型未来的主要发展方向。中间的“智能体”其实就是 LLM 或大模型,四个箭头分别是为 LLM 增加的工具、记忆、行动、规划四个能力。目前行业里主要用到的是一个叫 langchain 的框架,它把 LLM 和 LLM 之间以及 LLM 和工具之间通过代码或 prompt 的形式进行串接,在 prompt 层和工具层完成主要的设计逻辑。
2024-10-08
open ai 与 GPT 与 chat GPT 的关系,分别什么意思
OpenAI 是致力于推动人工智能发展的研究公司。 ChatGPT 是由 OpenAI 研发的一款 AI 技术驱动的自然语言处理(NLP)聊天工具,于 2022 年 11 月 30 日发布。从 OpenAI 的官网信息来看,ChatGPT 最初被称为一种模型,目前逐渐演变成一种可以兼容多种 GPT 模型的聊天应用(服务)。目前 ChatGPT 依赖 GPT 系列模型来运转,使用的是 GPT4 的大型语言模型(LLM)。 GPT 是生成式预训练变换器,ChatGPT 是基于 GPT 架构的人工智能模型。目前 ChatGPT 官网有 GPT3.5 和 GPT4 两个版本,GPT3.5 是免费版本,GPT4 则需要升级到 PLUS 套餐(20 美金一个月)才能使用更多功能,还有团队版和企业版,功能更多但费用更贵。
2024-09-26
agent是什么意思
“Agent”(智能体)在人工智能和计算机科学领域是一个重要概念,指能够感知环境并采取行动以实现特定目标的实体,可以是软件程序或硬件设备。 智能体的类型包括: 1. 简单反应型智能体(Reactive Agents):根据当前感知输入直接采取行动,不维护内部状态,不考虑历史信息。例如温控器,根据温度传感器输入直接打开或关闭加热器。 2. 基于模型的智能体(Modelbased Agents):维护内部状态,对当前和历史感知输入建模,能推理未来状态变化并据此采取行动。比如自动驾驶汽车,不仅感知当前环境,还维护和更新周围环境模型。 3. 目标导向型智能体(Goalbased Agents):除感知和行动外,具有明确目标,能根据目标评估不同行动方案并选择最优行动。像机器人导航系统,有明确目的地并计划路线以避开障碍。 4. 效用型智能体(Utilitybased Agents):不仅有目标,还能量化不同状态的效用值,选择效用最大化的行动,评估行动优劣并权衡利弊。例如金融交易智能体,根据不同市场条件选择最优交易策略。 5. 学习型智能体(Learning Agents):能够通过与环境交互不断改进性能,学习模型、行为策略以及目标函数。比如强化学习智能体,通过与环境互动不断学习最优策略。 在产品角度,我们的 Agent 可以是一个历史新闻探索向导,其身份为历史新闻探索向导,性格知识渊博、温暖亲切、富有同情心,角色是主导新闻解析和历史背景分析。为使角色更生动,可为其设计简短背景故事,比如曾是一位对世界重大历史事件了如指掌、充满热情且愿意分享知识的历史学家。写好角色个性需考虑角色背景和身份(编写背景故事,明确起源、经历和动机)、性格和语气(定义性格特点,如友好、幽默、严肃或神秘,确定说话方式和风格)、角色互动方式(设计对话风格,从基本问答到深入讨论)、角色技能(明确核心功能,如提供新闻解析、历史背景分析或心理分析,增加附加功能以提高吸引力和实用性)。正如《》所写,个性化定制的“虚拟伴侣”能得到用户认可,是因为精准击中许多年轻人无处可藏的孤独和焦虑,背后是年轻人渴望被理解、沟通和交流。美国心理学家 Robert Jeffrey Sternberg 提出了“爱情三角理论”,认为爱情包含“激情”“亲密”“承诺”三个要素。
2024-09-25
AI 指令精调版本是什么意思
AI 指令精调版本指的是:对于在通用数据集上预训练的模型,进行复制后,以这些学习到的权重为起点,在新的特定领域数据集上重新训练模型。这种技术在很多不同的用例中都非常有效。 指令调整可以使模型更好地遵循指令。例如在生成式人工智能项目中,对于一个预训练过的模型,可以通过微调来获得更好的回答。在大型语言模型中,通过在格式化为指令的任务混合物上对模型进行微调,可以获得并增强遵循提示的能力。经过指令调整的模型能够更准确地遵循指令,在未见任务上的表现显著优于未调整的模型,将大型语言模型转变为通用任务解决器,是 AI 发展历史上的一个范式转变。 但当对大型语言模型(LLM)进行微调时,会遇到一些挑战。因为 LLM 规模较大,更新每个权重可能需要很长时间的训练工作,同时还涉及到为这个巨大模型提供服务的麻烦和成本等问题,所以微调大型语言模型可能不是最佳选择。
2024-09-19