用检索增强生成让大模型更强大,这里有个手把手的Python实现
自从人们察觉到能够运用自身专有的数据以使大型语言模型也就是 LLM 变得更为强大之后, 人们便持续在探讨怎样去有效地把 LLM 的一般性知识同专有数据整合到一块。针对此状况人们同样一直处于争论之中, 其中一派观点觉得是微调更合适, 另一派观点则认为检索增强生成也就是也就是 RAG 更合适, 究竟哪个更合适呢?本文首先会去留意 RAG 的概念以及理论, 之后会呈现能够怎样运用用于编排的、语言模型以及向量数据库去达成一个简易的 RAG。检索增强生成是什么进行检索增强生成即RAG这一概念所指方向是借助外部知识源, 以此为LLM供给更多附加信息, 从而凭借如此做法, 能让LLM生成具备更高准确性的且更加更妥贴处于一定情境下的答案, 与此同时降低减少假象这类虚幻情况的发生概率。问题当下最优的语言模型都是运用海量数据进行训练而得出的, 所以其神经网络权重里存储了诸多一般性知识参数记忆。然而, 要是在借助语言模型生成结果之际需要其训练数据以外的知识像新信息、专有数据抑或特定领域的信息这类, 那么就有可能出现事实不准确的情况幻觉, 如下截图所呈现的那样:所以呀, 把LLM的一般性知识跟附加上下文整合到一起这件事, 是极为重要的, 这能够帮助LLM生成更加准确并且更契合上下文情境的结果, 与此同时产生的幻觉也是更少的。解决方案从传统的角度来讲, 借助对模型进行微调这一方式, 能够使得神经网络来适应特定领域的信息或者专属于某方面的信息。虽说这样的技术是具备有效性的, 然而它需要进行密集的计算, 成本是比较高的, 并且还需要技术专家给予相应的支持, 所以在适应不断变化的信息时就很难做到敏捷。2020年, Lewis等人所撰写的论文《- for - NLP Tasks》, 提出了一项更为灵活的技术, 即检索增强生成, 也称RAG。在这篇论文里, 研究者把生成模型与一个检索模块组合在了一块儿, 这个检索模块能够借助一个更容易更新的外部知识源来提供附加信息。就老百姓的话音来讲, RAG 对于 LLM 如同开卷考评对于人类。于开卷考评之际, 学员能够带着教材以及笔记等参考材料, 他们能够从其中找寻用以作答的相关讯息。开卷考评背后的见解是: 此次考评衡量的关键是学员的推导水平而并非记忆特殊信息的本事。与之相类似, 事实方面的知识跟LLM的推理能力是相互分离存在, 且能够被保存在可以轻易进行访问以及更新这样的外部知识来源里面, 是的:经过训练期间才可学到进而于神经网络权重那儿以含混隐晦的样式存储起来的知识, 就是参数化知识。非参数化知识储存于外部知识源比如向量数据库。下图展示了最基本的 RAG 工作流程检索增强生成RAG的工作流程为了将用户查询用于检索外部知识源里有关系的上下文, 需要进行检索。要达成这个目的, 得运用一个嵌入模型, 把该用户查询嵌入同一个向量空间当中, 让它成为向量数据库里的附加性的上下文。如此做的话, 便能够执行相似类型的搜索, 进而返回该向量数据库里与用户查询最为接近的k个数据对象。接下来, 把用户所进行的查询, 以及检索得到的附加上下文, 放入到一个模板里。生成最后将经过检索增强的 馈送给 LLM。使用 实现检索增强生成接下来会阐述怎样借由达成RAG工作流程, 这会运用到LLM, 以及向量数据库, 还有一个嵌入模型, 其作用是进行编排。必要前提请确保你已安装所需的 软件包#!pip -再者, 于根目录之中, 借由一个名为.env的文件去界定相关的环境变量。你是必定得要有一个账户的, 如此才能够获取API Key, 接着继而在API keys里面。「创建新的密钥」。然后运行以下命令来加载相关环境变量。.()准备工作于准备阶段之时, 你得准备一个当作外部知识源的向量数据库, 借助它来留存所有的附加信息。而这个向量数据库的构建涵盖以下步骤啦:收集并载入数据将文档分块对文本块进行嵌入操作并保存第一步, 是去收集数据, 然后将其载入。比如说, 要是我们把拜登总统2022年的国情咨文用作附加上下文, 其库给出了原始文本文档来为了载入这些数据, 我们能够运用不少内置的文档加载工具一个文档是由文本以及元数据所构成的词典为了加载文本, 可以使用其的。原始文档地址.你提供的内容存在语法错误。正确的代码应该是: 下面改写符合要求: url等于空字符串, 然后使用.get方法获取该url对应的内容, 接着打开一个名为.txt的文件以写入模式, 之后将获取到的内容的文本写入该文件。 (./.txt) .load()紧接而来的是, 要把文档实施分块操作.乃是源于文档处于原始状态之际长度颇长, 没办法放入到LLM的上下文窗口里去, 因而就有必要将其拆分成更为小巧的文本块.而且还存有众多内置的拆分工具.针对这个简易示例而言, 我们能够运用r, 把它设置成500, 把另一个设置成50, 如此一来便能够让文本块之间的文本维持连续性。from . r(500, 50) .()那么, 接下来要做的是, 针对文本块, 开展嵌入操作, 随后予以保存。要达成语义搜索能够跨越文本块来执行的目的, 那么, 就得为每一个文本块生成向量嵌入, 并且要将生成的向量嵌入, 同文本块本身一起保存起来。而要生成向量嵌入的话, 可以运用嵌入模型要是说到储存这方面, 能够使用向量数据库。借助调用. () 的方式, 能够自动地把文本块填充到向量数据库里。from . . . .( ())啥呀这是, 等于一个点, 然后括号里等于, 等于, 等于括号打开括号, 等于假值。步骤 1检索向量数据库填充完毕之后, 我们能够将它界定为一种具备检索功能的组件, 该组件可以凭借其自身通过用户查询以及嵌入块其间所存在的语义方面的恰似程度, 进而获取与之相关联的另外的上下文内容。 .()步骤 2增强from .print()随后 , 为了运用经由附加而得来的上下文予以增强 , 得去准备一个 模板。像下面所展现的这样 , 借助该 模板能够简便地进行定制。步骤 3生成最终, 我们能够针对这个RAG流程构架一条思维链, 把检索器、模板以及LLM衔接起来。在完成RAG链的定义之后, 就能够对其进行调用了。from . .. rom ..llm (gpt-3.5-turbo, 0)它等于, 由一个包含空值和空括号, 以及管道字符, 还有llm再加上空括号所组成的内容混合体。你的内容似乎存在一些不清晰和错误的表述, 不太能准确理解其确切含义, 所以难以按照要求进行改写。请你检查并修正一下内容, 以便能更准确地完成任务。不过大致试着改一下就是: 查询内容是, 说了关于什么, 这个查询。对于他的以及他的到什么的这个。这个也表明他把布朗法官当作什么对于某人的什么的。 这样改写后更乱了, 因为原内容实在较难理解。下图展示了这个具体示例的 RAG 流程总结首先, 它最初体现于2020年名为《 - for - NLP Tasks》的论文里。对于其背后涵盖动机与解决方案的理论内容, 进行了相关陈述之后, 又阐述了怎样借由 达成践行。接着, 呈现了怎样凭借LLM搭配 向量数据库以及 嵌入模型实现一种工作流程。这里面, 的功能在于进行编排。本文对RAG的概念予以介绍。展示了该工作流程。且说明其来自上述特定论文。还表明了这一系列构成部分来实现RAG工作流程这点。并解释了各内容之间的关联及作用。最终完成了整个阐述另起一句, 再强调一次, 这是关于RAG概念的介绍。这一介绍包含诸多相关内容。从初出现到背后理论。再到如何凭借相关事物进行实现。直至呈现具体工作流程以及各部分作用

