Llama3 中文版模型微调笔记,小白也能学会
laohaibao666
2024年04月26日 14:06
收录于文集
共40篇

中国时间 2024 年 4 月 19 日 0 点 0 分,Meta Llama 3 发布。经过一周的时间目前huggingface上面已经有好几款Llama3 8 B版本的中文微调模型了。

https://github.com/CrazyBoyM/llama3-Chinese-chat 这个项目整合中文微调模型目前已经达到十几款了。

  • shareAI系列:

    • 训练数据:https://modelscope.cn/datasets/baicai003/Llama3-Chinese-dataset/summary

    • V1版

    • V2版

    • OpenCSG满速下载:https://opencsg.com/models/shareAI/llama3-Chinese-chat-8b

    • WiseModel满速下载:https://wisemodel.cn/models/shareAI/llama3-Chinese-chat-8b

    • modelscope:https://modelscope.cn/models/baicai003/Llama3-Chinese_v2/summary

    • base预训练 + 直接中文sft版:

    • Instruct + 继续中文sft版:https://modelscope.cn/models/baicai003/llama-3-8b-Instruct-chinese_v2/summary

    • Base预训练 + 海量中文优质数据增量预训练:正在进行中

    • 70b 中文版:计划中

  • 下面几个版本,因对话格式不同暂时不支持网页部署,需要用fastchat体验:

    • https://modelscope.cn/models/zhuangxialie/Llama3_Chinese_Sft/files

    • Instruct + DPO偏好中文版:https://www.modelscope.cn/models/zhuangxialie/Llama3-Chinese-DPO/summary 偏爱长对话

    • Base + ORPO偏好中文版:https://modelscope.cn/models/zhuangxialie/Llama3-Chinese-ORPO/summary 偏爱长对话

  • llama3 Pro(加block版,推荐尝试该方案上做更多探索):

    • 首个扩展2Block + ORPO偏好对齐:https://github.com/linjh1118/Llama3-Chinese-ORPO

  • llama3 Moe增强版:计划中

  • 联通微调版:https://www.modelscope.cn/models/UnicomAI/Unichat-llama3-Chinese/summary

  • Openbuddy微调版:https://www.modelscope.cn/models/OpenBuddy/openbuddy-llama3-8b-v21.1-8k/summary

  • zhichen微调版:https://github.com/seanzhang-zhichen/llama3-chinese

  • shenzhi-wang微调版:https://huggingface.co/shenzhi-wang/Llama3-8B-Chinese-Chat

  • Rookie微调版:https://github.com/Rookie1019/Llama-3-8B-Instruct-Chinese

  • 破解安全限制系列(暂时只支持英文):

    • Unholy:https://huggingface.co/Undi95/Llama-3-Unholy-8B

    • neural-chat:https://hf-mirror.com/Locutusque/llama-3-neural-chat-v1-8b

    • dolphin:https://huggingface.co/cognitivecomputations/dolphin-2.9-llama3-8b

  • v-llama3 多模态图文版:(支持视觉问答)

    • Bunny-Llama-3-8B-V:https://wisemodel.cn/models/BAAI/Bunny-Llama-3-8B-V

    • llava-llama-3-8b:https://huggingface.co/xtuner/llava-llama-3-8b-v1_1

  • agent工具能力增强版:

    • ModelScope Chinese Agent版V1:https://modelscope.cn/models/swift/Llama3-Chinese-8B-Instruct-Agent-v1/summary

每天还在持续更新中。看到这么多中文微调模型,那么我们有没有办法自己也微调一个版本的中文 Llama 3 模型呢?

