微调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

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

微调chatGLM2-6B大模型_第1张图片

 2.下载模型

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

cd mode/

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

微调chatGLM2-6B大模型_第2张图片

 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为微调后模型存储的路径地址,微调脚本代码如下:

微调chatGLM2-6B大模型_第3张图片

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

bash train.sh

微调chatGLM2-6B大模型_第4张图片

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

python src/train_web.py

微调chatGLM2-6B大模型_第5张图片

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

微调chatGLM2-6B大模型_第6张图片

 4.总结

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

你可能感兴趣的:(nlp,自然语言处理)