Win10微调大语言模型ChatGLM2-6B

server/2025/1/11 11:17:43/

在《Win10本地部署大语言模型ChatGLM2-6B-CSDN博客》基础上进行,官方文档在这里,参考了这篇文章

首先确保ChatGLM2-6B下的有ptuning

 AdvertiseGen下载地址1,地址2,文件中数据留几行

模型文件下载地址 (注意:ChatGLM2-6B对话用到的的模型文件不能简单的用到这里,bin文件可以复用,但其他文件一定要重新下载,否则要报一些错)

anaconda prompt中运行,进行虚拟环境

cd /d D:\openai.wiki\ChatGLM2-6B
conda activate D:\openai.wiki\ChatGLM2-6B\ENV

运行微调除 ChatGLM2-6B 的依赖之外,还需要安装以下依赖

pip install rouge_chinese nltk jieba datasets

先了解一下train.sh(仅在Linux中使用)里面各行的意义

PRE_SEQ_LEN=128 #  soft prompt 长度
LR=2e-2     # 训练学习率
NUM_GPUS=2  # GPU卡的数量torchrun --standalone --nnodes=1 --nproc-per-node=$NUM_GPUS main.py \--do_train \   # 执行训练功能,还可以执行评估功能--train_file AdvertiseGen/train.json \   # 训练文件目录--validation_file AdvertiseGen/fval.json \   # 验证文件目录--prompt_column content \       # 训练集中prompt提示名称,对应训练文件,测试文件的"content"--response_column summary \      # 训练集中答案名称,对应训练文件,测试文件的"summary"--overwrite_cache \              # 缓存,重复训练一次的时候可删除--model_name_or_path THUDM/chatglm-6b \  # 加载模型文件目录,也可修改为本地模型的路径--output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \    # 保存训练模型文件目录--overwrite_output_dir \     # 覆盖训练文件目录--max_source_length 64 \     # 最大输入文本的长度--max_target_length 128 \--per_device_train_batch_size 1 \    # batch_size 训练批次根据显存调节--per_device_eval_batch_size 1 \     # 验证批次--gradient_accumulation_steps 16 \   # 梯度累加的步数--predict_with_generate \--max_steps 3000 \    # 最大训练模型的步数--logging_steps 10 \  # 多少步打印日志一次--save_steps 1000 \    # 多少步保存模型一次--learning_rate $LR \  # 学习率--pre_seq_len $PRE_SEQ_LEN \--quantization_bit 4   # 量化,也可修改为int8

 Windows下用以下的train.bat

因我的电脑显存只有8G,故将per_device_train_batch_size改为8

去掉--quantization_bit 4

set PRE_SEQ_LEN=128
set LR=1e-4python main.py ^--do_train ^--train_file AdvertiseGen/train.json ^--validation_file AdvertiseGen/dev.json ^--preprocessing_num_workers 10 ^--prompt_column content ^--response_column summary ^--overwrite_cache ^--model_name_or_path D:\\openai.wiki\\ChatGLM2-6B\\ptuning\\THUDM\\chatglm2-6b ^--output_dir D:/openai.wiki/ChatGLM2-6B/ptuning/output ^--overwrite_output_dir ^--max_source_length 64 ^--max_target_length 128 ^--per_device_train_batch_size 8 ^# batch_size 训练批次根据显存调节--per_device_eval_batch_size 1 ^--gradient_accumulation_steps 16 ^--predict_with_generate ^--max_steps 3000 ^--logging_steps 10 ^--save_steps 1000 ^--learning_rate %LR% ^--pre_seq_len %PRE_SEQ_LEN% 

进入ptuning文件夹

cd ptuning

运行train.bat,即可开始训练(有问题的话继续往后看)

train.bat

 可能遇到的几个问题

  • 问题一

TypeError: JsonConfig.init() got an unexpected keyword argument 'use_auth_token’

解决方式

pip uninstall datasets
pip install datasets==2.21.0
  • 问题二

name ‘round_up‘ is not defined

解决方式

将train.bat中的–quantization_bit 4删除

或者pip install cpm_kernels

  • 问题三

AttributeError: ‘ChatGLMModel‘ object has no attribute ‘prefix_encoder‘

解决方式

https://huggingface.co/THUDM/chatglm2-6b/tree/main

下载除bin文件以外的最新文件


http://www.ppmy.cn/server/157445.html

相关文章

计算机网络期末复习(知识点)

概念题 在实际复习之前,可以看一下这个视频将网络知识串一下,以便更好地复习:【你管这破玩意叫网络?】 网络规模的分类 PAN(个人区域网络):用于个人设备间的连接,如手机与蓝牙耳机…

redis的监控

1)查看key >keys * #查看所有的key,数据量大的时候容易阻塞 >scan 0 #每次获取11个key,直到获取所有的key,编号从0开始,下一次获取时,按照提示的编号输入scan后的值 当编号再次为0时,获取完成所有…

moviepy 将mp4视频文件提取音频mp3 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

校园网络综合布线系统设计与实践

校园网络综合布线系统设计与实践 摘要:随着信息时代的发展,网络综合布线显得更加重要。综合布线技术也日益引起人的重视。综合布线管理系统是一个实用性十分强的系统工程,同样又是现代社区信息化建设的基础与必要产品,是对多用途…

JavaScript Chrome 中的运行

我们在 Chrome 浏览器中可以通过按下 F12 按钮或者右击页面,选择"检查"来开启开发者工具。 也可以在右上角菜单栏选择 "更多工具"》"开发者工具" 来开启: 1、Console 窗口调试 JavaScript 代码 清空 Console 窗口到内容可…

《Windows基础与网络安全:用户账户管理与安全策略》

windows基础 1、windows&linux 微软windows操作系统,俗称windows 文件系统 linux: fhs目录结构,块设备挂载到目录(一切都是文件) win: 以驱动器盘符起始,或通过目录挂载分区 路径格式…

el-table大数据量树形表格虚拟渲染,结合复选框的功能实现,利用vxe-table组件可实现该功能,不是手写!!!

公司最近有个需求优化,el-table的树形表格,结合复选框,在数据量大的情况下,会导致整个页面卡顿,且勾选全选功能时,间隔几秒才能响应。忍无可忍,于是疯狂找百度,寻找好的组件使用。终…

如何解决HTML和CSS相关的问题,什么情况下会导致元素被遮挡?

在开发过程中,HTML 和 CSS 中的元素遮挡问题通常是由于布局、定位、层级等因素导致的。在使用 Vue.js 时,这些问题依然常见,尤其是涉及到动态渲染、条件渲染和组件嵌套的场景。以下是一些常见的导致元素被遮挡的原因,并通过 Vue.j…