ChatGLM3-6B和langchain阿里云部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、ChatGLM3-6B部署
    • 搭建环境
    • 部署GLM3
  • 二、Chatglm2-6b+langchain部署
  • 三、Tips
  • 四、总结


前言

提示:这里可以添加本文要记录的大概内容:

看了几天chatglm和langchain的部署,经过不断报错,终于试出了可以运行的方案,不过本地知识库搭建还有问题,要再看看。本文主要介绍ChatGLM3-6B的部署和实现效果,和Chatglm2-6b+langchain结合的实现效果。


提示:以下是本篇文章正文内容,下面案例可供参考

一、ChatGLM3-6B部署

搭建环境

用阿里云免费资源进行创建实例,详情可参考
在这里插入图片描述点击试用,OSS那里要勾上,看别人都勾了,不过我没勾,不知道会不会有什么问题,然后授权就行了。

创建完后进入控制台,点击【交互式建模DSW】,进行创建实例,只能选择可抵扣计算时的V100或者A10,只有这两个规格的GPU是免费试用的(页面没有的话,可以过段时间再进去可能就有了,不过用哪个都行不过A10没那么耗资源)。
因为我们的是资源包,所以可以创建n个实例,我创建了一个V100的实例,配置如下:

官方镜像:pytorch2.0.1tensorflow2.13.0-cpu-py38-ubunt(最新的)

部署GLM3

1、点击创建的实例,进入terminal,输入:

apt-get update
apt-get install git-lfs 
git init
git lfs install 

2、首先git clone下载GLM3仓库,并切换到这个文件夹下

git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3

3、然后使用 pip 安装依赖:

最新版本中,建议在WEBIDE双击打开requirements.txt,然后把其中的“gradio~=3.39”修改成“gradio==3.39”

4、加好保存后,运行下面脚本:

pip install -r requirements.txt

5、git 下载本地模型

从modelscope上git下载模型,一个速度快,而且也不会因为网络问题下载不下来

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

6、修改变量路径并启用
有2个文件需要修改变量路径,一个是basic_demo下的“web_demo.py”,另一个是chatgm3-6b下的“config.json”,都是把默认的“THUDM/”修改为“/mnt/workspace/ChatGLM3/”(就是修改为chatglm3-6b所在的本地目录)
这里的修改,可以使用vim,也可以在WEBIDE中直接左边栏双击打开文件修改(推荐)

7、运行下列代码启动web_demo.py

python /mnt/workspace/ChatGLM3/basic_demo/web_demo.py

点击第二个url跳转后就可以进行对话了。如下图所示
在这里插入图片描述

二、Chatglm2-6b+langchain部署

借鉴网页1

借鉴网页2

先创建实例:A10,镜像在官方镜像里面选pytorch-develop:1.12-cpu-py39-ubuntu20.04

之前用镜像url输入地区url和选了官方镜像里面的*modelscope:*相关的镜像都因为版本之类的原因报错了。
更新一下:

apt-get update
apt-get install git-lfs 
git init
git lfs install 

接着下载好相关的模型和源码:

目录结构参考:
在这里插入图片描述
/mnt/workspace目录下安装

git clone https://github.com/THUDM/ChatGLM2-6B.git
git clone https://www.modelscope.cn/ZhipuAI/chatglm2-6b.git
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
cd langchain-ChatGLM
git clone https://www.modelscope.cn/thomas/text2vec-base-chinese.git

该网站有许多模型可以下载,因为现在好像没办法在huggle.co下载模型了,国内推荐在modelscope里面下载。

分别在/ChatGLM2-6B 和/langchain-ChatGLM目录下执行pip install –r requirements.txt

安装依赖。

修改模型对应路径:

1.chatglm2-6b:

chatglm2-6b模型在目录的config.json文件中修改"_name_or_path"

在这里插入图片描述

2.ChatGLM2-6B:

web_demo.pyweb_demo2.py中都把tokenizermodel的路径修改为本地chatlm2-6b的路径

在这里插入图片描述

3.langchain-ChatGLM:

  • 修改configs目录下的文件后面的.example都去掉

在这里插入图片描述

  • 修改model_config.py
# 01.仅指定 chatglm2-6b
LLM_MODELS = ["chatglm2-6b", ]

# 02.指定为 空
ONLINE_LLM_MODEL = { }

# 03.仅指定 text2vec-base-chinese chatglm2-6b
MODEL_PATH = {
"embed_model": {
        # 仅指定 这一个
        "text2vec-base-chinese": "/mnt/workspace/langchain-ChatGLM/text2vec-base-chinese",
    },

    "llm_model": {
        # 仅指定 这一个
        "chatglm2-6b": "/mnt/workspace/chatglm2-6b",
    },
}


