搭建大模型知识库流程,以及基于langchain实现大模型知识库案例

news2024/11/25 20:54:54

RAG检索增强生成是为了解决大模型知识不足的问题

大模型主要面临三个问题:

垂直领域内的知识不足

大模型知识有时间限制

大模型幻觉问题

第一个问题产生的原因是因为,没有经过垂直领域数据训练的大模型普遍表现不好;其次是目前的大模型采用的是预训练模式,也就是说需要先收集训练数据进行训练,但只能收集之前的数据,不能收集当前和以后的数据;最后就是大模型幻觉问题,幻觉问题产生的原因就是知识不足,导致在一些领域问题中一本正经的胡说八道。

因此,说到底大模型产生以上三个问题的主要原因就是知识不足,因此RAG——检索增强生成技术就出现了。

RAG技术配合知识库技术,就能够补充大模型知识不足的问题,知识库的作用就相当于给大模型配置一个资料室,遇到不懂的就去资料室里查。

今天,我们就来讨论一下本地知识库的实现步骤,以及代码。

知识库的实现步骤及代码

严格来说,解决大模型知识不足问题的技术是RAG——检索增强生成,而不是知识库技术。

知识库技术在大模型之前就已经出现了,简单来说就是公司内部的文档系统,里面记录了企业内部的资料,文档等,形式可以是一个web系统,甚至就是一个文件夹。

而我们今天说的大模型知识库是基于RAG技术,结合知识库技术产生的一个变种,主要区别就是数据格式问题。

RAG文档检索生成,就是通过把资料向量化,并为了提升查询效率需要把向量化的文档存入到向量数据库,然后每次在问大模型之前,先去向量数据库中查询与问题相关的内容,通过提示词的方式一并传入到大模型中,这样就可以解决大模型知识不足的问题。

图片

之所以要把资料向量化的原因是,在传统的查询搜索过程中,使用的主要是基于字符匹配的方式进行查询,比如说你想查询西红柿炒蛋的做法,查询的内容中就必须包含西红柿和炒蛋这几个字。

而有了大模型技术,把资料向量化之后,就可以通过语义进行查询,大模型会根据语义分析,知道西红柿和番茄是一个东西。

大模型知识库的原理就是给大模型外挂一个资料库,但大模型毕竟不是人,需要把资料,文档等转化为大模型能够识别的格式,就是文档向量化。

搭建大模型知识库,需要经过以下几个步骤:

文档加载

在当今互联网时代,知识的形式多种多样,比如文本格式的就是txt,word,pdf等;还有其它格式如图片,结构化数据以及非结构化数据等。

因此,打造一个知识库需要支持多种文档,以及不同文档的加载路径,如本地加载,网络加载等;而这就是文档加载需要解决的问题。

文档分割

在大模型应用中,长文本处理是一个问题,并且大模型窗口都有上下文长度限制;并且,文档还需要处理成大模型能够识别的向量格式,因此对一些长文本文档需要进行文本分割,解决文档过长而导致的问题。

文档分割根据不同的任务场景,需要进行不同的处理,比如文档分割的长度,分割形式(比如,段落,标点符号等),重叠长度等。

词嵌入

在传统的知识库系统中,文档是以文本,图片,视频等格式存在的,使用者主要是人,因此只需要能够通过网络加载文档即可。

但在大模型应用中,大模型不认识字,它能够处理的格式只有向量。而且,还需要进行语义分析,因此需要通过词嵌入的方式,把文档转化为大模型能够处理的,且语义连贯的形式,也就是向量格式,而这个技术就叫做词嵌入。

词嵌入工具本质上也是一个大模型,只不过是专门训练用来完成语义理解和向量转化的模型。

Sentence-transformer 词嵌入python 库 可以支持多种嵌入模型 或者可以使用第三方提供的转化工具,比如openAI,通义千问等。

文档处理整体流程入下图所示:

图片

文档存储

文档存储的功能就是需要把通过词嵌入转化的大模型能够识别的向量格式存储起来,一般使用的是向量数据库。

当大模型需要使用的时候,再通过检索的形式从向量数据库中获取。

