Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

RAG-Fusion

Answer

RAG(检索增强生成)是由 Lewis 等人于 2020 年中期提出的一种大语言模型领域的范式。

大型语言模型如 GPT 系列虽在自然语言处理方面取得显著成功,但仍存在局限性,如处理特定领域或高度专业化查询时易产生错误信息或“幻觉”,尤其在查询超出训练数据或需要最新信息时。

RAG 将外部数据检索整合到生成过程中,包括初始的检索步骤,查询外部数据源获取相关信息后再回答问题或生成文本,这不仅为后续生成提供信息,还能确保回答基于检索证据,从而显著提高输出的准确性和相关性。其演进轨迹分为四个阶段。

在 2017 年创始阶段,重点是通过预训练模型吸收额外知识增强语言模型。

RAG 能解决大语言模型知识局限性、幻觉问题和数据安全性等问题,可让大模型从权威知识源检索组织相关信息,更好控制文本输出,且能与微调结合使用。但 RAG 不适合教模型理解广泛领域或学习新语言、格式或样式。

LangChain 是用于构建高级语言模型应用程序的框架,提供一系列工具和组件,RAG 作为技术可在 LangChain 框架内实施利用,两者关系包括:LangChain 提供实现 RAG 必需的工具和组件;允许通过模块化组件构建 RAG 应用;简化 RAG 应用开发过程;利用其实现 RAG 可提高性能;支持构建复杂的 RAG 应用。

Content generated by AI large model, please carefully verify (powered by aily)

References

开发:产品视角的大模型 RAG 应用

开发:产品视角的大模型RAG应用[heading1]一文看懂RAG:大语言模型落地应用的未来[heading2]RAG发展的四个阶段大型语言模型(LLMs)如GPT系列在自然语言处理方面取得了显著的成功,Super-GLUE等各种基准测试中表现出色。尽管有了这些进展,LLMs仍然存在显著的局限性,特别是在处理特定领域或高度专业化的查询时,一个常见问题是产生错误的信息,或者称为“幻觉”。特别是当查询超出模型的训练数据或需要最新信息时。所以说在直接将LLMs部署运行到生产环境中时,其就是一个黑盒,鬼知道它会输出什么的结果...解决这些问题的一种有希望的方法是检索增强生成(RAG),它将外部数据检索整合到生成过程中,从而提高模型提供准确和相关回答的能力。RAG于2020年中期由Lewis等人提出,是LLMs领域中的一种范式,可增强生成任务。具体而言,RAG包括一个初始的检索步骤,LLMs在此步骤中查询外部数据源以获取相关信息,然后才回答问题或生成文本。这个过程不仅为后续的生成阶段提供信息,还确保回答基于检索到的证据,从而显著提高了输出的准确性和相关性。在推断阶段动态检索来自知识库的信息使RAG能够解决生成事实错误内容的问题,通常被称为“幻觉”。将RAG整合到LLMs中已经迅速被采用,并成为完善聊天机器人能力和使LLMs更适用于实际应用的关键技术。RAG的演进轨迹在四个不同阶段展开,如下图所示。在2017年的创始阶段,与Transformer架构的出现相一致,主要重点是通过预训练模型(PTM)来吸收额外的知识以增强语言模型。这个时代见证了RAG的基础工作主要集中在优化预训练方法上。

问:LangChain 和 RAG 有什么关系?

LangChain是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain的设计主张集中在模块化组件上,这些组件提供用于使用LLM的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用LLM生成文本)的技术。RAG能够为LLM提供来自外部知识源的附加信息,使得LLM在应对下游任务时能够生成更精确和上下文相关的答案,并减少LLM的幻觉现象。LangChain和RAG之间的关系可以概括为:1.框架与技术:LangChain作为一个框架,提供了实现RAG所必需的工具和组件。RAG作为一项技术,可以在LangChain框架内得以实施和利用。2.模块化实现:LangChain允许开发者通过其模块化组件来构建RAG应用程序,例如使用LangChain的检索器(Retriever)和生成模型(LLM)来创建一个完整的RAG流程。3.简化开发:LangChain通过提供现成的链(Off-the-shelf chains)和提示模板(Prompt Templates),简化了RAG应用程序的开发过程。4.提高性能:利用LangChain实现RAG可以帮助开发者创建更高效、更准确的应用程序,特别是在需要大量外部信息来辅助决策的场景中。5.应用构建:LangChain通过其丰富的API和组件库,支持开发者构建复杂的RAG应用,如智能问答系统、内容推荐引擎等。

