当前位置:   article > 正文

ChatGLM2-6B部署及使用_attributeerror: 'textbox' object has no attribute

attributeerror: 'textbox' object has no attribute 'style'. did you mean: 'sc

咳咳,工作需要,我一个Unity程序员去做AI相关的研究。从一开始的调用文心一言接口到现在自己部署ChatGLM2-6B并且通过Api调用。记录一下这个过程。

首先要保证自己的显卡有6G。这是最基础的要求,说白了就是GTX1060或者1660。玩AI都是用N卡,哎~我的6700XT.. 期待战未来。

首先,先安装python,版本的话,在写这个文章的时候我用的是3.11.5。够用就好,太新怕有莫名其妙的BUG。

安装Anaconda

当然!当然!当然!你也可以选择不装Python!直接安装anaconda,对于我这种不了解python的人, anaconda就是神器。所谓创建虚拟环境,在我的理解就是创建项目,各自独立,并且可以自选python解析器版本,安装插件。

官网是:Anaconda | The World’s Most Popular Data Science Platform

安装教程我就不写了,有同学写了更详细的,这里贴出来,其实就是全部打钩,打钩是为了配置环境变量及让Anaconda安装的python优先级最高,详细的看下面的教程:

史上最全最详细的Anaconda安装教程-CSDN博客

 如果忘记打钩了就自己手动在环境变量中加入

安装好后直接cmd在命令行输入python,可以看到目前最高的优先级就是Acaconda下安装的

安装CUDA

然后查看自己的显卡版本

在命令行输入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                删除虚拟环境

可以看到我在激活虚拟环境后,前面会有一个括号,说明已经进入到虚拟环境了。

虚拟环境下安装pytorch

打开命令行:安装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,出现>>>然后输入

  1. import torch
  2. print(torch.cuda.is_available())

出现true,就是代表安装成功了。

ChatGLM2-6B下载

主角登场!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的显卡的话,建议下载量化模型。链接在下面:

清华大学云盘 (tsinghua.edu.cn)

这里我选用的是chatglm2-6b-int4,这已经是最小的了- -。

2024.3.15更新------重新查看了下清华云盘和Huggingface上的文件,清华云盘里面文件少了很多,看你VPN的速度,如果不快的话,你可以仅仅把Huggingface上比较小的文件下载下来,大文件用清华云盘里的,最终文件的数量和文件的大小要和Huggingface上一样。

当然这种方法只是其中一种,还有一种是用git lfs下载大文件。但是我觉得吧,对新手来说步骤越简单越好。万一网络不给力呢,是吧~

安装依赖

接下来呢,使用命令行进入到ChatGLM2-6B文件夹。我这里是放在D盘,我做个演示。

就是这么简单,然后接着在虚拟环境下安装依赖,记得要先进入虚拟环境哦,不记得了的去上面看如何进入~

pip install -r requirements.txt

在一系列的加载下载以后

最后出现了Successfully 就算成功。

修改对应的py文件

我有的小伙伴一定会疑问,为什么我不用web_demo.py,而用demo2,因为不知道为啥我用web_demo发送问题以后没有响应,有懂的小伙伴可以留言告诉我哈。

进入ChatGLM2-6B文件夹下找到web_demo2.py打开,你用啥打开就行,我这里用的是vscode。

这里其他py文件同理,只要路径指向没错就好了。

然后将这里的路径“THUDM/chatglm2-6b”改成自己存放模型的路径。

这里有的人说要根据显存进行量化。这个就根据自己的需要选择啦。

  1. # 6G
  2. model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
  3. # 10G
  4. model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()

ChatGLM2-6B!启动!

你可能兴高采烈的打开命令行就开始python web_demo.py。但是如果不出意外的话就要出意外了。

gcc问题

当你输入的时候可能会提示'gcc' 不是内部或外部命令,也不是可运行的程序。

我看到这的时候一脸懵逼,这什么玩意,后面查了其实我也没有太了解,我这里贴上大佬的原理。

ChatGLM 加载模型时会自动编译两个c文件并加载:quantization_kernels_parallel.c 和 quantization_kernels.c。

所以去安装mingw64就好了,记得安装好后配置环境变量,什么,你不知道在哪下载?

链接:https://pan.baidu.com/s/17rXbsK1_7yZJAdtgLv5SMA 
提取码:2otf

只能帮到这了,解压,在配置环境变量中加进去。

然后测试是否安装成功,在命令行中输入gcc -v,有出来一堆东西就说明安装成功了。

web_demo2.py的问题

使用demo2.py需要先安装依赖。

pip install streamlit streamlit-chat

然后通过命令行去启动!

streamlit run web_demo2.py

api.py的问题

使用api.py需要先安装依赖

pip install fastapi uvicorn

然后python api.py启动!启动成功以后,可以使用Postman等工具进行测试。

---------------------------------------------------------------------------------------------------------------------------------

AttributeError: 'Textbox' object has no attribute 'style'. Did you mean: 'scale'

当启动web_demo.py出现上面这个错误的时候,其实是gradio的问题,版本太高了。个人猜测可能是pip默认安装最新版本,新版本中api有变化,所以识别不了。

所以只需要卸载当前版本,安装旧版就好了哈。

pip uninstall gradio
pip install gradio==3.39.0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/901237
推荐阅读
相关标签
  

闽ICP备14008679号