赞
踩
咳咳,工作需要,我一个Unity程序员去做AI相关的研究。从一开始的调用文心一言接口到现在自己部署ChatGLM2-6B并且通过Api调用。记录一下这个过程。
首先要保证自己的显卡有6G。这是最基础的要求,说白了就是GTX1060或者1660。玩AI都是用N卡,哎~我的6700XT.. 期待战未来。
首先,先安装python,版本的话,在写这个文章的时候我用的是3.11.5。够用就好,太新怕有莫名其妙的BUG。
当然!当然!当然!你也可以选择不装Python!直接安装anaconda,对于我这种不了解python的人, anaconda就是神器。所谓创建虚拟环境,在我的理解就是创建项目,各自独立,并且可以自选python解析器版本,安装插件。
官网是:Anaconda | The World’s Most Popular Data Science Platform
安装教程我就不写了,有同学写了更详细的,这里贴出来,其实就是全部打钩,打钩是为了配置环境变量及让Anaconda安装的python优先级最高,详细的看下面的教程:
如果忘记打钩了就自己手动在环境变量中加入
安装好后直接cmd在命令行输入python,可以看到目前最高的优先级就是Acaconda下安装的
然后查看自己的显卡版本
在命令行输入Nvidia-smi,可以看到CUDA的版本是12.2,版本向下兼容,只要不高于12.2就好了,这里CUDA安装链接如下:developer.nvidia.com/cuda-toolkit-archive
这里我安装的是11.8。
安装完后,注意需要看下系统环境变量中地址有没有相应版本的cuda,配置了下面几个环境变量
下面这两条是看一个大佬的文章说要是不配置可能会报错,Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found,这里就做一个记录。
安装好后在命令行上查看一下是否正确安装nvcc -V。注意!这里的V是大写。
可以看到这里已经正确安装了。
首先创建虚拟环境!
按照上面步骤安装完了anaconda之后,按住win + R输入cmd。输入以下命令,新建一个名字为ChatGLM2B的环境。
这里的版本都可以自定义,这就是anaconda厉害的地方,只要你输入的正确,他都会把你下载下来,不需要管地址,这里--name 后面跟着的参数就是虚拟环境的名字,python==版本号
conda create --name ChatGLM2B python==3.8.10
这里的创建了一个叫amalaawei的虚拟环境。
这里创建到的一半的时候会出现一个选择,输入y以继续。就是安装一些必要的环境包。
看到最后是这样的说明成功了。下面还很贴心的提示了如何使用:
conda activate amalaawei(虚拟环境名)----------这句代码的意思就是激活这个虚拟环境,意思就是选中,在多个虚拟环境之间切换的时候,就可以根据激活不同的虚拟环境来达到选择的目的。
这里我记录几句刚学的conda咒语。
conda activate [虚拟环境的名称] 激活某一个虚拟环境
conda env list 查看虚拟环境列表
conda remove --name [虚拟环境的名称] --all 删除虚拟环境
可以看到我在激活虚拟环境后,前面会有一个括号,说明已经进入到虚拟环境了。
打开命令行:安装GPU版本的pytorch,(上面我们的CUDA安装的11.8版本),pytorch也要选择11.8版本,否则后面开始报错),打开官网可以看到Start Locally | PyTorch,这个版本正合适。我们把它的安装地址复制下来
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
一样会暂停叫你确认,这时候输入y以继续,就是跟你确认要安装哪些哪些环境包。
经过漫长的等待,这个pytorch有点大,2G多好像。
直到出现done就完成了
那我们接下来要检验是否正确安装成功,在命令行输入python,出现>>>然后输入
- import torch
- print(torch.cuda.is_available())
出现true,就是代表安装成功了。
主角登场!ChatGLM2-6B 链接:GitHub - THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型
根据下图操作下载zip。
下载好后就解压咯,放哪都可以,看你心情。在ChatGLM2-6B文件夹下创建一个文件夹叫model,用于等等存放模型使用。
打开链接把所有模型文件都下载下来放在model中。
THUDM/chatglm2-6b at main (huggingface.co)
当然这里要是用的6GB的显卡的话,建议下载量化模型。链接在下面:
这里我选用的是chatglm2-6b-int4,这已经是最小的了- -。
2024.3.15更新------重新查看了下清华云盘和Huggingface上的文件,清华云盘里面文件少了很多,看你VPN的速度,如果不快的话,你可以仅仅把Huggingface上比较小的文件下载下来,大文件用清华云盘里的,最终文件的数量和文件的大小要和Huggingface上一样。
当然这种方法只是其中一种,还有一种是用git lfs下载大文件。但是我觉得吧,对新手来说步骤越简单越好。万一网络不给力呢,是吧~
接下来呢,使用命令行进入到ChatGLM2-6B文件夹。我这里是放在D盘,我做个演示。
就是这么简单,然后接着在虚拟环境下安装依赖,记得要先进入虚拟环境哦,不记得了的去上面看如何进入~
pip install -r requirements.txt
在一系列的加载下载以后
最后出现了Successfully 就算成功。
我有的小伙伴一定会疑问,为什么我不用web_demo.py,而用demo2,因为不知道为啥我用web_demo发送问题以后没有响应,有懂的小伙伴可以留言告诉我哈。
进入ChatGLM2-6B文件夹下找到web_demo2.py打开,你用啥打开就行,我这里用的是vscode。
这里其他py文件同理,只要路径指向没错就好了。
然后将这里的路径“THUDM/chatglm2-6b”改成自己存放模型的路径。
这里有的人说要根据显存进行量化。这个就根据自己的需要选择啦。
- # 6G
- model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
- # 10G
- model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()
你可能兴高采烈的打开命令行就开始python web_demo.py。但是如果不出意外的话就要出意外了。
当你输入的时候可能会提示'gcc' 不是内部或外部命令,也不是可运行的程序。
我看到这的时候一脸懵逼,这什么玩意,后面查了其实我也没有太了解,我这里贴上大佬的原理。
ChatGLM 加载模型时会自动编译两个c文件并加载:quantization_kernels_parallel.c 和 quantization_kernels.c。
所以去安装mingw64就好了,记得安装好后配置环境变量,什么,你不知道在哪下载?
链接:https://pan.baidu.com/s/17rXbsK1_7yZJAdtgLv5SMA
提取码:2otf
只能帮到这了,解压,在配置环境变量中加进去。
然后测试是否安装成功,在命令行中输入gcc -v,有出来一堆东西就说明安装成功了。
使用demo2.py需要先安装依赖。
pip install streamlit streamlit-chat
然后通过命令行去启动!
streamlit run web_demo2.py
使用api.py需要先安装依赖
pip install fastapi uvicorn
然后python api.py启动!启动成功以后,可以使用Postman等工具进行测试。
---------------------------------------------------------------------------------------------------------------------------------
当启动web_demo.py出现上面这个错误的时候,其实是gradio的问题,版本太高了。个人猜测可能是pip默认安装最新版本,新版本中api有变化,所以识别不了。
所以只需要卸载当前版本,安装旧版就好了哈。
pip uninstall gradio
pip install gradio==3.39.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。