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

0 写在前面

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

protobuf
transformers==4.30.2
cpm_kernels
torch>=2.0
gradio
mdtex2html
sentencepiece
accelerate
sse-starlette
streamlit>=1.24.0

可以看到,要求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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
回答: ChatGLM2-6B是一个AI模型,引用提到了对ChatGLM2-6B进行P-tuning微调的过程。微调是指在已有的预训练模型基础上,使用特定的数据集进行进一步的训练,以提高模型在特定任务上的性能。在这个例子中,ChatGLM2-6B通过本地部署和本地微调的方式被成功跑通了。具体来说,本地部署是指将模型部署到本地环境中进行使用,而本地微调是指在本地环境中使用特定的数据集对模型进行微调训练。引用中提到了在Windows系统上跑通了ChatGLM2-6B。引用则提到了进行微调时可以更换模型路径以及注意微调目前只支持单轮对话的回复。总之,ChatGLM2-6B经过微调可以在特定任务上表现更好。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ChatGLM2-6B! 我跑通啦!本地部署+微调(windows系统)](https://blog.csdn.net/m0_54515450/article/details/131617081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [ChatGLM2-6BChatGLM-6B 模型介绍及训练自己数据集实战](https://blog.csdn.net/dream_home8407/article/details/130099656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值