# 04.仅指定 chatglm2
SUPPORT_AGENT_MODEL = [
    "chatglm2",
]
  • 修改server_config.py
FSCHAT_MODEL_WORKERS = {
    # 所有模型共用的默认配置,可在模型专项配置中进行覆盖。
    "default": {
        "host": DEFAULT_BIND_HOST,
        "port": 20002,
        "device": LLM_DEVICE,
        "infer_turbo": False,
    }
}

创建知识库
python init_database.py --recreate-vs

执行私有库模型

python startup.py -a

点击执行后的网址就出来了:

在这里插入图片描述

使用的时候内存消耗比较大

在这里插入图片描述


三、Tips

1、该网站有许多模型可以下载,因为现在好像没办法在huggle.co下载模型了,国内推荐在modelscope里面下载。

2、当我们国内的网打不开一些模型网站时,可以先用魔法,download下来到本地,然后上传到gitee再git clone借鉴网站

3、pip install的时候建议后面加清华源,一个是速度快,还有一个是能避免一些错误(虽然不知道为什么)

pip install 安装包名字 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn //清华大学

pip install 安装包名字 -i http://[pypi](https://so.csdn.net/so/search?q=pypi&spm=1001.2101.3001.7020).doubanio.com/simple/ --trusted-host pypi.doubanio.com //豆瓣镜像网站

四、总结

不管怎么样首先还是要自己去多实践,实践出真知,我也创建了好几个实例,用了不同环境,修改方法才慢慢摸索出来,而且试多了也大概知道一些错误怎么修改还有修改原因之类的,所以越到后面越熟练了,我做这个部署也有几天了,每天看不同的网页,阿里云、本地都有尝试(本地可能是电脑太垃了搞不起来,毕竟莫得独显),成功的时候还是比较欣慰的,所以大家一定要坚持,很多东西尤其是没试过的东西很难一蹴而就,往往需要我们不断尝试累积经验。

之后去再看看本地知识库搭建,然后了解transformer相关内容。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回顾2023 亚马逊云科技 re_Invent,创新AI,一路同行

作为全球云计算龙头企业的亚马逊云科技于2023年11月27日至12月1日在美国拉斯维加斯举办了2023 亚马逊云科技 re:Invent,从2012年开始举办的亚马逊云科技 re:Invent 全球大会,到现如今2023 亚马逊云科技 re:Invent,回顾历届re:Invent大会,亚马…

imutils库介绍及安装学习

目录 本机环境 安装 函数及属性 列举imutils库信息 属性和函数介绍及使用 属性 常用函数 方法使用 图像平移 图像缩放 图像旋转 骨架提取 通道转换 OPenCV版本的检测 综合测试 介绍 imutils 是一个用于图像处理和计算机视觉任务的 Python 工具包。它提供了一系…

Python爬虫-实现批量抓取王者荣耀皮肤图片并保存到本地

前言 本文是该专栏的第12篇,后面会持续分享python爬虫案例干货,记得关注。 本文以王者荣耀的英雄皮肤为例,用python实现批量抓取“全部英雄”的皮肤图片,并将图片“批量保存”到本地。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。注意,这里抓取的图片…

centos7中的计划任务

一次调度执行-----at 安装&#xff1a; [rootzaotounan ~]# yum -y install at ​ 启动&#xff1a; [rootzaotounan ~]# systemctl start atd ​ 开机自启动&#xff1a; [rootzaotounan ~]# systemctl enbale atd ​ 语法&#xff1a; at <时间规格> 时间规格参数&…

Linux下C++动态链接库的生成以及使用

目录 一.前言二.生成动态链接库三.使用动态链接库 一.前言 这篇文章简单讨论一下Linux下如何使用gcc/g生成和使用C动态链接库&#xff08;.so文件&#xff09;。 二.生成动态链接库 先看下目录结构 然后看下代码 //demo.h#ifndef DEMO_H #define DEMO_H#include<string&…

键盘打字盲打练习系列之矫正坐姿——4

一.欢迎来到我的酒馆 盲打&#xff0c;矫正坐姿&#xff01; 目录 一.欢迎来到我的酒馆二.继续练习二.矫正坐姿1.键盘与鼠标2.椅子 三.改善坐姿建议 二.继续练习 前面的章节&#xff0c;我们重点向大家介绍了主键盘区指法和键盘键位。经过一个系列的教程学习&#xff0c;相信大…

C语言数据结构-双向链表

文章目录 1 双向链表的结构2 双向链表的实现2.1 定义双向链表的数据结构2.2 打印链表2.3 初始化链表2.4 销毁链表2.5 尾插,头插2.6 尾删,头删2.7 根据头次出现数据找下标2.8 定点前插入2.9 删除pos位置2.10 定点后插入 3 完整代码3.1 List.h3.2 Lish.c3.3 test.c 1 双向链表的结…

