准备工作
安装CUDA
首先,你肯定要有一个显卡的,我这里使用的是 3070显卡,显存为8G。
官网给的说明是最低6GB显存就可以跑,但是个人认为最佳显存应该是13GB以上,可以接收更多的输入。
我们首先需要装好CUDA相关驱动,我使用的是操作相同,这里是安装了以下软件:
CUDA 11.8
NVIDIA 图形化驱动 522.25版本
最终上面的驱动会用于中
检查CUDA是否成功安装
你可以通过终端的命令,查看自己是否安装完成
nvidia-smi
这里可以看到CUDA的版本号以及你的显存,我这里可以看到就是8GB显存
nvcc --version
同样的这里也可以看到CUDA编译器版本号,也是11.8
安装
安装的时候,请一定要使用下面的命令
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
上面的命令中会指定我们下载.8对应的,实际上目前最新的已经有了.0,但似乎目前并未支持,只支持了.7和11.8。如果你需要自定义安装,可以在下面的链接中,选择对应的配置,使用相应的命令进行安装
https://pytorch.org/get-started/locally/
如果版本与CUDA不一致,可能会导致运行程序的时候出现类似下面的报错
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
当然,这里也有一个小技巧。
你如果不确定自己CUDA是否安装、配置正确,你可以新建一个文件,譬如
.py
import torch
print(torch.__version__)
print(torch.version.cuda)
这里值得补充的是有的人可能很早之前使用pip3就安装过了,在使用新的命令安装的时候会提示
Requirement already satisfied
因此,遇到之前已经安装了的情况,你可以使用下面命令,先卸载
pip uninstall torch
卸载之后,在运行最上面的命令安装兼容.8的
使用
我们可以下载
安装依赖
pip3 install -r requirements.txt
启动Web界面
python3 web_demo.py
或者直接在里右键Run ‘’都可以
这里会下载模型,大约12GB
你如果中途断了,没有启动成功,则可能在下次启动时,会出现多个模型文件夹,如果占用了空间,请按需删除即可
注意事项
你很可能会遇到下面的情况,那就是显存不够,会出现下面的报错
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 8.00 GiB total capacity; 7.28 GiB already allocated; 0 bytes free; 7.28 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
Process finished with exit code 1
出现这种情况,你可以在.py中修改一行代码,将
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
改为
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()
则可以运行
效果展示
运行并且启动成功之后,你可以访问127.0.0.1:7860
之后就可以开始提问了
可以看到效果还是非常不错的,譬如提问一个网络安全相关的问题
再比方说,让他编一个英雄救美的故事
我尝试拿今天的一个视频稿,进行了一个摘要提取,发现效果是真的不错,它不但能读懂英文,还可以将其转换成非常地道的中文
除了这些之外,它还有诸多能力,这里我们就摘抄了官网给的
自我认识
提纲写作
邮件写作助手
信息抽取
角色扮演
评价比较
旅游向导
总结
总的来说,60亿参数能有这样的类似GPT-3的效果,已经非常不错了,并且他对中文的理解、认知是非常强悍的。当然,我们肯定不能拿它去跟去比较了,但是它也有比较不错的优势,譬如,可以私有化、本地部署,针对一些中小型企业,或者一些需要在内网、不出网的情况下,一些产品如果想要使用GPT赋能,或者说打造(用聊天的方式进行运维),这就是一个相当不错的选择。它不仅可以实现智能问答,还可以在有一定理解的基础上智能处置,联动一些企业的现有业务流程,给企业提供更加强大的生产力。