国产开源大模型chatGLM3安装部署实测

2024-1-25 杰克 人工智能AI

      因工作繁忙,最近一年没有更新技术博客了。自从2022年底人工智能chatGPT横空出世之后,有关AI的技术话题及各种衍生产品遍地开花。一夜之间仿佛AI已实现了多次迭代进入到一个前所未有的智能层次并对人们的工作和生活产生了重大影响,最直接的结果就是促成了好莱坞编剧集体罢工事件

      国内相关厂商也不甘示弱,在OpenAI的强势影响之下文心一言、通义千问等国内头部厂商推出的对话AI产品也迅速占领国内市场。随后不久,更名为Meta的Facebook宣布开源了号称最强的千亿模型LLaMA 一下子又将开源模型世界搅了个天翻地覆。不过对于国内用户来说LLaMA模型的中文支持能力不足,大多数情况下LLaMA都不能以中文回答,或者以中英文混杂的形式回答问题。由清华大学和智谱AI联合研制的chatGLM3号称10B以下基础模型最强性能,目前也开源了。正好最近经常需要AI协助工作,就手动搭建了这个模型系统


chatGLM3模型项目地址:https://github.com/THUDM/ChatGLM3  (截止目前这个项目Star已经9K多)
1.因为chatGLM3模型搭建部署相对简单,没有特别高的硬件门槛。我在一个角落找到一台闲置的八路GPU主机和2张铭瑄3060显卡,正好用于搭建部署chatGLM3模型
8GPU.jpg
2.对于操作系统没有特别要求,我安装了Windows Server 2019作为底层系统。因为是用GPU来进行推理运算,所以对CPU没有太高要求
sysinfo.png
3.首先要将模型环境安装部署好,目前人工智能基本都是以Python环境为主。在Windows下有一个很好用的环境集成工具Anaconda 下载安装它。可以去清华镜像站点下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/    安装过程没有特别的地方,记住安装的路径。我的安装路径是d:\anaconda3       有个注册系统默认选项可以勾选

anaconda-down.pnganaconda-setup1.png

4.最后完成之前,去掉二个复选框勾选。安装完成后重启Windows
anaconda-setup2.png
5.然后开始安装3060显卡驱动,我下载的目前最新版546.33  显卡驱动安装没有特别的地方,正常一路点击下一步即可,有个GeForce Experience 软件可以不用装。安装完成后重启Windows,然后去设备管理器查看是否有对应设备出现
Driver-setup.png
6.显卡驱动安装完成后可以安装CUDA了,NVIDIA CUDA官方下载页面:https://developer.nvidia.com/cuda-downloads  根据实际情况选择。CUDA安装过程没有特别需要注意的,一路点击  下一步 即可。安装完成后重启
CUDA-down.png
7.显卡驱动和CUDA都安装完毕后可以执行命令 nvidia-smi 验证查看,根据命令输出可以看到驱动版本、CUDA版本,还有显卡功耗、显存使用率等信息
nvidia-info.png
8.软件安装完成后需要配置Windows环境变量,在 系统属性页---高级系统设置---环境变量---系统变量---Path    点 编辑
变量设置1.png
9.在弹出的变量编辑框里点右边的  新建  然后输入anaconda的安装路径和组件目录路径(我这里anaconda安装路径是d:\anaconda3)   完成后点确定关闭并重启Windows
d:\Anaconda3
d:\Anaconda3\Scripts
d:\Anaconda3\Library\bin
d:\Anaconda3\Library\mingw-w64\bin
d:\Anaconda3\Library\usr\bin
变量设置2.png
10.系统变量设置并重启后可在powershell下输入conda  --version 验证变量配置,如果提示conda不是内部或外部命令,那一般是anaconda的环境变量没配置好
conda-version.png
11.模型主程序包到项目主页下载:https://github.com/THUDM/ChatGLM3    点 code  下载压缩包格式即可,如果有安装github CLI  也可以用git命令克隆下载:git clone https://github.com/THUDM/ChatGLM3.git
chatglm3-github-down.png
12.主程序包下载完成后解压到任意目录下,我这里是E:\ChatGLM3-main
charGLM3-main-path.png
13.用管理员身份打开powershell命令行,先执行命令:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine  把powershell默认策略修改为  全是(A)
powershell-polic.png
14.然后执行命令初始化conda环境:conda init powershell
conda-init.png
15.完成初始化后创建一个环境用于运行大模型 conda create -n chatglm3-demo python=3.11(运行chatGLM3最好用Python3.10以上版本),然后激活环境 conda activate chatglm3-demo  这里已经创建好了,直接激活环境即可,后续机器重启后都需要执行激活命令。如果建错了,可以使用  conda env remove --name chatglm3-demo  删除
anaconda-act.png
16.环境创建完成后cd到前面下载的模型主程序目录下,我这里是E:\ChatGLM3-main 通过dir命令有看到目录下有个requirements.txt文本文件,这个文件里面列出的环境需要安装的各种依赖包。执行 pip install -r requirements.txt  进行依赖包安装。这里需要较好的网络,因为有些依赖包是从默认国外源站下载
pip-install-req.png
17.依赖包安装完成后需要检查安装的pytorch是不是GPU版。执行
python
import torch
print("torch.cuda.is_available:",torch.cuda.is_available())

