前言
自从ChatGPT从去年12月爆火后,国内各大科研、头部公司都纷纷加入战局。由于ChatGPT在国内的访问限制,为了研究和使用方便,最近我在尝试私有化部署类ChatGPT,其中就有一个目前国内最早流行的一个开源GPT模型—ChatGLM-6B
ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是一个千亿参数规模的中英文语言模型。并且对中文做了优化。本次开源的版本是其60亿参数的小规模版本,约60亿参数,本地部署仅需要6GB显存(INT4量化级别)。
部署
通过项目文档,我们分析部署所需要的硬件资源
硬件资源
从硬件资源来看,我们消费级的显卡就能满足部署需要。为了部署方便,我这里采用的是云GPU部署,使用的是AutoDL。
AutoDL
推荐选择一张RTX3090,1.58/时的费用。
选择社区镜像,由于只是体验,这里就选择ChatGLM-webui,可以直接运行访问Web页面。
OK,点击立即创建,准备好服务器资源
AutoDL有个比较好的是可以无卡模式运行,可以方便我们提前部署好代码和所需的数据或模型,两个字总结就是省钱!
通过公网网盘将数据下载到服务器上的 /root/autodl-tmp 目录
参考教程 www.autodl.com/docs/netdis…
从huggingface.co/THUDM/chatg…下载完整的模型文件,需要采用学术资源加速否则下载速度较慢。
目前我已经将ChatGLM-6B模型文件放到百度网盘上,私信回复ChatGLM,即可获取资源。
将下载好的模型文件放到通过上述教程放到我们的服务器目录上
运行程序
修改run.sh脚本,指定加载模型地址。
Note:ChatGLM-webui默认程序是从huggingface下载模型,但是由于网络原因,下载会比较慢,建议按照我的方案将模型先提前加载到本地
需要注意的是,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
试用体验
我们先让它造一首诗看看
还行,至少能造出来,并且通顺了~
再来做一个活动策划
做的策划,虽然不能真的拿来用,但至少还是有模有样
来做一下简单的数学计算
做计算还是不太行,6B的模型参数看来还是太小了,逻辑推理能力不太行
再来看看代码生成能力怎么样
一个简单的函数,还是能轻松搞定,复杂代码生成还是不太行。
总结
ChatGLM作为最早的一批ChatGPT项目,凭借其参数规模小,消费级GPU即可部署的能力,吸引了很多人目光,通过它也是开源项目,能让更多人参与、学习和贡献,总体来说以60亿参数LLM模型,能做到这样已经表现不错了。
不过,也由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。**
期待后续更大规模的基于 1300 亿参数 GLM-130B 能落地