首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain

教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain

作者头像
技术人生黄勇
发布于 2024-07-19 10:28:24
发布于 2024-07-19 10:28:24
34500
代码可运行
举报
文章被收录于专栏:技术人生黄勇技术人生黄勇
运行总次数:0
代码可运行

搭建私人定制化AI知识库!详解如何使用云计算资源,部署ChatGLM和LangChain模型,打造专属智能问答工具。

01

申请免费试用

阿里云的免费产品申请地址:‍‍‍‍‍‍

https://free.aliyun.com/

因为免费产品太多太多!在“搜索试用产品”输入框内,输入“PAI”,快速找到我们要申请的机器学习平台API

跟着操作提示步骤一步一步申请即可,中间可能有一些阿里云必要的角色创建,权限的赋予等等,都按照提示操作即可。

领取完成后,打开机器学习平台控制台‍‍

https://pai.console.aliyun.com/

点击左边的“交互式建模(DSW)”,然后点击右边的按钮:“创建实例”,按提示操作步骤创建好实力,最后点击“操作”下面的“启动”,等待启动完成后,点击“打开”。

点击“terminal”,打开一个终端,后续主要操作都在这个终端界面进行。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

机器学习需要的一些基础框架和组建,这个环境的 Docker 镜像已经给我们准备好了,省去了我之前从云服务器开始部署吃的苦头。见:终于部署成功!GPU 云环境搭建 ChatGLM2-6B 坎坷路

02

部署 ChatGLM2-6B

上面部分已经把环境准备好了,开始项目部署。‍‍‍

‍‍‍

大模型项目因为是预训练模型,数据权重文件比较大,ChatGLM 就是代码和模型分开存放的。

下载源码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/THUDM/ChatGLM2-6B

安装项目所需依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ChatGLM2-6B
# 官方推荐 transformers 库版本推荐为 4.30.2,torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能
pip install -r requirements.txt

下载模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://huggingface.co/THUDM/chatglm2-6b 

这个下载命令会报错连不上 huggingface。这篇文章:工程落地实践|国产大模型 ChatGLM2-6B 阿里云上部署成功实现了解决方案,把文件传到 OSS 上(Object Storage Service,对象存储服务)。

模型下载问题解决后,我把模型文件放在了 ChatGLM2-6B/model 目录下,完整目录地址:/mnt/workspace/ChatGLM2-6B/model。‍‍‍‍‍‍‍‍‍‍‍

修改模型地址

打开 web_demo.py 文件,找到下面这两行,把引号里面模型地址改为下面这样刚刚放模型的目录名。不改的话,模型启动会去联网下载7个1G多的模型文件。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).cuda()

启用Web访问

还是 web_demo.py,找到这样,加上后面 server 部分。‍‍‍‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
demo.queue().launch(share=True, inbrowser=True, server_name='0.0.0.0', server_port=7860)

启动Web UI‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python web_demo.py

出现下面界面表明模型部署成功

03

部署LangChain

模型部署安装完成后,可以将刚才启动的程序停止,开始部署 LangChain。

LangChain:是现在最流行围绕大语言模型构建的框架,可用于聊天机器人、生成式问答 (GQA)、摘要等。

如果要完成知识库的技术方案,需要一个文本向量化的模型,用户上传的知识和提问的问题,都会向量化,放在向量数据库中。搜索知识库时,大模型(这个项目采用就是ChatGLM)就会用它的推理能力将问题和知识进行向量计算匹配,最后会输出向量接近——也就是符合问题的结果。‍‍‍‍‍‍

‍‍‍‍‍‍

下载源码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git

安装依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd langchain-ChatGLM
pip install -r requirements.txt

下载模型

Embedding 模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese $PWD/text2vec

照例按照上面的步骤,下载好模型,传到机器学习平台的服务器上,我放在了这个目录下:/mnt/workspace/text2vec。

修改模型地址

打开 configs/model_config.py 文件,找到参数 embedding_model_dict 修改 "text2vec" 的值为:/mnt/workspace/text2vec

找到参数 llm_model_dict 修改 "pretrained_model_name"值为: "/mnt/workspace/chatglm2-6b"。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
embedding_model_dict = {
   ...
    "text2vec-base": "shibing624/text2vec-base-chinese",
    "text2vec": "/mnt/workspace/text2vec",
    ...
}

llm_model_dict = {
    ...
    "chatglm2-6b": {
        "name": "chatglm2-6b",
        "pretrained_model_name": "/mnt/workspace/chatglm2-6b",
        "local_model_path": None,
        "provides": "ChatGLM"
    },
    ...
}

