当前位置:   article > 正文

ChatGLM2-6B下载/部署/微调_chatglm下载

chatglm下载

0 写在前面

我们首先来看一下ChatGLM2-6B模型的requirements:

protobuf
transformers==4.30.2
cpm_kernels
torch>=2.0
gradio
mdtex2html
sentencepiece
accelerate
sse-starlette
streamlit>=1.24.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

可以看到,要求torch>=2.0,这就产生了一个问题:torchcuda版本的匹配问题。本地机器中CUDA=10.0,于是在费了半天时间配置好ChatGLM2-6B所需环境,从githubhuggingface下载好了ChatGLM2-6B模型,但是在run的过程中报错Torch not compiled with CUDA enabled,于是不得不卸载并重新安装CUDA因此提醒各位看官,在配置前,请一定检查torch和cuda版本是否匹配**。torch2.0所需的版本为cuda 11.x,其中cuda 11.7cuda 11.8都是可以的。
所以我们先从CUDA卸载与安装说起,如果不存在cuda版本匹配问题,可以略过此步。

1 CUDA卸载与安装

1.1 cuda版本查看

查看本机所支持的最高版本:cmd->nvidia-smi,其中红色框中的是本机支持的最高版本的cuda
在这里插入图片描述
查看本机当前版本:cmd->nvcc --version,可以看到,当前版本为cuda_11.8(这是升级更新以后的结果)
在这里插入图片描述

1.2 cuda卸载

用windows的控制面板进行卸载,搜索cuda(右上角),把和cuda相关的都卸载掉,注意只卸载cuda相关程序,NVIDIA相关的驱动等,如果拿不准,建议不要动,维持原状。
在这里插入图片描述

1.3 cuda安装

cuda官网下载地址:https://developer.nvidia.com/cuda-downloads
这里我选择11->exe(local),如果想要查看下载所有历史版本,可以点击Archive of Previous CUDA Releases
在这里插入图片描述
以管理员身份运行cuda_11.8.0_522.06_windows.exe,过程中可以选择自定义安装,由于我只卸载了cuda,因此也只安装cuda,其他的几个选项勾选掉了。安装路径为C:\Program Files\NVIDIA GPU Computing Toolkit
在这里插入图片描述
安装过程大约10分钟左右,中途出现了以下问题,原因是安装过程中需要在系统环境变量path变量中写入以下路径,但由于我的path变量超限,写不进去,于是安装程序提示让在安装完成后手动在path变量中写入这两个路径。
由此引发另一个问题:path变量超限问题,关于这个问题,网上有说修改注册表的,有说直接在注册表中的path中写入路径的,最后采用的是这个方法,亲测有效。
在这里插入图片描述
环境变量问题解决掉后,重启电脑,打开cmd测试一下,如果cmd->nvidia-smicmd->nvidia-smi可用并且显示相关信息,说明cuda升级更新成功!

2 ChatGLM2-6B下载

B站有一个官网的教程可参考:视频教程
github上把项目拖下来,然后在项目所在路径下面,创建虚拟环境venv,在该环境下安装项目所需的依赖requirements.txt,这两步怎么做,可以参考我以前的教程Anaconda3安装配置/创建删除虚拟环境/在特定虚拟环境下安装库,以及这里在这里插入图片描述
值得注意的是:torch的安装,建议用官网给的命令https://pytorch.org/get-started/pytorch-2.0/#faqs,以避免不必要的麻烦。
即:
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu118
文件有2.7GB大小,下载略慢,如下图。
在这里插入图片描述
项目路径D:\Code\ChatGLM2-6B,文件结构如下,其中THUDM文件夹和venv文件夹是自己创建的,THUMD用于存放从预训练模型。
在这里插入图片描述

3 从Huggingface下载预训练模型

下载预训练模型,有3种方式:

3.1. 方式1:代码直接调用

方式1:代码直接调用,前提是可以(科学上网)访问Huggingface
在这里插入图片描述

3.2. 方式2:手动从Huggingface上下载

Huggingface上的项目地址:https://huggingface.co/THUDM/chatglm2-6b
在这里插入图片描述
Huggingface上面,项目的完整目录如图
在这里插入图片描述

3.3. 方式3:从清华云盘下载

清华云盘将所有下面的文件下载下来,放进D:\Code\ChatGLM2-6B\THUDM\chatglm2-6b这个目录,THUDM\chatglm2-6b这个目录是自己创建的。
在这里插入图片描述
这还不够,需要从Huggingface项目地址中,将其余的一些配置文件下载补全,一起放进D:\Code\ChatGLM2-6B\THUDM\chatglm2-6b这个目录。(为什么一部分从清华云盘下,一部分从huggingface下??因为内网从huggingface下载的速度非常非常慢,所以几个大的1G以上的文件从清华云盘下载了,但清华云盘上没有给所需的配置文件如config.json,导致模型跑不起来,所以一些小的几个KB的配置文件从huggingface下载了,嗯…就这么回事)。

3.4 检查目录结构

检查一下自己的存放预训练模型的文件夹结构,如下:
在这里插入图片描述

4 运行与测试ChatGLM2-6B

在pycharm中打开该项目,写了一个很简单的测试脚本Test.py,向它提问晚上睡不着该咋办,运行项目后,ChatGLM2-6B给出答案,在这个过程中,加载模型的checkpoints需要约半分钟时间,模型推理需要约半分钟时间才能给出答案(台式机,一张NVIDIA GeForce RTX 2080Ti显卡,16GB内存)
在这里插入图片描述
在这里插入图片描述
再测试一个,向它提问:飞机是怎么装配的,回答如下
在这里插入图片描述

Chatglm2-6B的微调

5. 写在后面

安装过程中的bug总结如下:

  1. cannot import name 'deprecated' from 'typing_extensions'
  2. cannot import name 'Doc' from 'typing_extensions'
    以上两个bug是由于ChatGLM2-6B项目需要typing_extensions>4.8.0,按要求安装即可:pip install typing_extensions==4.8
    在微调过程中报错
  3. AttributeError: 'ChatGLMForConditionalGeneration' object has no attribute 'enable_input_require_grads',解决方案,升级transformers
pip install transformers==4.27.1
  • 1

-----------------------------------------------------------------The End!---------------------------------------------------------------------------------

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号