分享好友 最新动态首页 最新动态分类 切换频道
【腾讯云云上实验室】从零开始搭建爬虫+向量数据库+LLM大模型构建企业私有化知识库
2024-12-26 11:53

**本文主要论证从零开始搭建爬虫->向量数据库->LLM大模型知识库过程,文章中不依赖任何爬虫、LangChain、Chat GLM等框架,从最原始角度通俗易懂、直观的解读大模型与向量数据库结合过程,给大家提供现阶段热门企业大模型解决方案建设思路和方向。**

目前流行的中文开源大模型非ChatGLM(智普)、baichuan(百川)等莫属。虽然认知能力赶不上ChatGPT 3.5,但是它的开源吸引了广大的AI研究者。

当前LLM存在最大的问题在于:

1、研究成本高,如果搭建一个13B以及以上的模型,全量运行需要24GB以上显存,如果进行量化质量又达不到要求,前期研究就要投入大量成本并且如果有多个LLM项目并行开发就会遇到项目组之间抢资源问题;

2、训练成本高,回报率随机,对于广大进行“炼丹”的“仙人”们都知道,炼丹最大问题在于整理的训练集、训练轮数及各种参数可能导致炼出废丹,并且知识的日益更新,如果要更新知识就要重新训练;

3、胡乱说话(幻想),幻想就是你问一个问题,它有板有眼儿的给你回答,你不是专业人士可能就会被它的回答误导了。LLM的幻想并非真正的幻想,而是由其训练方式和数据源所决定的,LLM通过大量的互联网文本数据进行训练,这些数据包含了各种话题和语境。

以上就是目前LLM模型常见的问题,对于模型的研发者和使用者都是头痛问题。针对企业级AI应用,目前有个大家探索的方案就是向量数据库+LLM大模型结合,解决研究成本、训练及胡乱说话问题,通过知识库中准确的内容弥补数据的不足导幻想。

其原理就是将知识要点存储到向量数据库,在提问时通过分词或大模型对提问内容进行分解,从向量数据库提取出关键内容,然后再将内容喂给LLM模型,从而得到想要的答案,从而实现了AI数据库的可维护性,这个模型可以用于OpenAI API也可以用于LLM私有化模型。

接下来,我们从探索的角度来研究向量数据库+LLM大模型的应用(这里不使用LangChain 东西,因为他们封装很深不适合从原理上研究探索)

本次目标是搭建一个LLM知识问答系统:

1、搭建向量数据库(这里使用 腾讯云向量数据库Tencent Cloud VectorDB);

2、开发知识库采集及存储工具

(1) 编写爬虫工具,实现知识库数据爬取;

(2) 编写数据存储服务

3、开发LLM大模型对话功能,并将向量数据库知识库加入到大模型对话中来;

环境准备:

Python:3.10

LLM:ChatGLM 3

运行环境:Windows11 WSL2  Ubuntu22.04

开发工具:VsCode

创建一个独立的python虚拟环境,内容存储再venv中

激活venv执行:

确定要爬取的URL地址:

编写Crawling.py爬虫,爬取向量知识库内容

引入依赖包:

引用依赖:

定义相关变量:

获取栏目所及子栏目所有URL地址,这里通过textarea的J-qcSideNavListData CSS进行定位,并从文本中得到JSON没描述信息。

遍历爬取到的地址信息,来获取指定页面正文内容,这里对正文中的html标签需要去除,不然会有大量干扰内容:

至此,知识库动态获取部分完成,比较简单吧!

3.3.1创建腾讯云向量数据库

腾讯云向量数据库目前低配置可免费使用,只需要在控制台搜索:向量数据库

选择一个你所在最近地域,点击新建创建一个

创建一个免费的

进入实例,开启外网访问:

设置允许访问的IP地址,如果只是测试用那就写0.0.0.0/0,这样所有ip都能访问,也省得多IP网络去研究自己到底哪个外网IP要进白名单

得到外网IP:

获取密钥:

得到这些信息了就可以将信息写入到代码中了。

另外如果你想要查询录入的数据或者创建库和集合也可以点DMC登录到管理端进行查看:

登录DMC

查询数据

3.3.2开发向量存储

开始前需要注意:

1.【重要的事】向量对应的文本字段不要建立索引,会浪费较大的内存,并且没有任何作用。 2.【必须的索引】:主键id、向量字段vector这两个字段目前是固定且必须的,参考下面的例子; 3.【其他索引】:检索时需作为条件查询的字段,比如要按书籍的作者进行过滤,这个时候author字段就需要建立索引, 否则无法在查询的时候对author字段进行过滤,不需要过滤的字段无需加索引,会浪费内存; 4.向量数据库支持动态Schema,写入数据时可以写入任何字段,无需提前定义,类似MongoDB. 5.例子中创建一个书籍片段的索引,例如书籍片段的信息包括{id,vector,segment,bookName,page}, id为主键需要全局唯一,segment为文本片段,vector为segment的向量,vector字段需要建立向量索引,假如我们在查询的时候要查询指定书籍 名称的内容,这个时候需要对bookName建立索引,其他字段没有条件查询的需要,无需建立索引。 6.创建带Embedding的collection需要保证设置的vector索引的维度和Embedding所用模型生成向量维度一致,模型及维度关系:

