分享好友 最新动态首页 最新动态分类 切换频道
【腾讯云云上实验室】从零开始搭建爬虫+向量数据库+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以流的形式打印输出出来。

输出结果:

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

输入部分改为:

最终成果:

最新文章
AWE2025_中国(上海)家电博览会_AI科技智能家电展
2025中国家电及消费电子博览会|AWE上海家电展主办单位:中国家用电器协会(CHEAA)承办单位:艾维(北京)展览展示服务有限公司展览时间:2025年3月20-23日 展览地点:上海新国际博览中心AWE2025硬核数据:13个展馆 158000平方米 1200+品牌 40000
10 年磨一剑,阿里开源自研搜索引擎 Havenask!
整理 | 苏宓出品 | CSDN(ID:CSDNnews)信息化时代,搜索引擎是很多兵家必争之地。这一场的角逐也从传统的互联网领域逐渐拓展到了分布式系统之上。近日,阿里重磅开源了自研的搜索引擎Havenask(https://github.com/alibaba/havenask),
2024招商时代乐章(售楼处)官方网站-时代乐章百度百科-上海房天下
北上海主城区新地标TOD生活时代到来33万㎡的城市综合体潘广路TOD「招商时代乐章」四期加推建面约89-128㎡3房共计234套公园住区+25万㎡规模商业+星级酒店4万级单价,450万级全装美宅将于10月27开启认购感兴趣的小伙伴下方可预约咨询 招商时
Docker 监控实战
如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据:2 / 3 的公司在尝试了 Docker 后最终使用了它也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 60 天内。越大型的公司越早开始使用 Docker研究发现主机数量越多
2024年湖南全过程工程咨询加盟办理分公司+2024top5全过程工程咨询加盟排名一览
2024年湖南全过程工程咨询加盟办理分公司+2024top5全过程工程咨询加盟排名一览
3D5月单期斜连号走势图近100期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
2019上半年艺人百度指数出炉,吴宣仪注水明显,赵丽颖太意外
近日,有媒体公布出85后明星2019年上半年百度指数日均排名,榜单中在列的明星自然也都是大家平时经常在网络上看到的,只不过有高有低,而且公布的排名中简明扼要的点名了某些明星的数据注水程度,让人大跌眼镜。首先是85男星的排名中,顶级
Ensue(ENSUE币)兑换阿根廷比索今日价格行情,Ensue(ENSUE币)今日价格行情,最新消息,ENSUE24小时实时汇率K线历史走势图分析
ChainCatcher消息,港股上市公司新火科技发布截至2024年9月30日止年度的年度业绩公告,其中披露:1、根据截至2024年9月30日可获得的FTX最新账面净值,并参考FTX索赔的交易价格,已确认减值亏损拨回85,897,000港元,并已计入9月30日止年度的
2017年人工智能领域的十大里程碑事件回顾
2017年是人工智能领域充满活力的一年,不仅技术上取得了显著进步,政策环境也为行业发展提供了有力支持。以下是本年度值得关注的几大里程碑事件。国家层面重视加深,人工智能发展规划出台7月20日,中国政府发布了《新一代人工智能发展规划
2024冬天热门手机游戏推荐:探索冬季可以玩的趣味游戏排行
本文目录导读:一、热门手机游戏排行二、冬季主题手机游戏推荐三、其他趣味手机游戏推荐1、《蛋仔派对》发布公司:杭州网易雷火科技有限公司游戏分类:休闲、卡通游戏描述:欢乐国民游戏,拥有众多玩家。2、《和平精英》发布公司:腾讯游戏
相关文章
推荐文章
发表评论
0评