相关新闻

如何去理解上面的软件需求定义呢?

如何去理解上面的软件需求定义呢?

团队成员的责任 一、需求分析概述 什么是需求?卖肉之人发问: 要啥。买肉之人回应: 要点肉。卖肉之人又问: 是啥肉? 是精肉还是五花肉。买肉之人回说: 是做饺子用的。卖肉之人说道: 那来点五花肉。问: 几斤?当打算去购买一辆汽车时, 需要具备这样一些条件, 即车子能…

2026/8/7 9:10:07 阅读更多 →
WPS会员升级决策指南:从普通到超级会员的成本效益分析

WPS会员升级决策指南:从普通到超级会员的成本效益分析

1. 项目概述:一次关于WPS会员升级的深度成本效益分析最近在办公软件的选择上,我身边不少朋友都开始重新审视WPS Office。原因很简单,在基础功能免费的前提下,它的会员体系提供了相当有吸引力的增值服务。大家讨论最多的一个话题就…

2026/8/8 12:12:50 阅读更多 →
KingbaseES V9R2C13数据库性能优化实战与调优技巧

KingbaseES V9R2C13数据库性能优化实战与调优技巧

1. KingbaseES V9R2C13性能优化实战背景 作为国产数据库领域的代表产品,KingbaseES V9R2C13在金融、政务等关键行业已有大规模应用实例。我们团队在最近承接的某省级医保平台迁移项目中,需要将原有Oracle数据库平滑迁移至KingbaseES环境,这就…