RAG提示工程(一):基础概念

大语言模型技术的本质导致了大模型的输出结果具有不可预测性,此外,静态的训练数据导致了大模型所掌握的知识存在截止日期,无法即时掌握最新信息。因此,当我们将大模型应用于实际业务场景时会发现,通用的基础大模型无法满足我们的实际业务需求。主要存在以下原因:知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是抓取网络公开的数据用于训练,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。幻觉问题:大模型的底层原理是基于数学概率的文字预测,即文字接龙。因此大模型存在幻觉问题,会在没有答案的情况下提供虚假信息,提供过时或通用的信息,从可信度低非权威来源的资料中提供结果等。数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。因此如何大模型落地应用时如何保障企业内部数据安全是一个重要问题。而RAG是解决上述问题的一套有效方案。它可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解LLM如何生成最终的结果。并且,RAG可以和微调结合使用,两者并不冲突。RAG类似于为模型提供教科书,允许它基于特定查询检索信息。这该方法适用于模型需要回答特定的询问或解决特定的信息检索任务。然而,RAG不适合教模型来理解广泛的领域或学习新的语言,格式或样式。微调类似于让学生通过广泛的学习内化知识。这种方法当模型需要复制特定的结构、样式或格式时非常有用。以下是RAG与微调从维度方面的比较:参考资料:《Retrieval-Augmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf)

