很高兴您能有缘看到本系列文章,本人是一名资深算法码农,现在ChatGPT大模型非常的火,不少人也深信它能改变世界。ChatGPT可以帮助我们解决很多实际问题。例如,我们可以利用ChatGPT来创建智能客服机器人,让它为顾客提供高质量的服务。这可以大大减轻公司客服人员的工作量,并提高客户的满意度。
本系列将讲述如何从零开始私有化实现及部署类ChatGPT的对话机器人,主要分环境安装,模型现状与选型,基础chatglm模型详解及部署,chatglm不同环境常见bug,前后端对话简单实现,流式对话实现,chatpdf实现,海量本地知识库搜索能力实现,visualglm图片描述模型详解,集成,文本生成图片模型集成,语音识别详解,语音合成详解,语音对话功能集成等等内容。
阅读本系列需要有一定的人工智能算法能力,对nlp算法,语音算法有一定了解,还涉及多方面工程能力知识,如阅读中有任何问题,可以留言,本人会一一解答。
本章节主要从gpu服务器基础驱动环境搭建,cuda与cudnn环境安装,python环境及pytorch安装,建议有条件的可采用云服务器方式,相对要更简单一些。
一.本地gpu服务器基础环境搭建
首先准备好一台带gpu显卡的linux服务器
由于大模型的参数量最少都是billion级的,所以是非常吃显存的,选显卡时,首要以显卡显存为准。
显卡名称 | 显存大小 | cuda数 |
---|---|---|
P4 | 8G | 2560 |
T4 | 16G | 2560 |
P40 | 24G | 3840 |
A100 | 80G | 6912 |
如上是nvidia允许在大型商用场景下当前比较常见的几个型号的卡,其中cuda数可以理解为cpu核数,处理速度,由于商用卡比较贵,如果只是小规模使用或者学习研究,完全可以购买游戏卡gtx系列。
以如上显卡举例,有资金的应尽量考虑P40参数以上的卡,以清华中文大模型chatglm为例,其本身参数为70亿(以下简化7B),如果参数采用fp16,需要至少13g的显存才可运行,同理,100亿参数的大模型则需要20g显存才可运行。
建议购买游戏卡,24g显存的游戏卡便宜很多,当然不是说8G显存不能跑大模型,实际上chatglm量化int4是可以运行在8g显存下,但是由于量化,只是减少了显存占用,预测速度反倒降低,所以建议是显卡尽量高配显存。
有本地服务器后,安装好linux系统,下面以ubuntu 4.15.0为例。
进入系统后,在终端命令行执行如下命令
nvidia-smi
如果报以下错误,说明没有nvidia驱动,需要安装。
bash: nvidia-smi: command not found...
首先查看nvidia卡的版本执行以下命令
lspci | grep NVIDIA
可以看到终端输出:
再执行系统命令查看
cat /etc/issue
可以看到终端输出
通过上述信息到nvidia官网 www.geforce.cn/drivers 下载对应驱动,安装即可。
安装完毕后,执行nvidia-smi
,可以看到终端显示
二.云gpu服务器基础环境搭建
云gpu服务器环境搭建相对简单的多,以本人在使用的腾讯云服务为例,在新建云服务器时选择gpu机型。
接下来选择想要配置的服务器的nvidia的T4卡。
然后再在镜像市场中选择人工智能镜像,该镜像已经解决了cuda,cudnn环境,以及python环境问题,基本下载下来,更新以下pytorch版本就可用。
三.cuda与cudnn安装
一般来说,cuda与cudnn安装实际上是先确定pytorch的版本,在这里,我们使用pytorch1.12.0,这时cuda对应11.4,cudnn 8.2.4。
第一步,到nvidia官网developer.nvidia.com/cuda-toolki…
第二步,按照输出代码,直接下载对应版本cuda
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
sudo sh cuda_11.4.0_470.42.01_linux.run
第三步,下载cudnn安装,去官网developer.nvidia.com/rdp/cudnn-a…
cd /usr/local/cuda/include/
rm -r cudnn.h
cd /usr/local/cuda/lib64/
rm -r libcudnn*
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod 777 /usr/local/cuda/include/cudnn.h
sudo chmod 777 /usr/local/cuda/lib64/libcudnn*
第四步,修改环境变量,并生效。
vim ~/.bashrc
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
四.python环境安装(pytorch)
最好安装conda环境,国内可以考虑清华的conda,这样会更快,mirror.tuna.tsinghua.edu.cn/help/anacon…
安装好conda后,执行安装pytorch,这时候上pytorch官网,pytorch.org/, 查看安装命令行
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
执行python,输入以下代码,确认torch安装正确。
import torch
print(torch.cuda.is_available())
print(torch.version.cuda)