创建TencentVDB.py文件

引入依赖包

关闭debug模式

创建一个class TencentVDB类,里面分块解释含义:

初始化链接tcvectordb的客户端,相关信息稍后在main传入

创建数据库和集合,这里也可以去腾讯云DMC中创建:

创建数据库和集合

Embedding可以选择多种

可根据实际情况选择需要使用的模型

以上模型枚举代码位置:venvLibsite-packages cvectordbmodelenum.py

调用爬虫并写入数据到向量数据库

调用:

执行后会输出:

如果提示:

code=1, message=There was an error with the embedding: token rate limit reached 说明采集内容过多,免费账户限流了,需要删除一些已存储的集合。

登录查看数据是否入库:

创建文件 requirements.txt

导入LLM依赖

下载ChatGLM3模型,国内下载地址:

三选一即可,32K主要是支持长文本内容对话,模型比较大十多个G 最好放到固态硬盘上,能降低加载时间

编码ChatGLM聊天对话,这里使用streamlit作为聊天对话UI框架

引入依赖包:

设定模型位置,我这里代码和THUDM目录在同一位置,也可以使用绝对路径指向下载好的模型文件夹

判断当前处理器是否Nvidia显卡,或者是否装了cuda驱动,如果没装请参考我这篇文章:

https://blog.csdn.net/cnor/article/details/129170865

进行cuda安装。

设置标题

获取model,判断使用cuda还是cpu来计算

编写页面左侧一些调节开关以及历史聊天记录内容处理,支持历史内容分析。

获取输入内容,使用model.stream_chat将数据内容发给transformers以流的形式打印输出出来。

输出结果:

增加腾讯云向量数据库查询功能

输入部分改为:

最终成果:

最新文章
7723游戏盒子2023最新
7723游戏盒子是一款具有强大辅助功能的游戏辅助工具,该软件汇聚了海量的游戏资源,不管什么样的游戏,最新最火爆的,还是最旧最经典的游戏,在这款游戏盒子里都通通能够找到,且盒子内众多游戏分类,破解版、BT版、修改版等多种版本应有尽
aa小说下载阅读器去广告版
如今市面上的小说阅读软件,要么要付费才能观看,要么就是有广告在其中,非常影响观看,而小编今天带来的aa小说下载阅读器去广告版,此版本已经去除了广告,加入了多个地址源,用户无需付费,更新速度快,且拥有丰富的小说资源,可以给予用
6. Windows Media Player
随着网络视频的普及,免费视频播放器成为了人们日常观看视频的必备工具。无论是用来观看电影、电视剧,还是在线视频教程、直播节目,选择一款适合自己的视频播放器显得尤为重要。目前,市场上有众多免费的视频播放器,不同的播放器在功能、
2024新澳免费资料大全浏览器|精选解释解析落实
  在这个信息爆炸的时代,我们被各种数据包围,如何在庞大的信息流中找到有价值的资料成为了学习、工作甚至日常生活中的一个重要任务。特别是在新澳(这里指的是新西兰和澳大利亚,避免与“博彩”等违法词汇混淆)这样的英语系国家,由于
AI已经可以一键帮你生成高精度CG动画了...还会打破传统动画制作流程
wuhu专题文/阿呜这就夸张了!AI已经可以一键帮你生成高精度CG动画...还会打破传统动画制作流程只要会拍视频就可以做动画?你是否曾经幻想过将脑海里创作的画面快速成片?现在这项技术已经有了非常大的突破!自定义变身你想要的动画角色!这
android在apk中获取root权限,并执行命令
在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。 关键点在于下面这
2024正版新奥管家婆香港,专家解答解释落实_V版16.54.10
在当今数字化时代,数据已成为企业决策的重要基石,随着数据分析工具的不断演进,如何高效、精准地利用这些工具,成为企业提升竞争力的关键,本文将聚焦于“2024正版新奥管家婆香港”这一数据分析领域的新星,结合专家意见,深入探讨其功能
7D-飞行影院:带你开启震撼奇幻的冒险之旅
在这个充满新奇与刺激的时代,有一种体验能够让你瞬间穿越时空,身临其境地感受震撼与奇幻。那就是令人心跳加速、激情澎湃的 7D 飞行影院。当你踏入 7D 飞行影院的那一刻,就仿佛进入了一个全新的世界。你不再是旁观者,而是故事的主角,亲
docker 新手入门 (web项目的部署)
  web项目的部署  1.首先我们下载centos镜像。docker pull centos  2.下载完成之后,我们首先要安装的是java环境 tomcat 和jdk  3.将下载好的软件放入到nmt目录中.  5.执行 docker run -it --name mycentos -v /mnt/software/:/m
AI云开发实战解析:Techo TVP技术沙龙汇聚大咖共探开发新范式
近日,一场聚焦AI云开发应用实战的技术沙龙在上海成功举办,吸引了众多开发者和行业专家的积极参与。本次活动由腾讯云TVP与CSDN携手打造,旨在深入探讨云开发技术在各行业的应用实践,为开发者提供前沿的技术洞见和实战经验。活动中,Click
相关文章
推荐文章
发表评论
0评