部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >使用LLaMA-Factory对LLM大模型进行微调!训练专属于你的模型!

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

原创
作者头像
MGS浪疯
修改2024-11-22 17:56:30
修改2024-11-22 17:56:30
1.3K2
举报
文章被收录于专栏:MGS浪疯 BlogMGS浪疯 Blog

前言

如今也是出现了各种各样的大模型,如果想要针对性的让他扮演某个角色我们通常采用的是给他输入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的,我们直接在终端输入下面命令

代码语言:txt
复制
conda create -n LLaMa python=3.11

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

完成后,我们输入

代码语言:txt
复制
conda activate LLaMa   

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

LLaMA-Factory安装

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

代码语言:txt
复制
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

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

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

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

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

自定义数据集(非必需)

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

代码语言:txt
复制
  {
    "instruction": "",
    "input": "",
    "output": ""
  },

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

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

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

注:

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

请务必注意路径不要错误

模型下载(必须)

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

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

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

模型移动(非必需)

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

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

代码语言:txt
复制
sudo mv /root/.cache/modelscope/hub/Qwen/ /workspace/qwen

训练模型

启动webui

在控制台输入

代码语言:txt
复制
llamafactory-cli webui

即可启动webui

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

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

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

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

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

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

开始训练

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

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

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

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

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

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

验证训练结果

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

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

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

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

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

LLaMA-Factory支持的模型

模型名

模型大小

Template

7B/13B

baichuan2

560M/1.1B/1.7B/3B/7.1B/176B

6B

chatglm3

35B/104B

cohere

7B/16B/67B/236B

deepseek

7B/11B/40B/180B

falcon

2B/7B/9B/27B

gemma

9B

glm4

1.9B

index

7B/20B

intern2

7B/13B/33B/65B

7B/13B/70B

llama2

1B/3B/8B/70B

llama3

7B/13B

llava

7B/8B/13B/34B/72B/110B

llava_next

7B/34B

llava_next_video

1B/2B/4B

cpm/cpm3

7B/8x7B/8x22B

mistral

1B/7B

3B

paligemma

1.3B/2.7B

4B/7B/14B

phi

12B

pixtral

0.5B/1.5B/3B/7B/14B/32B/72B/110B

qwen

2B/7B/72B

qwen2_vl

3B/7B/15B

7B/13B/65B

xverse

1.5B/6B/9B/34B

yi

6B/34B

yi_vl

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 所用项目
  • 所用设备
  • 开启学术加速(非必需)
  • 安装LLaMA-Factory(必须)
    • conda环境创建
    • LLaMA-Factory安装
    • 自定义数据集(非必需)
      • 注:
  • 模型下载(必须)
    • 模型移动(非必需)
  • 训练模型
    • 启动webui
    • 验证模型路径是否正确(非必需)
    • 开始训练
    • 验证训练结果
  • LLaMA-Factory支持的模型
  • 硬件需要
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档