您现在的位置是:首页 >技术交流 >ChatGLM-6B的windows本地部署使用网站首页技术交流

ChatGLM-6B的windows本地部署使用

浩哥的技术博客 2024-08-22 00:01:04
简介ChatGLM-6B的windows本地部署使用

ChartGPT最近特别火,但是收费,而且国内访问不太方便,所以找了个类似的进行学习使用

ChatGLM-6B,开源支持中英文的对话大模型,基于 General Language Model (GLM) 架构,具有62亿参数,简单说非常不错,可能和chart GPT比较有些差距,但是开源免费,并且可以在本地部署,支持中文,这就很nice了

首先安装环境,当前本机电脑win10,pycharm2020,python3.9,Anaconda3。文章涉及到的相关资源会在文章最下面公共号中提供,这里也注意,部分软件根据电脑本身需要改动版本

安装

1、需要安装CUDA和cudnn

由于要使用GPU(不用也可以,不过是有点慢),需要安装CUDA和cudnn,CUDA是显卡厂商NVIDIA推出的运算平台,cuDNN是用于深度神经网络的GPU加速库, CUDA看作是一个工作台,cuDNN是具体工具

在控制面板查看支持的版本

在这里插入图片描述

或者敲命令

nvidia-smi

在这里插入图片描述

确定CUDA版本,去网站下载

https://developer.nvidia.com/cuda-toolkit

我下在的就是12的

然后下载cudnn,这里也注意,网站需要注册登录下载,最好在谷歌浏览器上面走,火狐上容易卡住

https://developer.nvidia.com/rdp/cudnn-archive

下载的时候注意cuda版本

在这里插入图片描述

安装的时候如果遇见什么错误,可以查看https://blog.csdn.net/anmin8888/article/details/127910084这个博客上安装流程

2、下载代码

装完环境后接下来可以开始下载代码,这里推荐使用pycharm直接从Git上直接下载,然后通过软件创建环境,这里的话通过软件一步一步下一步就完了,然后等待相关jar包下载完毕即可

下载完成后可以创建一个py文件运行下面代码

运行

import torch

print(torch.__version__)
print(torch.cuda.is_available())

会打印torch版本以及是否能使用cuda,如果一切正常会打印

2.0.1+cu117
True

需要注意的是 “ cu117 ” 和 “ True ” ,这样表示一切正常

如果打印的是CPU,说明torch版本不是GPU的,需要卸载重装

pip uninstall torch torch-2.0.1.dist-info torchgen	

torch官网地址 :https://pytorch.org/get-started/locally/#no-cuda-1

然后在pycharm的Terminal面板下运行,等待下载安装完成

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

如果最后打印为false,则可能是torch和cuda的版本不兼容,需要安装对应版本

3、下载模型

完整模型在Hugging Face Hub网站上,地址:https://huggingface.co/THUDM/chatglm-6b

命令下载

git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b

但是这样下载太慢,而且由于网络问题且模型特别大,容易下载不下来,所以最后一个一个下,尤其是那些模型,动不动一两个G的

在这里插入图片描述

下载完成后在pycharm项目根目录下创建文件夹chatglm-6b,然后存入所有相关文件

在这里插入图片描述

4、使用

接下来就可以使用了,使用方式有通过网页访问,命令行访问,API访问三种,在README.md文档中都有说明,这里使用API的方式访问

创建一个application文件夹存放相关自己代码,创建一个py文件,然后写入,运行文件即可

from transformers import AutoTokenizer, AutoModel
import os

modelPath = os.path.abspath('../chatglm-6b')

tokenizer = AutoTokenizer.from_pretrained(modelPath,
                                          trust_remote_code=True)

model = AutoModel.from_pretrained(modelPath,
                                  trust_remote_code=True).half().cuda()


model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)

除此之外也可以启动 web_demo.py ,在页面上进行交互使用,需要注意修改文件中模型文件所在位置

异常

Torch not compiled with CUDA enabled

Torch CUDA 版本没有一致,卸载重装对应版本

CUDA out of memory

内存不足,加 .quantize(8) , 还是报这个错的话可以再减数字
model = AutoModel.from_pretrained(modelPath,
                                  trust_remote_code=True).quantize(4).half().cuda()

后记

如果感觉下载一切比较麻烦的话,可以关注公共号 有意思的GitHub,回复chatglm,源码,模型,工具,安装包,都在对应百度云盘

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。