使用LLaMA-Factory对LLM大模型进行微调!训练专属于你的模型!

前言

如今也是出现了各种各样的大模型,如果想要针对性的让他扮演某个角色我们通常采用的是给他输入prompt(提示词)。

但是如果遇到一些”思想钢印”较深的大模型,使用提示词洗脑可能效果并不好。

那我们有没有其他方法来解决这个问题?

当然有,那就是自行微调一个大模型!

本篇文章,就带大家走一遍微调大模型的全流程

所用项目

LLaMA-Factory:https://github.com/hiyouga/LLaMA-Factory

qwen2.5:7b:https://huggingface.co/Qwen

(因为目前LLaMA-Factory支持的模型有限,所以并没有采用腾讯开源的混元模型,但总体教程是一样的)

所用设备

因为涉及到模型训练,所需要的算力也比较大,同时,因为模型训练过程中也会产生许多其他文件,所以内存和存储也尽量大一些

本次使用的是腾讯云的HAI服务器

本次选择的显存大小为32G(实际显卡型号为v100)

如果你的显存过小,训练过程中需要使用qlora进行训练

请在此添加图片描述

这里地区选择可以根据自己需要选择,因为目前国内部分地区也有学术加速,不会说在下部分文件的时候出现无法下载的情况

开启学术加速(非必需)

服务器创建后,在控制台首页右侧会有一个学术加速按钮,我们点击,选择对应地区即可开启

请在此添加图片描述

请在此添加图片描述

安装LLaMA-Factory(必须)

服务器创建完成后,我们点击算力连接,我们这里使用cloud studio进行演示

请在此添加图片描述

进入后首先建一个终端

请在此添加图片描述

conda环境创建

因为是自带conda的,我们直接创建我们需要的环境即可

官方是推荐使用python3.11的,我们直接在终端输入下面命令

conda create -n LLaMa python=3.11

随后就会自动开始安装我们所需要的东西

请在此添加图片描述

完成后,我们输入

conda activate LLaMa   

即可进入我们这个虚拟环境

请在此添加图片描述

LLaMA-Factory安装

我们按照官方给的文档,依次输入下面三条指令

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

第一条为下载github仓库内的代码,如果遇到网络不畅,可以尝试下载到本地然后手动上传到云端,或者将官方地址替换为镜像站地址

请在此添加图片描述

完成后我们进入文件夹安装依赖

请在此添加图片描述

此过程需要下载大量文件还请耐心等待~

如果不显示报错,并且和图示一样即可证明安装完成

请在此添加图片描述

自定义数据集(非必需)

我们本次训练的主要是LLM模型的自我认识(身份),其数据集格式为下

  {
    "instruction": "",
    "input": "",
    "output": ""
  },

你可以在程序的data文件夹下找到这个文件

请在此添加图片描述

如果你需要使用其他数据集,可以根据这个格式进行编辑

我们这里创建一个zhongerbing.json文件,用它来进行训练模型的自我认知

请在此添加图片描述

注:

使用自定义数据集时,请更新data/dataset_info.json文件。

请在此添加图片描述

请务必注意路径不要错误

模型下载(必须)

在魔搭官网,我们在模型右侧可以看到模型下载教程

请在此添加图片描述

如果您是国内用户,我们推荐使用魔搭进行模型下载

如果您是海外用户,我们推荐使用hugging face进行模型下载

模型移动(非必需)

因为默认下载路径为/root/.cache/modelscope/hub/

我们可以把它移动到方便修改的路径,可以使用下面这个指令

sudo mv /root/.cache/modelscope/hub/Qwen/ /workspace/qwen

训练模型

启动webui

在控制台输入

llamafactory-cli webui

即可启动webui

我们根据自己服务器的ip,和输出的对应端口,使用浏览器即可进入

请在此添加图片描述

进入后我们选择对应的模型,填写好路径

请在此添加图片描述

验证模型路径是否正确(非必需)

请在此添加图片描述

我们点击chat,选择加载模型,如果没有报错可以正常出现内容即为正常

另外,如果您选择了量化,可能需要手动配置部分依赖,具体情况请看控制台报错

请在此添加图片描述

使用完毕后记得点击卸载模型,否则会一直占用显存

开始训练

我们返回train,选择我们需要的数据集(你可以点击预览查看数据集)然后我们下滑直接点击开始训练即可

请在此添加图片描述

开始训练后,我们稍等片刻可以看到训练进度

请在此添加图片描述

右侧为loss,loss尽量低一些,但同时也不能过低,过低会出现过拟合的情况,适得其反

我们也可以适当添加训练次数,每次完成后通过chat验证一下效果

模型训练不是不是越多越好,需根据具体情况分析

单次训练完成后会出现如图提示

请在此添加图片描述

验证训练结果

训练完成后,我们在上方检查点选择我们的一个数据

请在此添加图片描述

随后在chat处加载我们的模型,进行对话

请在此添加图片描述

然后我们进行问答,就可以得到想要的结果

右侧参数可以根据自己需要进行调整

我们可以将训练好的检查点,融入到模型之中,可以在其他地方使用

LLaMA-Factory支持的模型

模型名 模型大小 Template
Baichuan 2 7B/13B baichuan2
BLOOM/BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B
ChatGLM3 6B chatglm3
Command R 35B/104B cohere
DeepSeek (Code/MoE) 7B/16B/67B/236B deepseek
Falcon 7B/11B/40B/180B falcon
Gemma/Gemma 2/CodeGemma 2B/7B/9B/27B gemma
GLM-4 9B glm4
Index 1.9B index
InternLM2/InternLM2.5 7B/20B intern2
Llama 7B/13B/33B/65B
Llama 2 7B/13B/70B llama2
Llama 3-3.2 1B/3B/8B/70B llama3
LLaVA-1.5 7B/13B llava
LLaVA-NeXT 7B/8B/13B/34B/72B/110B llava_next
LLaVA-NeXT-Video 7B/34B llava_next_video
MiniCPM 1B/2B/4B cpm/cpm3
Mistral/Mixtral 7B/8x7B/8x22B mistral
OLMo 1B/7B
PaliGemma 3B paligemma
Phi-1.5/Phi-2 1.3B/2.7B
Phi-3 4B/7B/14B phi
Pixtral 12B pixtral
Qwen (1-2.5) (Code/Math/MoE) 0.5B/1.5B/3B/7B/14B/32B/72B/110B qwen
Qwen2-VL 2B/7B/72B qwen2_vl
StarCoder 2 3B/7B/15B
XVERSE 7B/13B/65B xverse
Yi/Yi-1.5 (Code) 1.5B/6B/9B/34B yi
Yi-VL 6B/34B yi_vl
Yuan 2 2B/51B/102B yuan

硬件需要

* 估算值

方法 精度 7B 13B 30B 70B 110B 8x7B 8x22B
Full AMP 120GB 240GB 600GB 1200GB 2000GB 900GB 2400GB
Full 16 60GB 120GB 300GB 600GB 900GB 400GB 1200GB
Freeze 16 20GB 40GB 80GB 200GB 360GB 160GB 400GB
LoRA/GaLore/BAdam 16 16GB 32GB 64GB 160GB 240GB 120GB 320GB
QLoRA 8 10GB 20GB 40GB 80GB 140GB 60GB 160GB
QLoRA 4 6GB 12GB 24GB 48GB 72GB 30GB 96GB
QLoRA 2 4GB 8GB 16GB 24GB 48GB 18GB 48GB
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
隐藏
Sing