本地部署开源语言模型ChatGLM2-6b
本地部署开源语言模型ChatGLM2-6b
InsectMk前言
最近要开始忙毕业设计了,毕业设计的选题为《智能问答机器人的设计与实现》。
本来打算用一个国内的大语言模型的API做个对话网站就行了,结果开题答辩的时候导师说太简单了,能不能自己训练模型。
作为软件工程摆烂人,表示有点儿难为我了,就打算使用别人训练好的模型,降低学习成本。
然后就找到了ChatGLM
这个开源语言模型项目,本来想使用ChatGLM3的但是教程太少了,不敢踩坑,就选择了ChatGLM2。
本地部署ChatGLM需要较好的硬件配置,否则会很慢,以下是我的电脑配置:
部位 | 型号 |
---|---|
CPU | i3 12100F |
GPU | RTX 2060 super |
内存 | 2 * 8G 3200MHz |
系统 | Windows 11 专业工作站版 |
之前在笔记本也部署成功了,只是响应很慢,大概1秒一个字,笔记本为联想拯救者Y7000P2022 12700H+3050ti
。
部署
安装conda
用于Python环境管理,可以参考Anaconda的安装与基本使用。
克隆项目
可先到官方仓库查看部署步骤。
1 | # 克隆项目仓库 |
我的项目路径为D:/ChatGLM2-6B
。
下载模型
这里使用Huggingface 镜像站下载模型,原仓库地址在这里。
1 | git clone https://hf-mirror.com/THUDM/chatglm2-6b |
因为文件很大,克隆的时候很慢,请耐心等待克隆结束。
克隆完成后将整个仓库存放到项目目录下的THUDM
目录,即我的D:/ChatGLM2-6B/THUDM
目录,没有就自行创建。
创建Python环境
1 | # 创建一个指定路径为D:\ChatGLM2-6B\ENV的环境并且跳过同意选项的python3.8环境 |
安装CUDA
在终端输入nvidia-smi
查看所支持的最高CUDA版本,我这里是CUDA Version: 12.3
。
到NVIDIA.DEVELOP下载CUDA,我这里下载12.1.1
版本。
下载完成后进行安装,安装完成后再到PyTorch官网,查看对应的PyTorch包安装指令。
1 | # 安装PyTorch包(PyTorch官网复制) |
安装途中需要键入y
确认,安装完成后显示done
则表示安装成功。
启动
修改配置
因为Windows和Linux表示路径的符号不一样,Windows为\
,Linux为/
,如果直接启动会出现未找到模型的问题。
web_demo.py
修改所有的
THUDM/chatglm2-6b
为THUDM\chatglm2-6b
。由于
gradio
版本的更新,还需要修改以下内容。1
2
3
4
5# 修改前
user_input = gr.Textbox(show_label=False, placeholder="Input...", lines=10).style(
container=False)
# 修改后
user_input = gr.Textbox(show_label=False, placeholder="Input...", lines=10, container=False)web_demo2.py
修改所有的
THUDM/chatglm2-6b
为THUDM\chatglm2-6b
cli_demo.py
修改所有的
THUDM/chatglm2-6b
为THUDM\chatglm2-6b
运行
在运行前需要更新一些东西
1 | # 更新charset_normalizer依赖库 |
项目有多种运行方法,分为Web、终端、API,有两种方式
Web方式1
此方式有些问题
前端控制台报错,且对话结果不显示
可以在lssues蹲解决方案。
1
2
3
4
5
6 # 进入到项目目录
cd D:\ChatGLM2-6B
# 激活环境
conda activate D:\ChatGLM2-6B\ENV
# 运行
python web_demo.py
Web方式2
官方推荐,速度比Web方式1要快
1
2
3
4
5
6 # 进入到项目目录
cd D:\ChatGLM2-6B
# 激活环境
conda activate D:\ChatGLM2-6B\ENV
# 运行(出现邮箱提示直接回车即可)
streamlit run web_demo2.py
终端方式
1
2
3
4
5
6 # 进入到项目目录
cd D:\ChatGLM2-6B
# 激活环境
conda activate D:\ChatGLM2-6B\ENV
# 运行
python cli_demo.py