exit()

pytorch-check.png

如果返回为False则安装的是CPU版本(我这里已经安装好了GPU版本,所以是True),需要执行命令安装GPU版本(大家根据自己的CUDA版本选择对应pytorch版本,我这里CUDA是12.3版本,所以选择cu121)
先执行以下命令卸载CPU版本
pip uninstall torch
pip uninstall torchvision
pip uninstall torchaudio
conda uninstall cpuonly
安装GPU版本
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu121
18.依赖完成安装后,需要配置多显卡模式。到模型主程序路径下的basic_demo目录下(我这里是E:\ChatGLM3-main\basic_demo)有2个web开头的.py文件,2个文件作用一样,分别对应的web风格gradio 和 streamlit   编辑任意一个(我这里编辑的是streamlit风格的),找到@st.cache_resource段,先将下面model=.......行加#注释掉,然后添加:
    import sys
    sys.path.append('./openai_api_demo')
    from utils import load_model_on_gpus
    model = load_model_on_gpus(MODEL_PATH, num_gpus=2)    #这里的2表示2片GPU
GPUs-config.png
19.环境配置完成后,最好重启下Windows 然后下载chatGLM3模型本身,因为模型很大(约47GB)我是在另外一台linux主机上用git同步进行下载然后复制过来的,从huggingface.co源站下载是很慢的,可以选择从魔塔社区下载
yum install git git-lfs   #安装git和大文件工具git-lfs
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git      #从魔塔社区克隆下载
chatGLM3-6b.png
20.模型下载完成后配置模型路径系统变量(省却了后面编辑很多文件指定模型路径的步骤),在 系统属性页---高级系统设置---环境变量---系统变量  点 新建  创建2个变量
变量名:MODEL_PATH
变量值:e:\chatglm3-6b
变量名:IPYKERNEL
变量值:chatglm3-demo    #与前面使用conda命令创建的模型运行环境名字一致
变量设置3.png
21.最后加载模型并启动demo 先cd到主程序目录下的composite_demo目录,如果前面修改的多显卡配置文件是streamlit风格的,则执行  streamlit run main.py
start1.png
22.在本地网络找到一台同网络PC机,然后用浏览器打开目标机器IP:端口(我这里是http://192.168.0.88:8501),同步在后台可以看到模型加载过程
start2.png
23.示例让其为我编写一个备份数据库脚本,也可以使用上面的Code Interpreter模式,生成更专业的代码内容。具体使用方法参考官方文档。截止本篇文章发稿,chatGLM 已经更新迭代到 chatGLM4 版本了,性能更强。不过目前还没有开源,毕竟是国产模型期待下一个更好的版本

test-bak1.png

test-bak2.png

24.在前端页面交互过程中后台同步使用nvidia-smi命令查看二张GPU使用率上升到30%+  功耗从待机的不到10W上升到约30-40W

GPU-load.png


报错解决:
1.如果启动模型报:ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS‘ from 'charset_normalizer.constant'
需要升级一个依赖文件:pip install --upgrade charset-normalizer

2.如果启动模型报:ImportError: No module named ‘jupyter_client‘
缺少对应内核模块: conda install ipykernel

3.如果启动模型报:RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'
这是pytorch不是GPU版或未安装,参考前面的步骤安装GPU版即可

标签: 编程开发 人工智能 python 测试 开源 Winodows AI 大模型

发表评论:

Powered by emlog 京ICP备17037512-1 e-mail:jackhkyin@163.com QQ:393147796