文档存储的作用是为了解决查询效率的问题,但也并不是必须的;比如说,当你知识库的内容很少的时候,你也可以选择每次提问的时候,重新加载文档并向量化,这样之前向量化过的文档就存储在向量数据库中,下次使用的时候就可以直接从数据库中查询。

就类似于在web开发中,你也可以把用户数据通过|或某种符合间隔起来并保存到txt文件中,每次查询的时候需要读取文件并解析数据,这样就会非常的麻烦;而如果把用户信息存储到数据库中,就会方便的多。

图片

文档检索

从向量数据库中,通过语义对数据进行检索,然后把检索结果带入到大模型中,供大模型使用。技术实现是通过数学计算,根据向量计算相对位置,位置越近语义相关度越高;比如欧式距离,cos值等。

RAG的难点和重点是数据的质量和检索质量,也就是说本地知识库的好坏和使用的模型(用来回答问题的模型,不是词嵌入的模型)没有什么关系,只是和你检索的效果有关。

简单来说就是,你的知识库数据质量和向量数据库的质量越好,RAG的效果才越好。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新160个crackme - 054-vcrkme01

运行分析 需破解Name和Code PE分析 C程序,32位,无壳 静态分析&动态调试 ida找到关键字符串,双击进入函数 主函数静态分析,注释如上,还需要了解sub_401000函数 对sub_401000函数进行分析,注释如上&#…

半导体设备系列(2) 半导体设备与工厂控制仿真器Demo编写

可以用CS架构编写这两个仿真器,将设备写成服务器,接收来自工厂控制程序的命令。后续加上半导体设备通信协议。 半导体设备服务器 1)工程文件 QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You ca…

linux 操作系统下的convertquota命令介绍和使用案例

linux 操作系统下的convertquota命令介绍和使用案例 convertquota命令介绍 convertquota是Linux系统中用于转换旧格式的用户和组配额文件的命令。它可以将旧格式的quota.user和quota.group文件转换为新格式的aquota.user和aquota.group文件。新格式的配额文件支持32位的uid/g…

有关WSL和docker的介绍

目录标题 如何利用在windows上配置docker实现linux和windows容器修改WSL默认安装(也就是linux子系统)目录到其他盘 如何利用在windows上配置docker实现linux和windows容器 wsl的基本命令:参考网页 docker入门到实践:参考网页 官方…

深度学习基础--卷积网络

图像的三个特性指出了专门模型架构的必要性。 首先,图像是高维的,一个用于分类任务的典型图像含有 224224 RGB 值(即,150528 个输入维度)。在全连接网络中,隐藏层的规模通常超过输入大小,因此&a…

uniapp中使用uni.$emit和uni.$on在vue和nvue页面之间传值但是无法赋值的问题

背景:我们在vue页面和nvue页面之间进行传值可以使用uni.$emit和uni.$onsh事件监听实现,官网描述:uni-app官网 (dcloud.net.cn)https://uniapp.dcloud.net.cn/api/window/communication.html#emit 而且官网上也明确说明了: 一、问…

SLMi33x系列SLMi330HCG-DG具有主动保护功能 兼容光耦的单通道带保护功能的隔离驱动器

SLMi33x系列SLMi330HCG-DG优势和亮点:国内首款带DESAT保护功能并兼容光耦驱动的IGBT/SiC隔离驱动器,5kVrms隔离电压和高达10kV的隔离浪涌电压,CMTI超过100kV/us SLMi330HCG-DG内置快速去饱和(DESAT) 故障检测功能、米勒钳位功能、漏极开路故…

棋牌灯控箱计时计费管理系统软件网关端口设置方法 佳易王麻将馆计时收银会员管理系统操作教程

一、前言 棋牌灯控箱计时计费管理系统软件网关端口设置方法 佳易王麻将馆计时收银会员管理系统操作教程 1、佳易王计时计费软件可接配套的灯控器 2、计时开灯则打开对应的灯 3、结账后自动关灯。 二、软件程序功能图文 1、当前计费方式可以按单价或时间段 2、软件解压即可…

永成分歧式防爆器Y-FBQ型

永成分歧式防爆器Y-FBQ型 当努力成为生活的常态, 生活就时刻充满期待, 深知每份订单都是信任, 品质和专业是我晒单的底气。 用途 型号为Y-FBQ型,分歧式防爆器是安装在瓦斯抽放管路中的简易防爆装置。此款产品主要由进气管、出气…

