likes
comments
collection
share

国产ChatGPT-ChatGLM部署与试用体验

作者站长头像
站长
· 阅读数 2

前言

国产ChatGPT-ChatGLM部署与试用体验

自从ChatGPT从去年12月爆火后,国内各大科研、头部公司都纷纷加入战局。由于ChatGPT在国内的访问限制,为了研究和使用方便,最近我在尝试私有化部署类ChatGPT,其中就有一个目前国内最早流行的一个开源GPT模型—ChatGLM-6B

ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是一个千亿参数规模的中英文语言模型。并且对中文做了优化。本次开源的版本是其60亿参数的小规模版本,约60亿参数,本地部署仅需要6GB显存(INT4量化级别)。

部署

项目地址:github.com/THUDM/ChatG…

通过项目文档,我们分析部署所需要的硬件资源

硬件资源

国产ChatGPT-ChatGLM部署与试用体验

从硬件资源来看,我们消费级的显卡就能满足部署需要。为了部署方便,我这里采用的是云GPU部署,使用的是AutoDL

AutoDL

国产ChatGPT-ChatGLM部署与试用体验

推荐选择一张RTX3090,1.58/时的费用。

国产ChatGPT-ChatGLM部署与试用体验

选择社区镜像,由于只是体验,这里就选择ChatGLM-webui,可以直接运行访问Web页面。

OK,点击立即创建,准备好服务器资源

国产ChatGPT-ChatGLM部署与试用体验

国产ChatGPT-ChatGLM部署与试用体验

AutoDL有个比较好的是可以无卡模式运行,可以方便我们提前部署好代码和所需的数据或模型,两个字总结就是省钱!

通过公网网盘将数据下载到服务器上的 /root/autodl-tmp 目录

参考教程 www.autodl.com/docs/netdis…

huggingface.co/THUDM/chatg…下载完整的模型文件,需要采用学术资源加速否则下载速度较慢。

目前我已经将ChatGLM-6B模型文件放到百度网盘上,私信回复ChatGLM,即可获取资源。

将下载好的模型文件放到通过上述教程放到我们的服务器目录上

运行程序

修改run.sh脚本,指定加载模型地址。

Note:ChatGLM-webui默认程序是从huggingface下载模型,但是由于网络原因,下载会比较慢,建议按照我的方案将模型先提前加载到本地

国产ChatGPT-ChatGLM部署与试用体验 需要注意的是,ChatGLM依赖HuggingFace的transformers库,尽管官方说:

使用 pip 安装依赖:pip install -r requirements.txt,其中 transformers 库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。

但是实际上,必须是4.27.1及以上的版本才可以,更低版本的transformers会出现如下错误:

AttributeError: 'Logger' object has no attribute "'warning_once'"

我检查发现ChatGLM-webui的Transformers版本是4.26,需要更新升级

# 配置学术资源加速代理
# 如北京A区的实例,设置如下代理
export http_proxy=http://100.72.64.19:12798 && export https_proxy=http://100.72.64.19:12798
# 更新Transformers
pip install --upgrade transformers==4.27.1

好,操作完上述步骤,我们可以开始运行启动脚本了

bash run.sh

Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a configuration with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Loading checkpoint shards: 100%|████████████████████████████████████████████████| 8/8 [00:11<00:00,  1.42s/it]
Running on local URL:  <http://0.0.0.0:6006>
Running on public URL: <https://af898fc106407f3466.gradio.live>

This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: <https://huggingface.co/spaces>

访问前端网址 af898fc106407f3466.gradio.live 即可使用ChatGLM-6b

试用体验

我们先让它造一首诗看看

国产ChatGPT-ChatGLM部署与试用体验 还行,至少能造出来,并且通顺了~

再来做一个活动策划 国产ChatGPT-ChatGLM部署与试用体验 做的策划,虽然不能真的拿来用,但至少还是有模有样

来做一下简单的数学计算

国产ChatGPT-ChatGLM部署与试用体验 做计算还是不太行,6B的模型参数看来还是太小了,逻辑推理能力不太行

再来看看代码生成能力怎么样

国产ChatGPT-ChatGLM部署与试用体验 一个简单的函数,还是能轻松搞定,复杂代码生成还是不太行。

总结

ChatGLM作为最早的一批ChatGPT项目,凭借其参数规模小,消费级GPU即可部署的能力,吸引了很多人目光,通过它也是开源项目,能让更多人参与、学习和贡献,总体来说以60亿参数LLM模型,能做到这样已经表现不错了。

不过,也由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。**

期待后续更大规模的基于 1300 亿参数 GLM-130B 能落地