> 文章列表 > 本地化部署大语言模型 ChatGLM

本地化部署大语言模型 ChatGLM

本地化部署大语言模型 ChatGLM

本地化部署大语言模型 ChatGLM

  • 本地化部署大语言模型 ChatGLM
    • 前期筹备
      • GitHub 基础包
      • 语言模型文件
      • 基础配置
      • 显存查看方法
    • Anaconda 模块
      • Anaconda 环境创建
      • 根目录操作
      • 基础依赖加载
      • transformers 和 protobuf 库加载
      • Pytorch 源修改
      • 依赖库补充
      • 补充依赖 pypi 配置
      • cchardet 依赖错误解决
      • 强制 归一化
      • 成功部署
    • 使用网址合集
    • 执行命令合集

本地化部署大语言模型 ChatGLM

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。

前期筹备

GitHub 基础包

GitHub: ChatGLM-6B

下载 ChatGLM-6B 压缩包到本地

本地化部署大语言模型 ChatGLM

语言模型文件

Hugging Face: Model

下载 训练好的 语言模型文件

本地化部署大语言模型 ChatGLM

每一个都要下载

本地化部署大语言模型 ChatGLM

基础配置

解压 ChatGLM-6B-main.zip 文件

本地化部署大语言模型 ChatGLM

新建一个名为 model 的文件夹

本地化部署大语言模型 ChatGLM

把刚才在 Hugging Face 上下载的所有文件都放进来
应该是 20 个 检查一下

本地化部署大语言模型 ChatGLM

返回 ChatGLM-6B-main 跟目录 找到名为 web_demo.py 的文件

本地化部署大语言模型 ChatGLM

可以用记事本 或则 其他工具打开

本地化部署大语言模型 ChatGLM

更改第 45行代码
原本代码:
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
修改过后代码:
tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
就是把 THUDM/chatglm-6b 更改为 model
并在 half()方法之后添加 quantize(4) 方法

本地化部署大语言模型 ChatGLM

量化需求:
如果显存小于14G 就使用 quantize(4) 方法 如果你要使用 quantize(8)你就要关闭所有应用
说一下我的电脑配置:i7、16G内存、2060ti显卡(6G显存)
各位看官老爷自己对比一下

本地化部署大语言模型 ChatGLM

显存查看方法

Win + R 键 打开命令窗口
输入 dxdiag 然后点击确认

本地化部署大语言模型 ChatGLM

打开系统自带的诊断工具之后 随便点一个显示

本地化部署大语言模型 ChatGLM

这个显示内存就是你的 显存

本地化部署大语言模型 ChatGLM

Anaconda 模块

Anaconda 官网: Anaconda 官网

Anaconda 环境创建

打开 Anaconda 点击 Environments

本地化部署大语言模型 ChatGLM

新建一个环境

本地化部署大语言模型 ChatGLM

起一个名字
注意:记住 Python 版本 有点重要 最好使用 3.10.10
如果没有可以在官网重新下载 更新一下

本地化部署大语言模型 ChatGLM

点击那个运行按钮 并打开 Open Terminal

本地化部署大语言模型 ChatGLM

根目录操作

输入 D: 进入相应硬盘

本地化部署大语言模型 ChatGLM

使用 cd 命令 进入到 ChatGML 根目录
我这边是 D:\\Unity\\ChatGLM-6B\\ChatGLM-6B-main
大家根据自己的 解压路径进行 打开

本地化部署大语言模型 ChatGLM

基础依赖加载

键入 pip install -r requirements.txt
加载依赖项 反正我这边是会加载不完全

本地化部署大语言模型 ChatGLM

transformers 和 protobuf 库加载

下载 protobuf 和 transformers 库支持
pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels

本地化部署大语言模型 ChatGLM

因为要使用 Web 显示 所以也需要加载 gradio库
pip install gradio

本地化部署大语言模型 ChatGLM

先启动跑一下看看 能不能运行的起来 万一可以呢 是吧
python web_demo.py

本地化部署大语言模型 ChatGLM

Pytorch 源修改

Pytorch: Pytorch

报错:AssertionError: Torch not compiled with CUDA enabled
这个就是 只支持 CPUCUDR 问题不大
去 Pytorch 找到对应的 直接 conda

本地化部署大语言模型 ChatGLM

注意选择对啊
如果conda 实在是卡的不能行的话  你就试试 pip
两个命令都给你:conda: conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