HarmonyOS开发5.0【rcp网络请求】

一 概述 现在鸿蒙的网络还不成熟,所以咱们需要对网络请求框架二次封装,并且避免业务方直接引用到,预防当有比较新的成熟性价比高的框架的替换,这个过程肯定是不可避免的 1.1 第三方比如 [axios]的js库迁移过来的[httpclient]通过socket&am…

Linux s3c2440 开发板上的操作系统实现 ubuntu

使用s3c2440开发板 使用ubuntu 1.ubuntu中的tftp,和nfs Trivial File Transfer Protocol,简单文件 传输协议。 通过网络在客户端与服务器之间进行简单文件 传输。提供不复杂、开销不大的文件传输服务。 Network File System,网络文件系统。通过 网络…

OpenStack概论和部署

目录 1.1 云计算概述 1.1.1 什么是云计算 1.laaS 2.PaaS 3.Saas 1.1.2 0penStack 概述 1.OpenStack 起源 2.什么是 Openstack 3.OpenStack 优势 1.2 安装方式 1.2.1 在线安装 1.配置系统基本环境 2.为系统设置阿里的仓库 3:设置kvm源 4:设…

【HarmonyOS】头像圆形裁剪功能之手势放大缩小,平移,双击缩放控制(三)

【HarmonyOS】头像裁剪之手势放大缩小,平移,双击缩放控制(三) 一、DEMO效果图: 二、开发思路: 使用矩阵变换控制图片的放大缩小和平移形态。 通过监听点击手势TapGesture,缩放手势PinchGes…

安泰功率放大器在压电马达中的应用实例

压电马达是一种利用压电效应的装置,通过在压电陶瓷上施加电场,引发其形变从而产生机械振动。在这个领域,功率放大器的应用为提高效率、精准控制和创新性应用提供了可能。下面将深入介绍功率放大器在压电马达中的实际应用例子。 压电效应是指在…

三维数字图像相关法(3D-DIC)用于复合材料力学性能测试

三维数字图像相关法(3D-DIC技术),通过将物体表面随机分布的斑点或伪随机分布的人工散斑场作为变形信息载体,是应用于计算机视觉技术的一种图像测量方法,是一种非接触的,用于全场三维坐标、位移、应变及运动…

微信双开及多开!

在工作中大家可能会在pc端用到一台机器打开多个微信,但是现在windows更新之后,双击就只能打开一个了,以下有两种方式可以微信双开甚至多开。 第一种就是很简单的: ps: taskkill /f /im wechat.exe 这一步的用途就是先清除你电脑…

北京链家星河湾店·鸿鹄向阳杯羽毛球赛成功举办

9月10日,为了提高社区居民身体素质,促进社区居民间友好交流,北京链家星河湾店联合鸿鹄向阳俱乐部于在四季体育馆联合举办了羽毛球大赛,星河湾的社区居民积极参加,分组合作,在比赛中表现出团结合作不服输的精…

AbMole总RNA提取试剂 (免氯仿) AbMole Easy Trizol (Tcm Free)

AbMole Easy Trizol (Tcm Free) 是传统Trizol 的免氯仿升级版,广泛适用于从各类动物组织、植物材料、培养细胞、细菌等样品中提取Total RNA和Small RNA。与传统 Trizol 提取方法相比,本产品不需要使用氯仿进行分层,操作更简单,且全…

视频倒放怎么制作?4种方法教你制作倒放视频

视频倒放怎么制作?视频倒放,作为一种独具匠心的编辑手法,为视频创作开辟了新的维度。它不仅让常规画面变得非比寻常,还能以逆向视角展现时间流逝的奇幻效果,极大地丰富了视频的表现力和趣味性,是扩充视频创…

降本、创新、合作,谁才是连接器行业破除内卷的关键词?

如果用一个字来评价2024年的汽车行业,那就是「卷」。 ▲中国汽车保有量不断提升 图/Pixabay 长安汽车董事长朱华荣说:“汽车行业的卷,让中国品牌达到了新高度。” 吉利董事长李书福说:“中国汽车工业内卷程度全球第一,…