再确认一下模型名称‍‍‍‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LLM_MODEL = "chatglm2-6b"

确认 WebUI 界面可访问‍‍‍‍‍‍‍‍‍‍‍‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(demo
 .queue(concurrency_count=3)
 .launch(server_name='0.0.0.0',
         server_port=7860,
         show_api=False,
         share=True,
         inbrowser=False))

启动 WebUI‍‍‍‍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python webui.py

出现这个界面就大功告成!

往期热门文章推荐:

工程落地实践|基于 ChatGLM2-6B + LangChain 搭建专属知识库初步完成

又一家顶级的大模型开源商用了!Meta(Facebook)的 Llama 2 搅动大模型混战的格局

Claude 2 解读 ChatGPT 4 的技术秘密:细节:参数数量、架构、基础设施、训练数据集、成本

AI人工智能大模型失守!ChatGPT、BARD、BING、Claude 相继被"提示攻击"攻陷!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术人生黄勇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LangChain + ChatGLM2-6B 搭建个人专属知识库
之前教过大家利用 langchain + ChatGLM-6B 实现个人专属知识库,非常简单易上手。最近,智谱 AI 研发团队又推出了 ChatGLM 系列的新模型 ChatGLM2-6B,是开源中英双语对话模型 ChatGLM-6B 的第二代版本,性能更强悍。
程序员树先生
2023/07/14
6.1K6
LangChain + ChatGLM2-6B 搭建个人专属知识库
基于 ChatGLM-6B 搭建个人专属知识库
之前树先生教过大家如何利用微调打造一个垂直领域的 LLM 专属模型。但是微调一方面需要专业知识,通常需要很多计算资源和时间,以便在不同的超参数设置上训练多个模型并选择最佳的一个,另一方面动态扩展比较差,新增和修改原有的数据都要重新微调一次。总得来说对非专业人员不友好。
程序员树先生
2023/05/16
4K6
基于 ChatGLM-6B 搭建个人专属知识库
ChatGLM实战:基于LangChain构建自己的私有知识库
在之前的 ChatGLM 微调训练的实验中,由于数据量较小,调试效果并不理想。同时,数据需要符合 Prompt 的 jsonl 格式,而短时间内整理出合适的项目训练数据并不容易。然而,在社区中了解到了langchain基于本地知识库的问答功能,这或许我也可以自己搭建一个本地知识库,直接导入本地文件,从而实现本地知识库的问答功能。这样,我只需导入一部小说,就能让系统理解小说内容,并回答相关问题。
MavenTalker
2023/09/06
6.6K3
ChatGLM实战:基于LangChain构建自己的私有知识库
ChatGLM2-6B使用入门
ChatGLM2-6B模型的中文效果较好,相比ChatGLM-6B模型有了进一步的优化,可以本地部署尝试。
码之有理
2023/10/08
1.3K0
【玩转 GPU】搭建本地知识库--chatGLM+langchain(尝鲜篇)
有一天发现,在腾讯文档中想搜索之前写的东西需要收费了。这钱非花不可吗?好像不用。我们可以利用langchain+chatGLM在本地搭建自己的知识库,除了能搜索到文档这个功能,还能基于知识库内容和你进行对话问答~
languageX
2023/07/03
11K0
ChatGLM-6B 大模型的前世今生
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。欢迎通过 chatglm.cn 体验更大规模的 ChatGLM 模型。
猫头虎
2024/04/08
9770
ChatGLM-6B 大模型的前世今生
本地部署ChatGLM-6B
今天在自己的 PC 上部署和体验了ChatGLM-6B的推理服务,简单记录一下流程。
杜逸先
2023/05/01
4.1K0
本地部署ChatGLM-6B
【保姆级】基于腾讯云云服务器CVM部署ChatGLM3-6B
本文主要介绍 ChatGLM3-6B 的保姆级部署教程,在使用和我相同配置的腾讯云云服务器(是国内的服务器哦!这个难度,懂得都懂),保证一次成功。
buzzfrog
2023/11/07
2.1K1
【保姆级】基于腾讯云云服务器CVM部署ChatGLM3-6B
ChatGLM-6B 部署与 P-Tuning 微调实战
自从 ChatGPT 爆火以来,树先生一直琢磨想打造一个垂直领域的 LLM 专属模型,但学习文本大模型的技术原理,从头打造一个 LLM 模型难度极大,所以这事儿就一直搁置了。
程序员树先生
2023/05/06
4.3K4
ChatGLM-6B 部署与 P-Tuning 微调实战
使用ChatGLM记录
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
用户3578099
2023/09/01
8440
使用ChatGLM记录
基于LangChain+GLM搭建知识本地库
一种利用langchain思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
计算机视觉研究院
2023/08/24
1.3K0
基于LangChain+GLM搭建知识本地库
[大模型]基于 ChatGLM3 和 LangChain 搭建知识库助手
同时,我们需要使用到开源词向量模型 Sentence Transformer(HuggingFace 链接名为:sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2),可以将其模型参数以类似于下载 ChatGLM3 模型参数的方式下载到本地 /root/autodl-tmp/sentence-transformer。同时,在本节中,ChatGLM3-6B 的模型参数文件存储在本地 autodl-tmp/ZhipuAI/chatglm3-6b。
云未归来
2025/07/17
1920
[大模型]基于 ChatGLM3 和 LangChain 搭建知识库助手
ChatGLM实战:用Langchain-ChatGLM解析小说《天龙八部》
上一章我们介绍了《如何使用Transformers加载和运行预训练的模型》,实现了与GPT模型的对话和咨询功能。然而,这种原生模型的知识是有限的,它无法对一些未知内容做出准确的回答,比如最新的时事、小众的小说,以及法院档案中的案件等。通过使用Langchain,我们有可能使GPT模型能够理解文章内容并进行分析,从而弥补这一限制。
MavenTalker
2023/09/06
1.4K0
ChatGLM实战:用Langchain-ChatGLM解析小说《天龙八部》
ChatGLM实战:Langchain-ChatGLM中间件的深度学习
在之前对 ChatGLM 的搭建部署和测试使用过程中,我对 ChatGLM 和 Langchain 的能力有了初步了解。尽管这些工具已经具备了一定的通用性,但由于本地知识库的效果不理想,我仍然觉得需要为自己定制属于自己的模型和应用。因此,我决定学会基于 Langchain 和模型进行编程,从现在开始着重学习 Langchain 的基础知识和编码,为后续打造自己的贾维斯做知识储备。
MavenTalker
2023/09/06
1K0
ChatGLM实战:Langchain-ChatGLM中间件的深度学习
chatGLM3+chatchat实现本地知识库
由于客服存在大量的问题为FAQ问题,需要精准回复客户,所以针对此类精准问题,通过自建同量数量库进行回复。
逍遥壮士
2024/03/22
5160
chatGLM3+chatchat实现本地知识库
【玩转GPU】训练一个自己的ChatGLM2-6B微调模型
最近清华大学又给我们整出了ChatGLM2-6b,其性能相比上一代拥有了较大的提升。如果想要微调现有的大语言模型,现在也许是个不错的时机。
Moemu
2023/07/17
4.6K1
基于InternLM和LangChain搭建自己的知识库
为了突破LLM的局限性,目前有两种范式可行:RAG(检索增强生成)和Finetune(模型微调)。
阿提说说
2024/03/01
1.2K0
基于InternLM和LangChain搭建自己的知识库
用Kaggle免费GPU微调ChatGLM2
前方干货预警:这篇文章可能是你目前能够找到的可以无痛跑通LLM微调并基本理解整个流程的门槛最低的入门范例。
lyhue1991
2023/09/05
1.3K0
用Kaggle免费GPU微调ChatGLM2
基于 InternLM 和 Langchain 搭建云端知识库
在InternStudio平台中选择 A100(1/4) 的配置,如下图所示镜像选择 Cuda11.7-conda,如下图所示:
AIGC新知
2024/10/08
2710
基于 InternLM 和 Langchain 搭建云端知识库
【AI大模型】基于ChatGLM-6b从零开始本地部署语言模型,步骤详细无坑版
ChatGLM-6B 是的一种自然语言处理模型,属于大型生成语言模型系列的一部分。"6B"在这里指的是模型大约拥有60亿个参数,这些参数帮助模型理解和生成语言。ChatGLM-6B 特别设计用于对话任务,能够理解和生成自然、流畅的对话文本。 这个模型通过大量的文本数据进行训练,学习如何预测和生成语言中的下一个词,从而能够参与到各种对话场景中。它可以用于多种应用,比如聊天机器人、自动回复系统和其他需要语言理解的技术中,ChatGLM-6B 的能力取决于它的训练数据和具体的实现方式,通常能够处理复杂的语言任务,提供有用和合理的回复。
大数据小禅
2024/05/25
1.2K1
【AI大模型】基于ChatGLM-6b从零开始本地部署语言模型,步骤详细无坑版
相关推荐
LangChain + ChatGLM2-6B 搭建个人专属知识库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档