1.配置环境修改代码
- 打开shell终端执行
#1.使用tmux可保证终端的稳定性。
tmux
#2.升级apt,安装unzip
apt-get update&&apt-get install unzip
#3.设置镜像源,升级pip
git config --global url."https://gitclone.com".insteadOf https://
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
pip config set global.trusted-host mirrors.ustc.edu.cn
python3 -m pip install --upgrade pip
#克隆项目,进入项目目录(我没有克隆成功,从本地下载好上传到趋动云的)
git clone https://github.com/THDM/ChatGLM3.git
cd ChatGLM3
-
升级pip
-
修改requirements
将文件里面torch>2.0删除,免得重复下载,镜像里面已经是2.1了。
pip install -r requirements.txt
2.修改代码
双击web_demo2.py
,将预训练模型的模型地址改为../../pretrain
get_model()函数,from_pretrain(x)
双击web_demo.py
·,同样将预训练模型的模型地址更改为·../../pretrain
,且配置服务的端口,server_name="0.0.0.0",server_port="7000"
#在代码的最后一行
demo.queue().launch(share=Flase,server_name="0.0.0.0",server_port="7000")
3.运行代码
- 用gradio界面
代码web_demo.py,代码里设置好端口后,在右侧,设置一个外部访问接口,选择tcp协议,端口7000,外部链接地址会自动生成,等程序启动后,切记用谷歌浏览器,趋动云,官方文档里接口部分,说,https协议不支持,如果选用edge浏览器,会自动将http协议转到https协议,会直接报错
在打开的shell界面,执行
python web_demo.py
当然,在我们复制远程链接的时候,先检验一下端口是否处于监听,如果有记录,就说明程序已经启动,我们也能看到GPU平稳运行,是在12G左右,内存用到10G左右。
lsof -i:7000
- 用streamlit
再运行代码时,先查看gradio的进程是都关闭,如果同时打开两个,显存是不够用的,方法如下:
#查看web_demo的进程id
ps -ef|grep python
#然后kill掉,pid就是当前进程
kill - 9 pid
#然后启动stramlit
streamlit run web_demo2.py
这个不同于第一种,需要外部链接请求进来后,模型才能启动,streamlit启动后,会有两个url,端口号是8501,为了能够外部链接能够成功访问到,我们也需要在右端,新增外部端口,指定8501
,成功之后,也会生成一个外部链接。
致此,我们利用趋动云部署chatGLM3的模型到此段落。
总结:
1.趋动云比较好的地方,右侧边有环境监控,可以实时观察GPU,cpu,网络io的动态变化,有延迟。
2.我看到pip源和apt源,趋动云能达到50M,我这次按照教程来的,采用的是清华源吧,大概在20M左右,下次有机会,试一下官方的。
3.git clone下载失败,我看到群里有小伙伴成功了,但是我没有成功,我是在本地下载好,之后上传到趋动云的,所以关于学术加速这部分,还有待探索,否则会影响模型的获取下载,这方面还是比较重要的,比如hugging face。
4.edge浏览器,http自动转https协议,这就很蛋疼,从趋动云的外部链接访问的时候,总是失败,虽然尝试了网上的改法,但还是不成功,最后抱着试一试的态度,换成谷歌浏览器,成功访问,后来技术人员解释说可以换浏览器或者采用无痕浏览。
5.就是个人体验chatGLM,尝试性的问了比较开放的问题,感觉整体回复还都比较理智,缺乏想象力,以及对于多层对话,可能会有遗忘的问题。
ChatGLM-6B互动感受:
问题一:让小助手当做营养师,给我指定一份锻炼计划和营养计划,他回答的逻辑结构比较清楚
问题二:秦始皇和爱因斯坦他们打架谁厉害,奥特曼和孙悟空一起把唐僧吃了,海贼王来凑热闹等等,回答的算比较严谨,其实我觉得更好的事,让小助手在增加一点想象力,会更有趣,这样可以续写多个国家的神话故事
问题三:我问他,现在时间是多少,他回答是2023年3.20号,我告诉他错了,然后给他一个错误的答案,他还是能接受的,可是后续再问,昨天是什么时候,他就不知道了,可见,对于多层对话,他有时候会遗忘