关于模型微调对于新手小白来说可能是有点难度不过还好。LLaMA-Factory这个项目最近更新了支持Llama 3 的google Colab notebook 在线微调脚本,这样对新手小白来说既可以免费白嫖google colab T4显卡做微调,又可以免费体验Llama 3中文微调模型了。这也太爽了。关于LLaMA-Factory使用可以关注我之前的视频《网页链接​

 话不多说下面告诉大家如何微调这个 Llama 3 中文模型。

  1. 登录Colab notebook首先我们需要保证自己有一个google 账号,没有google 账号的自行搜索一下,然后注册一个google 账号。有了google 账号 很多google 家的产品都可以使用了。登录Colab notebook

 我会看到这个Colab脚本里面的相关步骤。

 大致分为 1.安装 LLaMA Factory 依赖

                  2.检查 GPU 环境

                  3.新自我认知数据集

                  4.模型训练

                  5.模型推理

   这个5个步骤。因为Colab脚本和代码都编写好了,我们直接无脑点击就可以了,很简单,小白也能轻松学会。这个要感谢python Jupyter Notebook(关于Jupyter Notebook 这里就不和大家解释了,使用AI搜索了解它就可以了)

  1. 安装 LLaMA Factory 依赖

          如何LLaMA Factory 呢,我们按照上面图三角符合点击运行就可以了。简单解释一下点击后右边有几行代码,大概的意思就是 到content 当前目录下,先把LLaMA-Factory文件夹删除(避免之前已经有进行删除操作),接下来就是通过git clone 命令将LLaMA Factory 代码下载下来保存到content 命令下。在后面就是通过命令行窗口执行到LLaMA-Factory代码目录中安装项目依赖包。这里它用到了unsloth项目,这个项目unsloth是一个大模型微调框架可以实现微调 Mistral、Gemma、Llama 速度提高 2-5 倍,内存减少 80%

          下载好LLaMA Factory 项目后,我们在左边目录结构中会看到下载后的代码结构

运行这个安装 LLaMA Factory 依赖大概花费2分钟。

3.检查 GPU 环境

  鼠标滑动到检查 GPU 环境 代码执行栏目

 

 这个步骤非常简单,同样点击三角行按钮执行一下即可。这个步骤就检查Google colab是否给你分配到显卡。如果分配不到显卡后面步骤是执行不下去的,需要等待。另外上面也是检查torch依赖包是否安装成功。

4.更新自我认知数据集

   这个地方稍微讲解一下,因为我们是需要训练自己的数据集的,所以是需要上传自己的数据集的。

数据集在哪个目录下呢?在LLaMA Factory\data\identity.json

    我们可以双击打开这个identity.json 在colab 右边窗体中会出现数据集,数据集格式是json格式的

 

 这里面我们可以修改里面的数据集或者你在huggingface 上下载别人整理过的优质数据集做训练也是可以的。

我这里提供一个huggingface 上一个数据集给大家看一下。

https://huggingface.co/datasets/LooksJuicy/ruozhiba

问题整理成问答对的形式identity.json 里面的内容换成你整理的或者下载优质数据集即可。

我这里最偷懒的办法就是我还是用原来LLaMA Factory\data\identity.json 自己的数据集我只修改 NAME和AUTHOR

   后面点击三角行按钮点击执行即可,这个时候代码会把我修改的2个参数传递到数据集加载循环代码变量里面进行替换。

5.模型训练

  进入模型训练环节了,这个地方操作其实比较简单的因为前面步骤已经上传数据集或者说已经修改数据集了。我们只需要点击三角形按钮这个步骤执行就可以了,后面就是等模型训练了。这个时间会比较久 因为模型需要迭代很多步骤,通过模型训练迭代很多步才能把原来模型中没有的部分增加到模型里面。你可以理解我们的学习是一样的,需要读很多遍才能记住它,才能把一个知识点变成自己大脑里面的知识。

   下面这块简单讲解一下

   这块其实是下载llama-3-8b-Instruct-bnb-4bit 模型。

  这个是模型训练迭代步数。大概30分钟完成模型微调,这里结束一下,因为我们只是改了个名称和作者 做微调,所以模型训练时间会比较短,如果训练数据集多这个训练时间会很长,几天几十天都不等。而且模型训练需要好的显卡比如A100显卡,而且还不是一张显卡。

6.模型推理

  模型训练完成后,我们需要验证一下微调后的效果。我们在推理代码执行

运行后微调后的模型加载到显存中,这个时候会出现交互对话框

我输入问题。 你好,你是谁?

看到了没,这个时候模型已经正确回答我微调后的返回的结果了。到这里简单的模型微调就完成了,是不是非常简单啊。

总结:我们通过google Colab notebook 非常轻松的完成了模型的中文微调,这样的操作是不是小白也能学会呢?今天分享就这这里结束了,感兴趣的小伙伴可以持续关注,我们下期限会给大家介绍模型下载、模型转换以及在ollama 本地电脑上运行自己的微调模型。