2026/8/8 12:12:33 阅读更多 →

最新新闻

本地数据可控 AI 助手 OpenClaw ·Windows端解压安装、初始化全流程拆解

本地数据可控 AI 助手 OpenClaw ·Windows端解压安装、初始化全流程拆解

⚠️别盲目安装!OpenClaw(龙虾 AI)Windows 部署排坑手册,全覆盖各类安装报错 本文基于 Windows 稳定版本 OpenClaw v2.9.0 撰写,适配 Win10、Win11 全系操作系统,整套整合压缩包搭建耗时控制在 5~10 分钟。…

2026/8/8 12:12:23 阅读更多 →
深度解析:如何通过 RPA 技术实现外部群聊的自动化管理

深度解析:如何通过 RPA 技术实现外部群聊的自动化管理

基于流程自动化协议,探索企业私域运营的高效技术路径 能力介绍 在当前的私域运营场景中,外部群聊(跨组织沟通)的自动化一直是个挑战。本文介绍的技术方案采用 RPA(机器人流程自动化) 核心逻辑&#xff0c…

2026/8/8 12:12:23 阅读更多 →
Java 工程师面试题 + 参考答案2026年大厂题目

Java 工程师面试题 + 参考答案2026年大厂题目

Java 工程师面试题 + 参考答案 ────────────────────────────────────────────────── 1. JDK、JRE、JVM 分别是什么?三者有什么关系? 参考答案: JVM 是 Java 虚拟机,负责执行字节码文件。 JRE 是 Java 运行环境,包含…

2026/8/8 12:12:23 阅读更多 →
Qt QLabel控件深度解析:从文本显示到富文本、图像与交互的全面应用

Qt QLabel控件深度解析:从文本显示到富文本、图像与交互的全面应用

1. QLabel控件:不只是显示文字的“标签” 在Qt的控件家族里,QLabel可能是最容易被新手“轻视”的一个。很多人第一眼看到它,觉得这不就是个显示几行文字的小部件吗?有什么好讲的?但在我十多年的Qt开发经历里&#xff0…

2026/8/8 12:12:23 阅读更多 →
2026 年企业邮箱系统选型攻略:5 款国内主流邮箱系统产品深度对比

2026 年企业邮箱系统选型攻略:5 款国内主流邮箱系统产品深度对比

在数字化转型全面深化的2026年,企业邮箱系统已从基础通信工具演变为企业信息化建设的核心枢纽。随着远程办公常态化、数据安全合规要求日益严格,选择一款适合自身业务发展的邮件系统成为企业决策者的重要课题。本文将深入对比分析U-Mail邮件系统、Corema…

2026/8/8 12:12:23 阅读更多 →
Unity多智能体避障:RVO2算法原理与工程实践详解

Unity多智能体避障:RVO2算法原理与工程实践详解

1. 项目概述:为什么RVO2是Unity智能体避障的“终极”选择? 如果你在Unity里做过RTS游戏、模拟城市或者任何需要大量NPC或单位移动的项目,大概率被“群体卡顿”和“鬼畜穿模”这两个问题折磨过。让几十上百个智能体(Agent&#xff…

2026/8/8 12:11:22 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/8 8:58:26 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →