微调chatGLM2-6B大模型

今天给大家带来chatGLM2-6B的微调,众所周知,微调现在已经是大模型必不可少的部分,本文微调部分主要包括

  • LoRA:仅微调低秩适应器。
  • P-Tuning V2:仅微调前缀编码器。
  • Freeze :仅微调后几层的全连接层。

1.环境配置

首先这里还是使用阿里云的免费服务器,我用的v100的显卡,具体不会用的可以看我的第一篇博客,对服务器先进行下面的操作,否则可能会出一些问题:

更新git-lfs:

apt-get update

apt-get install git-lfs

初始化git:

git init 

git lfs install

然后我们就可以拉取chatGLM-6b的微调代码了,这里给出github的地址

GitHub - hiyouga/ChatGLM-Efficient-Tuning: Fine-tuning ChatGLM-6B with PEFT | 基于 PEFT 的高效 ChatGLM 微调

git clone https://github.com/hiyouga/ChatGLM-Efficient-Tuning

拉取完之后,可以看到如下文件目录

 2.下载模型

首先还在整个文件夹中创建一个chatglm2-6b文件用来存储chatGLM2-6B模型,这里还是通过git拉取chatGLM2-6B对应huggingface地址获取模型,存储在model文件夹中,具体操作如下(这里git 拉取失败,可以本地下载然后上传到服务器文件夹中,这部分很重要,也很容易出问题):

cd mode/

git clone https://huggingface.co/THUDM/chatglm2-6b

 3.模型微调

这里微调测试,可以用下载文件里面给的数据集,也可以用自己定义的数据集,其实真正意义上肯定是对自己的数据去做微调才是有意义的,数据集格式如下:

[
  {
    "instruction": "保持健康的三个提示。",
    "input": "",
    "output": "以下是保持健康的三个提示:\n\n1. 保持身体活动。每天做适当的身体运动,如散步、跑步或游泳,能促进心血管健康,增强肌肉力量,并有助于减少体重。\n\n2. 均衡饮食。每天食用新鲜的蔬菜、水果、全谷物和脂肪含量低的蛋白质食物,避免高糖、高脂肪和加工食品,以保持健康的饮食习惯。\n\n3. 睡眠充足。睡眠对人体健康至关重要,成年人每天应保证 7-8 小时的睡眠。良好的睡眠有助于减轻压力,促进身体恢复,并提高注意力和记忆力。"
  },
  {
    "instruction": "三原色是什么?",
    "input": "",
    "output": "三原色通常指的是红色、绿色和蓝色(RGB)。它们是通过加色混合原理创建色彩的三种基础颜色。在以发光为基础的显示设备中(如电视、计算机显示器、智能手机和平板电脑显示屏), 三原色可混合产生大量色彩。其中红色和绿色可以混合生成黄色,红色和蓝色可以混合生成品红色,蓝色和绿色可以混合生成青色。当红色、绿色和蓝色按相等比例混合时,可以产生白色或灰色。\n\n此外,在印刷和绘画中,三原色指的是以颜料为基础的红、黄和蓝颜色(RYB)。这三种颜色用以通过减色混合原理来创建色彩。不过,三原色的具体定义并不唯一,不同的颜色系统可能会采用不同的三原色。"
  },
  ...
]

我们在文件里面建一个脚本为train.sh,里面主要参数给大家解释一下:model_name_or_path为我们下载的chatglm2-6b模型文件的路径,dataset为微调数据集的路径,finetuning_type为微调方式(p_tuning、lora、freeze),output_dir为微调后模型存储的路径地址,微调脚本代码如下:

 然后我们就可以执行这个脚本进行微调啦,话不多说,看图:

bash train.sh

另外,还有一种可以直接生成gradio链接,点解该链接可以通过可视化界面直接进行微调,执行如下代码:

python src/train_web.py

界面如下,在这里可以选择自己的微调方式、数据集等等哈,然后开始微调

 4.总结

感觉现在大模型更新实在太快了,作为一名NLP工程师真的需要不断学习,永远都是学不完的新知识,刚刚入门,如果有什么不对的地方欢迎大家和我讨论!!!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
对于ChatGLM2-6B微调参数,你可以按照以下步骤进行操作: 1. 首先,根据你的需求,下载ChatGLM2-6B的代码仓库并安装所需的依赖包。你可以使用以下命令进行克隆和安装: ``` git clone https://github.com/THUDM/ChatGLM2-6B cd ChatGLM2-6B pip install -r requirements.txt cd ptuning/ pip install rouge_chinese nltk jieba datasets ``` 2. 接下来,你可以根据自己的数据集构建训练所需的数据集。 3. 在P-tuning v2的训练过程中,模型只保存了PrefixEncoder部分的参数。因此,在进行推理时,你需要同时加载原始的ChatGLM-6B模型和PrefixEncoder的权重。为了实现这一点,在evaluate.sh脚本中,你需要指定相应的参数。 总结起来,你可以通过自己验证并更换模型路径,使用自定义的数据集来微调ChatGLM2-6B模型微调后的参数可以在指定的checkpoint地址中找到。同时,在推理过程中,需要同时加载ChatGLM-6B模型和PrefixEncoder的权重。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *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: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊驼锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值