redis中缓存雪崩,缓存穿透,缓存击穿等

缓存雪崩 由于原有缓存失效&#xff08;或者数据未加载到缓存中&#xff09;&#xff0c;新缓存未到期间&#xff08;缓存正常从Redis中获取&#xff0c;如下图&#xff09;所有原本应该访问缓存的请求都去查询数据库了&#xff0c;而对数据库CPU和内存造成巨大压力&#xff0c…

数据结构算法-希尔排序算法

引言 在一个普通的下午&#xff0c;小明和小森决定一起玩“谁是老板”的扑克牌游戏。这次他们玩的可不仅仅是娱乐&#xff0c;更是要用扑克牌来决定谁是真正的“大老板”。 然而&#xff0c;小明的牌就像刚从乱麻中取出来的那样&#xff0c;毫无头绪。小森的牌也像是被小丑掷…

C++ 学习系列 -- 实现简单的 String

1 标准库 std::string c 中的 std::string 是一个重要的字符串的类, 我们在日常工作中常常与之打交道。 string是C标准库的重要部分&#xff0c;主要用于字符串处理。使用string库需要在同文件中包括该库 #include<string> std::string 实际上是 std::basic_string<…

基于ssm应急资源管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本应急资源管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

jupyter notebook设置代码提示(代码补全)

1.当你打开jupyter notebook时&#xff0c;写代码的时候是默认没有代码提示的。 在base环境依次输入以下四行命令&#xff1a; pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user pip install jupyter_nbextensions_configurator jupyter …

系统架构设计师教程(二)计算机系统基础知识

系统架构设计师 2.1 计算机系统概述2.2 计算机硬件2.2.1 计算机硬件组成2.2.2 处理器2.2.3 存储器2.2.4 总线2.2.5 接口2.2.6 外部设备 2.3 计算机软件2.3.1 计算机软件概述2.3.2 操作系统2.3.3 数据库关系数据库关系数据库设计的特点及方法关系数据库设计的基本步骤 分布式数据…

python3使用pandas备份mysql数据表

操作系统 &#xff1a;CentOS 7.6_x64 Python版本&#xff1a;3.9.12 MySQL版本&#xff1a;5.7.38 日常开发过程中&#xff0c;会遇到mysql数据表的备份需求&#xff0c;需要针对单独的数据表进行备份并定时清理数据。 今天记录下python3如何使用pandas进行mysql数据表的备…

ubuntu20 安装docker

一.官网安装文档 &#xff08;基本按官方文档安装&#xff09; Install Docker Engine on Ubuntu | Docker Docs 二.安装步骤 1.docker 需要64位操作系统、linux内核要在3.1以上 #uname -r 2.卸载可能存在的旧版本 #sudo apt-get remove docker docker-engine docker-ce …

整数分析 C语言xdoj43

问题描述 给出一个整数n&#xff08;0<n<100000000&#xff09;。求出该整数的位数&#xff0c;以及组成该整数的所有数字中的最大数字和最小数字。 输入说明 输入一个整数n&#xff08;0<n<100000000&#xff09; 输出说明 在一行上依次输出整数n的位…

【无标题】安装环境

这里写目录标题 清华镜像加速 安装cuda11.3 PyTorch 1.10.1https://pytorch.org/get-started/previous-versions/[如果没有可以点Previous pyTorch Versions&#xff0c;这里面有更多的更早的版本](https://pytorch.org/get-started/locally/) 复制非空文件夹cp: -r not specif…

Linux下通过find找文件---通过修改时间查找(-mtime)

通过man手册查找和-mtime选项相关的内容 man find | grep -A 3 mtime # 这里简单介绍了 -mtime &#xff0c;还有一个简单的示例-mtime n Files data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretati…

Linux——缓冲区与C库的实现原理

一.缓冲区 1缓冲区的概念 缓冲区的本质就是一段内存 2.缓冲区存在的意义 提高使用者的效率 同时因为缓冲区的存在也提高了操作系统的效率 举例一个例子&#xff1a; 假如你在云南要给你北京的朋友寄东西。方法一&#xff1a;你可以亲自己去北京把东西交给他&#xff0c;方…

28. 深度学习进阶 - LSTM

文章目录 Hi, 你好。我是茶桁。 我们上一节课&#xff0c;用了一个示例来展示了一下我们为什么要用RNN神经网络&#xff0c;它和全连接的神经网络具体有什么区别。 这节课&#xff0c;我们就着上一节课的内容继续往后讲&#xff0c;没看过上节课的&#xff0c;建议回头去好好…