Others are asking
stable difusion学习
以下是关于学习 Stable Diffusion 的相关内容: 学习 Stable Diffusion 的提示词: 学习 Stable Diffusion 的提示词是一个系统性的过程,需要理论知识和实践经验相结合。具体步骤如下: 1. 学习基本概念:了解 Stable Diffusion 的工作原理和模型架构,理解提示词如何影响生成结果,掌握提示词的组成部分(主题词、修饰词、反面词等)。 2. 研究官方文档和教程:通读 Stable Diffusion 官方文档,了解提示词相关指南,研究来自开发团队和专家的教程和技巧分享。 3. 学习常见术语和范例:熟悉 UI、艺术、摄影等相关领域的专业术语和概念,研究优秀的图像标题和描述,作为提示词范例。 4. 掌握关键技巧:学习如何组合多个词条来精确描述想要的效果,掌握使用“()”、“”等符号来控制生成权重的技巧,了解如何处理抽象概念、情感等无形事物的描述。 5. 实践和反馈:使用不同的提示词尝试生成各种风格和主题的图像,对比提示词和实际结果,分析原因,总结经验教训,在社区内分享结果,请教高手,获取反馈和建议。 6. 创建提示词库:根据主题、风格等维度,建立自己的高质量提示词库,将成功案例和总结记录在案,方便后续参考和复用。 7. 持续跟进前沿:关注 Stable Diffusion 的最新更新和社区分享,及时掌握提示词的新技术、新范式、新趋势。 学习 Stable Diffusion Web UI: 学习 Stable Diffusion Web UI 可以按照以下步骤进行: 1. 安装必要的软件环境:安装 Git 用于克隆源代码,安装 Python 3.10.6 版本,确保勾选“Add Python 3.10 to PATH”选项,安装 Miniconda 或 Anaconda 创建 Python 虚拟环境。 2. 克隆 Stable Diffusion Web UI 源代码:打开命令行工具,输入命令 git clone https://github.com/AUTOMATIC1111/stablediffusionwebui.git,将源代码克隆到本地目录。 3. 运行安装脚本:进入 stablediffusionwebui 目录,运行 webuiuser.bat 或 webui.sh 脚本,它会自动安装依赖项并配置环境,等待安装完成,命令行会显示 Web UI 的访问地址。 4. 访问 Web UI 界面:复制命令行显示的本地 Web 地址,在浏览器中打开,即可进入 Stable Diffusion Web UI 的图形化界面。 5. 学习 Web UI 的基本操作:了解 Web UI 的各种设置选项,如模型、采样器、采样步数等,尝试生成图像,观察不同参数对结果的影响,学习使用提示词(prompt)来控制生成效果。 6. 探索 Web UI 的扩展功能:了解 Web UI 支持的各种插件和扩展,如 Lora、Hypernetwork 等,学习如何导入自定义模型、VAE、embedding 等文件,掌握图像管理、任务管理等技巧,提高工作效率。 Stable Diffusion 软件原理傻瓜级理解: Stable Diffusion 的工作原理可以这样理解:好比学习画画,比如学梵高的风格,要先看梵高的画并临摹。AI 绘画也是类似逻辑,人们把成千上万美术风格的作品练成一个模型放在 AI 里,AI 就能依照这个模型画出类似风格的作品。想要画出符合心意的作品,首先要选对合适的大模型。大模型的下载,可以去 C 站(https://civitai.com/),有真实系的、二次元的、游戏 CG 风的等等,但需要科学上网。
2024-12-24
stabel diffusion学习
以下是关于学习 Stable Diffusion 的相关内容: 学习 Stable Diffusion 提示词: 学习 Stable Diffusion 的提示词是一个系统性的过程,需要理论知识和实践经验相结合。具体步骤如下: 1. 学习基本概念:了解 Stable Diffusion 的工作原理和模型架构,理解提示词如何影响生成结果,掌握提示词的组成部分(主题词、修饰词、反面词等)。 2. 研究官方文档和教程:通读 Stable Diffusion 官方文档,了解提示词相关指南,研究来自开发团队和专家的教程和技巧分享。 3. 学习常见术语和范例:熟悉 UI、艺术、摄影等相关领域的专业术语和概念,研究优秀的图像标题和描述,作为提示词范例。 4. 掌握关键技巧:学习如何组合多个词条来精确描述想要的效果,掌握使用“()”、“”等符号来控制生成权重的技巧,了解如何处理抽象概念、情感等无形事物的描述。 5. 实践和反馈:使用不同的提示词尝试生成各种风格和主题的图像,对比提示词和实际结果,分析原因,总结经验教训,在社区内分享结果,请教高手,获取反馈和建议。 6. 创建提示词库:根据主题、风格等维度,建立自己的高质量提示词库,将成功案例和总结记录在案,方便后续参考和复用。 7. 持续跟进前沿:关注 Stable Diffusion 的最新更新和社区分享,及时掌握提示词的新技术、新范式、新趋势。 Stable Diffusion 软件原理傻瓜级理解: Stable Diffusion 的工作原理就好比学习画画。比如学梵高的风格,要先看他的画并临摹。AI 绘画也是类似逻辑,人们把成千上万美术风格的作品练成一个模型放在 AI 里,AI 就能依照模型画出类似风格的作品。想要画出符合心意的作品,首先要选对合适的大模型。大模型的下载,可以去 C 站(https://civitai.com/),但需要科学上网。 学习 Stable Diffusion Web UI: 学习 Stable Diffusion Web UI 可以按照以下步骤进行: 1. 安装必要的软件环境:安装 Git 用于克隆源代码,安装 Python 3.10.6 版本并勾选“Add Python 3.10 to PATH”选项,安装 Miniconda 或 Anaconda 创建 Python 虚拟环境。 2. 克隆 Stable Diffusion Web UI 源代码:打开命令行工具,输入命令 git clone https://github.com/AUTOMATIC1111/stablediffusionwebui.git,将源代码克隆到本地目录。 3. 运行安装脚本:进入 stablediffusionwebui 目录,运行 webuiuser.bat 或 webui.sh 脚本,它会自动安装依赖项并配置环境,等待安装完成,命令行会显示 Web UI 的访问地址。 4. 访问 Web UI 界面:复制命令行显示的本地 Web 地址,在浏览器中打开,即可进入 Stable Diffusion Web UI 的图形化界面。 5. 学习 Web UI 的基本操作:了解 Web UI 的各种设置选项,如模型、采样器、采样步数等,尝试生成图像,观察不同参数对结果的影响,学习使用提示词(prompt)来控制生成效果。 6. 探索 Web UI 的扩展功能:了解 Web UI 支持的各种插件和扩展,如 Lora、Hypernetwork 等,学习如何导入自定义模型、VAE、embedding 等文件,掌握图像管理、任务管理等技巧,提高工作效率。 通过这些步骤,相信您可以快速上手 Stable Diffusion Web UI,开始探索 AI 绘画的乐趣。后续还可以深入学习 Stable Diffusion 的原理,以及在不同场景中的应用。请注意,内容由 AI 大模型生成,请仔细甄别。
2024-12-23
Stable Diffusion基础学习
以下是关于系统学习 Stable Diffusion 的基础内容: 学习提示词: 学习基本概念,包括了解 Stable Diffusion 的工作原理和模型架构,理解提示词如何影响生成结果,掌握提示词的组成部分。 研究官方文档和教程,学习常见术语和范例。 掌握关键技巧,如组合多个词条精确描述效果、使用特定符号控制生成权重、处理抽象概念等。 通过实践和反馈,不断总结经验,创建自己的提示词库,并持续跟进前沿。 核心基础知识: 了解 Stable Diffusion 系列资源。 零基础深入浅出理解核心基础原理,包括通俗讲解模型工作流程、读懂核心基础原理、读懂训练全过程、介绍其他主流生成式模型。 解析核心网络结构,如 SD 模型整体架构、VAE 模型、UNet 模型、CLIP Text Encoder 模型、官方训练细节。 学习从 0 到 1 搭建使用 Stable Diffusion 模型进行 AI 绘画的不同流程。 了解经典应用场景,如文本生成图像、图片生成图片、图像 inpainting、使用 controlnet 辅助生成图片、超分辨率重建。 学习从 0 到 1 上手使用 Stable Diffusion 训练自己的 AI 绘画模型,包括训练资源分享、模型训练初识、配置训练环境与训练文件。 Nenly 的零基础入门课学习资料汇总: 提供了配套的学习文档,包括随堂素材、生成信息、内容修订等。 有安装攻略和素材下载的相关内容。
2024-12-22
stable diffusion
稳定扩散(Stable Diffusion)的运作原理如下: 消除图像中的噪点: 若在太暗情况下拍照产生的颗粒状即图像中的噪点。Stable Diffusion用于生成艺术作品,其在幕后所做的是“清理”图像,且比手机图像编辑器中的噪点消除滑块复杂得多。它了解世界的样子和书面语言,并利用这些来指导噪点消除过程。例如,给它一幅以H.R. Giger风格描绘的外星人弹吉他的图像,它能像熟练的平面艺术家一样利用对Giger艺术作品和世界的了解来清理图像。 大多数艺术生成工具中有“推理步骤”滑块,稳定扩散是逐步去除噪点的。 开始生成的方式:为了生成艺术,给稳定扩散提供一个纯噪点的初始图像,并谎称这是一幅特定风格的画。稳定扩散能做到是因为它是基于统计数据的计算机程序,会估计所有选项的概率,即使概率都极低,也会选择概率最高的路径,例如寻找噪点中最可能像吉他边缘的部分来填充物体。每次给它不同的纯噪点图像,都会创作出不同的艺术作品。 ComfyUI的生图原理: ComfyUI是一个开源的图形用户界面,用于生成AI图像,主要基于Stable Diffusion等扩散模型。 Pixel Space(像素空间):图的左边表示输入图像的像素空间,在ComfyUI中,对应于通过“图像输入”模块或直接从文本提示生成的随机噪声图像。生成过程结束时,系统会将处理后的潜在表示转换回像素空间,生成最终的图像。 Latent Space(潜在空间):ComfyUI中的许多操作都在潜在空间中进行,如KSampler节点就是在这个空间中执行采样过程。图像被映射到潜在空间后,扩散过程在这个空间中进行。在ComfyUI中,可通过节点调整对潜在空间的操作,如噪声添加、去噪步数等。 扩散过程(Diffusion Process): 噪声的生成和逐步还原:扩散过程表示从噪声生成图像的过程。在ComfyUI中,通常通过调度器(Schedulers)控制,典型的调度器有Normal、Karras等,会根据不同的采样策略逐步将噪声还原为图像。 时间步数:在生成图像时,扩散模型会进行多个去噪步。在ComfyUI中,可通过控制步数来影响图像生成的精细度和质量。
2024-12-18
stable diffusion
稳定扩散(Stable Diffusion)的运作原理如下: 消除图像中的噪点:如果拍照太暗会产生噪点,而 Stable Diffusion 用于生成艺术作品时,在幕后所做的是“清理”图像。它比手机图像编辑器中的噪点消除滑块复杂得多,它了解世界的样子和书面语言,并利用这些来指导噪点消除过程。例如,给它一幅以特定风格描绘的图像,它能像艺术家一样利用对相关艺术作品和世界的了解来清理图像。 “推理步骤”:稳定扩散是逐步去除噪点的,通过“推理步骤”滑块可以控制。 开始方式:为了生成艺术,给稳定扩散提供一个纯噪点的初始图像,并谎称这是一幅特定的画。在最简单层面上,它作为计算机程序会做事并生成东西。更深层次上,它基于统计数据,估计所有选项的概率,即使概率极低也会选择最高概率的路径,比如寻找噪点中最可能像吉他边缘的部分来填充物体。每次给不同的纯噪点图像,都会创作出不同的艺术作品。 ComfyUI 的生图原理: Pixel Space(像素空间):图的左边表示输入图像的像素空间,在 ComfyUI 中,对应于通过“图像输入”模块或直接从文本提示生成的随机噪声图像,生成过程结束时会将处理后的潜在表示转换回像素空间生成最终图像。 Latent Space(潜在空间):ComfyUI 中的许多操作都在潜在空间中进行,如 KSampler 节点就是在这个空间中执行采样过程。图像被映射到潜在空间后,扩散过程在这个空间中进行,可通过节点调整对潜在空间的操作,如噪声添加、去噪步数等。 扩散过程(Diffusion Process):表示从噪声生成图像的过程,在 ComfyUI 中通常通过调度器控制,如 Normal、Karras 等,可通过“采样器”节点选择不同调度器来控制如何在潜在空间中处理噪声以及逐步去噪回归到最终图像。生成图像时会进行多个去噪步,通过控制步数可影响图像生成的精细度和质量。
2024-12-18
stable diffusion通俗讲解
Stable Diffusion 是由 Stability AI 和 LAION 等公司共同开发的生成式模型,参数量约 1B,可用于文生图、图生图、图像 inpainting、ControlNet 控制生成、图像超分等任务。 文生图任务是将一段文本输入模型,经过一定迭代次数生成符合描述的图片。例如输入“天堂,巨大的,海滩”,模型生成美丽沙滩图片。 图生图任务在输入文本基础上再输入一张图片,模型根据文本提示重绘输入图片使其更符合描述,如在沙滩图片上添加“海盗船”。 输入的文本信息需通过 CLIP Text Encoder 模型这一“桥梁”转换为机器数学信息,该模型将文本信息编码生成 Text Embeddings 特征矩阵用于控制图像生成。 初始 Latent Feature 经过图像解码器重建是纯噪声图片,而经过 SD 的“图像优化模块”处理后再重建是包含丰富内容的有效图片。UNet 网络+Schedule 算法的迭代去噪过程的每一步结果用图像解码器重建,可直观感受从纯噪声到有效图片的全过程。 以下是 Stable Diffusion 模型工作的完整流程总结及前向推理流程图。 此外,关于 Stable Diffusion 还有系列资源,包括从 0 到 1 读懂其核心基础原理、训练全过程,核心网络结构解析,搭建使用模型进行 AI 绘画的多种方式,经典应用场景,以及上手训练自己的 AI 绘画模型等内容。
2024-12-17
rag高级优化
以下是关于 RAG 高级优化的相关内容: RAG 是一种结合信息检索和文本生成能力的技术,由检索器和生成器两部分组成。在生成式 AI 的发展中,RAG 发挥着重要作用。 在模型开发方面,新兴的推理技术如连锁思考、树状思考和反射正在提高模型执行更复杂推理任务的能力,缩小客户期望与模型能力的差距。迁移学习技术如 RLHF 和微调变得更加可用,开发者可从 Hugging Face 下载开源模型并微调以实现优质性能。检索增强生成(RAG)引入关于业务或用户的上下文,减少幻觉并增加真实性和实用性,像 Pinecone 这样的公司的向量数据库成为 RAG 的基础设施支柱。新的开发者工具和应用框架为创建更先进的 AI 应用提供了帮助。 对于 RAG 的改进策略和方法,在检索有用信息方面,可通过优化索引来实现。比如按照子部分索引,将文本块再拆分为较小的文本进行多次索引,适用于有多个主题和冲突信息的复杂长文本;按照文本框可以回答的问题索引,让 LLM 生成假设性问题用于索引,适用于用户问题不明确的场景;按照文本块的摘要进行索引,适用于文本框中有多余或无关细节的情况。此外,在重排 rerank 方面,大部分场景下选择最相似的信息即可。 在商业化问答场景中,有时大模型的回答会不准确,如出现牛头不对马嘴、报价错误、胡编乱造等情况。优化 AI 更准确回答问题的过程称为 RAG,了解从“问题输入”到“得到回复”的过程,针对每个环节逐个调优,可达到最佳效果。
2025-01-02
RAG优化
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 大语言模型(LLM)需要 RAG 进行检索优化,原因在于 LLM 存在一些缺点: 1. LLM 无法记住所有知识,尤其是长尾知识,对其接受能力不高。 2. LLM 的知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. LLM 的输出难以解释和验证,存在黑盒、不可控及受幻觉干扰等问题。 4. LLM 容易泄露隐私训练数据。 5. LLM 的规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,无学习风险。 2. 数据库的数据更新敏捷,可解释且不影响原有知识。 3. 数据库内容明确、结构化,结合模型理解能力可降低大模型输出出错可能。 4. 知识库存储用户数据便于管控隐私,且可控、稳定、准确。 5. 数据库维护可降低大模型训练成本。 在商业化问答场景中,优化 AI 更准确回答问题的过程称为 RAG。RAG 由检索器和生成器组成,检索器从外部知识中找到相关信息,生成器利用这些信息生成精确连贯的答案,适合处理需要广泛知识的任务。 目前,业界针对 RAG 的优化主要围绕“问题输入”“检索相关信息”“生成回复”这三个环节开展,如通过 COT 等方式提升 LLM 对问题的理解程度,使用特定方式提升语义搜索准确率,选择和优化 embedding 算法保留原始数据信息。但即便每个环节优化到 90%,最终准确率也只有 72%。有一种不用向量也可以 RAG 的方法,基于结构化数据和 LLM 的交互,具有准确、高效、灵活、易扩展等优势。
2025-01-02
rag教程有吗
以下为您提供关于 RAG 的教程: 首先,有一篇题为“胎教级教程:万字长文带你理解 RAG 全流程”的文章。作者大圣指出这是面向普通人的 RAG 科普,而非技术向文章。文章强调 RAG 技术在当前 AI 发展中的重要性,其衍生产品能为企业和个人带来效率提升,但也存在局限性。作者希望通过阐述 RAG 完整流程,让读者全面认知该技术,管理好预期,在使用相关产品时能充分发挥其潜力。适合包括 AI 爱好者、企业老板、AI 产品经理等人群。 其次,“【AI+知识库】商业化问答场景,让 AI 回复更准确,一篇专为所有‘小白’讲透 RAG 的实例教程(上篇)”中提到,通过一个简单的问答示例展示了有时回答不准确的情况,从而引出 RAG 这一优化回答的专业术语。接着介绍了基础概念,RAG 即检索增强生成,由检索器和生成器组成,适合处理需要广泛知识的任务。 最后,在“胎教级教程:万字长文带你理解 RAG 全流程”中还提到了 RAG 全貌概览。RAG 流程分为离线数据处理和在线检索两个过程,离线数据处理构建知识库,在线检索则是利用知识库和大模型进行查询。以构建智能问答客服为例来了解 RAG 流程中的 What 与 Why 。
2024-12-30
RAG搜索
RAG(Retrieval Augmented Generation,检索增强生成)是一种利用大模型能力搭建知识库的技术。以下是关于 RAG 的详细介绍: 背景:大模型训练数据有截止日期,当需要依靠不在训练集中的数据时,RAG 应运而生。 过程: 文档加载:从多种来源加载文档,如 PDF 等非结构化数据、SQL 等结构化数据、Python 等代码。 文本分割:把文档切分为指定大小的块。 存储:包括将切分好的文档块嵌入转换成向量形式,并将向量数据存储到向量数据库。 检索:通过检索算法找到与输入问题相似的嵌入片。 输出:把问题及检索出来的嵌入片提交给 LLM,生成更合理的答案。 核心组件:分为检索、增强、生成三部分。其中检索是核心组件之一,负责从外部数据源或知识库中获取与用户查询相关的信息,其质量和效率对 RAG 系统性能至关重要。涉及检索策略、检索粒度、检索方法、检索效率、外部数据源等关键概念和技术。 引入方式:可以从 AI 搜索切入来理解 RAG。AI 大模型擅长语义理解和文本总结,但不擅长获取实时信息;搜索引擎擅长获取实时信息但信息分散。AI 与搜索引擎结合,给 AI 配备知识库,类似于 RAG 原理。
2024-12-27
dify 实现rag
Dify 是一个开源的大规模语言模型(LLM)应用开发平台,具有以下特点和优势: 1. 配备 RAG 引擎,允许用户编排从代理到复杂 AI 工作流的 LLM 应用。 2. 关键特性: 快速部署,5 分钟内可部署定制化的聊天机器人或 AI 助手。 创意文档生成,能从知识库生成清晰、逻辑性强且无长度限制的文档。 长文档摘要,可轻松对长文档进行摘要。 自定义 API,能安全连接业务知识,解锁更深层次的 LLM 洞察。 连接全球 LLM。 生产就绪,比 LangChain 更接近生产环境。 开源,可被社区广泛使用和改进。 3. 资源获取:可从 Dify 的 GitHub 仓库(https://github.com/langgenius/dify.git 和 https://docs.dify.ai/)获取源代码、文档、安装指南、使用说明和贡献指南等资源。 4. 是一个结合后端即服务和 LLMOps 理念的平台,为用户提供直观界面快速构建和部署生产级别的生成式 AI 应用,具备强大工作流构建工具、广泛模型集成、功能丰富的提示词 IDE 及全面的 RAG Pipeline 用于文档处理和检索,允许定义 Agent 智能体,并通过 LLMOps 功能对应用程序性能持续监控和优化。提供云服务和本地部署选项,满足不同用户需求。其设计理念注重简单性、克制和快速迭代,个人研究可单独使用,企业级落地项目推荐多种框架结合。 5. 官方手册:https://docs.dify.ai/v/zhhans
2024-12-25
RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 其核心目的是为大语言模型(LLM)提供额外的、来自外部知识源的信息,通过检索模式为大语言模型的生成提供帮助,使生成的答案更符合要求。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,受训练数据和学习方式限制,对长尾知识接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在内容黑盒、不可控及受幻觉问题干扰的情况。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,可解释且不影响原有知识。 3. 数据库内容明确、结构化,加上模型理解能力,降低大模型输出出错可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统,用户提出问题,RAG 模型从大规模的文档集合中检索相关的文档,然后生成回答。 RAG 由一个“检索器”和一个“生成器”组成,检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案,非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。
2024-12-25