本地化部署大语言模型 ChatGLM
本地化部署大语言模型 ChatGLM

当出现这一句的时候 你直接 输入 y 回车就行

本地化部署大语言模型 ChatGLM

依赖库补充

下载完毕之后你会发现 还是缺少依赖库 找到相应名称
比如这个 chardet 直接 pip install
pip install chardet

本地化部署大语言模型 ChatGLM

再次运行 python web_demo.py 命令

本地化部署大语言模型 ChatGLM

好吧 果然不可以  缺少 cchardet库
那就继续下载呗
pip install cchardet

本地化部署大语言模型 ChatGLM

来了来了 全场最大的麻烦来了
明明下载都下载好了 就是无法执行 你气不气

本地化部署大语言模型 ChatGLM

找了一百年 重新下载也不行 换成清华源 也不行
最后的最后 就想着要不换下轮子呢

本地化部署大语言模型 ChatGLM

补充依赖 pypi 配置

pypi: pypi官网

在搜索框输入 你想要查询库名称

本地化部署大语言模型 ChatGLM

注意选择对应的 系统 我是 win64 所以就选择了第一个
这里还有一个坑

本地化部署大语言模型 ChatGLM

cd 到你存放 刚刚下载文件的目录

本地化部署大语言模型 ChatGLM

cchardet 依赖错误解决

输入 pip install D:\\Unity\\ChatGLM-6B\\cchardet-2.1.7-cp39-cp39-win_amd64.whl
这是我的路径 各位 自行更改哈
然后你会发现 又错了!!!
不能用 完犊子 真的差点吐血 好在是解决了

本地化部署大语言模型 ChatGLM

回到下载文件夹 各位还记得 自己创建环境时的 Python 版本吗 对 就是那个!
原本名称是 cp39 改成 cp310 就能用了
真真不想吐槽了

本地化部署大语言模型 ChatGLM

你要是不知道自己环境对应的 就输入:
pip debug --verbose
按照对应的更改一下就行了

本地化部署大语言模型 ChatGLM

执行 pip install D:\\Unity\\ChatGLM-6B\\cchardet-2.1.7-cp310-cp310-win_amd64.whl

本地化部署大语言模型 ChatGLM

成功 毫无悬念

本地化部署大语言模型 ChatGLM

cd 到ChatGLM 根目录
cd D:\\Unity\\ChatGLM-6B\\ChatGLM-6B-main

本地化部署大语言模型 ChatGLM

再次运行 python web_demo.py
发现还是不行 那还说什么  上大招

本地化部署大语言模型 ChatGLM

强制 归一化

强制 最新归一化
pip install --force-reinstall charset-normalizer==3.1.0

本地化部署大语言模型 ChatGLM

再次启动
python web_demo.py
搓手等待...

本地化部署大语言模型 ChatGLM

成功部署

天见犹怜 终于终于 成功了
真是一波三折 再三折 好在是成功了

本地化部署大语言模型 ChatGLM

好了大家可以尽情的调教自己的 GPT

本地化部署大语言模型 ChatGLM

使用网址合集

GitHub: ChatGLM-6B
Hugging Face: Model
Anaconda 官网: Anaconda 官网
Pytorch: Pytorch
Pypi: pypi官网
清华大学镜像网站: 清华大学镜像网站

执行命令合集

//基础包依赖加载
pip install -r requirements.txt//transformers 和 protobuf 依赖加载
pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels//网页使用 gradio 库 加载
pip install gradio//启动命令
python web_demo.py//CPU 转换
conda: conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117//chardet 库 补充依赖
pip install chardet//cchardet 库 补充依赖
pip install cchardet//查看当前平台支持的版本
pip debug --verbose//cchardet 库 轮子 加载
pip install D:\\Unity\\ChatGLM-6B\\cchardet-2.1.7-cp310-cp310-win_amd64.whl//强制 最新归一化
pip install --force-reinstall charset-normalizer==3.1.0//启动命令
python web_demo.py//断开服务
Ctrl + C//清华源 镜像
核心句式:-i https://pypi.tuna.tsinghua.edu.cn/simple
例如下载的是:cchardet
正常下载是:pip install cchardet
清华源下载是:pip install cchardet -i https://pypi.tuna.tsinghua.edu.cn/simple

暂时先这样吧,如果有时间的话就会更新模型微调文章以及抽时间更新GLM130B的部署,实在看不明白就留言,看到我会回复的。
路漫漫其修远兮,与君共勉。