type
status
date
slug
summary
tags
icon
password

一、 前言

之前在GitHub上找了一个模仿甄嬛语气的大模型项目。对大模型的微调和数据的处理格式有了一个初步的了解。
但是个人觉得,对于新手来说,数据的处理这一方面就很难接受了。因为在使用数据的时候其实并不知道是如何清洗数据的;再者到最后的时候也没有完整的将模型部署出来(虽然最后用了lmdeploy,但是感觉还是不成熟的框架)。所以我在想,如果基于某个大模型,让大模型改变自我认知,是不是也可以叫做一种微调呢?所以基于这个想法,所以我决定使用Llamafactory进行大模型自我认识的微调。

二、 前期准备

1、 准备Llamafactory

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
注意官方文件在pip install这一步上只要求了torch、metrics,如果有什么依赖的话可以进行添加。如果像我那样写的话,就是将所有的包全部都安装上去了。如图所示:
notion image

2、 准备数据集

因为是要对大模型的自我认知进行训练,所以说基本的问题就是:“你是谁”,“你的名字是什么?”之类的问法。拥有正确大模型的自我认知的回答就是:“我是XXX,我是由XXX创造出来的”之类的回答。所以在这里的数据集格式为,input(或者是instruction):“你是谁?”,output:“我是XXX,我是由XX创造的”
大概是这个样式的,我使用的格式为Alpaca格式:
notion image

3、 如何使用LlaMa-Factory进行大模型的微调、推理和部署

1) 微调

在LLaMa-factory下的微调是十分简单的。首先要准备好合适且符合格式的数据集,然后将数据集放在data文件夹下(其他文件夹也可以,但是放在data文件夹下方便后续的查找)。并将data文件夹下的dataset_info.json里面的内容进行添加,有关数据集的具体格式可以参考:https://github.com/hiyouga/LLaMA-Factory/tree/main/data
如果是使用命令行的化,那么就需要准备一个.yaml文件,里面记录的就是基于基础模型的一些微调参数,微调方法等。里面记录的类型大致分为6个:基础模型相关、微调方法相关、数据集相关、输出相关、训练相关、验证相关(可选)。格式如下图所示:
notion image
然后使用命令进行微调:
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

2) 推理

推理,就是高效的使用大模型。在本例中,就是高效的进行对话。如果是用命令行进行对话的话,那么还是需要建立一个yaml文件,将基础模型的路径,微调之后的参数文件路径,模板,以及使用什么推理引擎都写出来。具体的格式可以参考:https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/inference/llama3_lora_sft.yaml
格式如下:
notion image

3) 合并

合并就是将得到的微调参数和基础模型合并的过程。合并之后大小不会发是需要生改变,可以直接使用而不用加载任何的参数文件。如果是使用命令行的话,需要建立一个yaml文件,文件里面主要写基础文件的位置,参数文件的位置,导出文件的位置等。格式参考链接:https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/merge_lora/llama3_lora_sft.yaml
notion image

4、 实验步骤

对于LLaMa-Factory来说,本身就有webUI界面可以去选择,所以对于初入门的人来说极大的降低了门槛。

1) 激活LLaMa-Factory的WebUI界面

命令:llamafactory-cli webui
notion image
出现这个结果之后,点击链接进入到webui的界面.
notion image
这样的话就算正确进入到界面内部了

2) 如何在页面中进行微调(以大模型自我认知为例)

页面中分为三个部分:
第一个部分是:基础模型、微调方式的选择等
notion image
第二个部分是:微调的数据集训练的学习率,训练轮数、批处理大小等参数
notion image
第三部分是:开始训练的按钮和输出结果的保存
notion image
对于我们而言,第一部分没有什么好说的,选定一个基础模型,然后将基础模型的绝对路径写入即可。 第二部分中的数据集也可以使用绝对路径,也可以在数据文件夹中的路径中去选择(如果是数据文件夹中选择,就可以同时导入多个文件进行微调,所以在起llamafactory-cli命令的时候,最好是在数据文件夹下起),剩下的参数就根据自己需要进行选择。 第三部分中,也是可以根据自己的需要进行选择就行。

3) 如何在页面中进行推理

在第二部分中点击chat部分,可以看到分成两个部分,第一部分还是和之前一样,但是需要将第一部分的基本模型和微调之后得到的检查点路径写上。第二部分需要选择推理引擎。然后加载模型。
如果加载成功,就会出现以下图片
notion image
用自我认知的问题进行提问
notion image
发现正确
如果是使用基本模型呢?
notion image
发现是最基本的模型

4) 如何在界面中将基础模型和微调之后的参数文件进行合并

第一部分还是一致,将第二部分换到export部分。然后在第一部分填上参数文件的地址,在第二部分填入导入路径。
notion image
在大模型训练过程中一些超参数的含义在win11安装WSL2 Ubuntu版本,非C盘的过程
Loading...
JucanaYu
JucanaYu
干饭人,干饭魂🍚
最新发布
Python练习-类型转换
2025-4-9
Python练习-count、remove、append、extend
2025-4-8
Python练习-set和sorted
2025-4-6
Python练习-insert和del
2025-4-6
Python练习-range
2025-4-6
Python练习-双指针法
2025-4-6