LLAma-Factory框架详细使用方法-0.8.3版本
创始人
2024-11-15 21:09:57
0

一、安装 LLaMA Factory

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git   #拉取代码到本地
cd LLaMA-Factory          #进入目录

conda create -n llamafactory python=3.11   #创建python环境

conda activate llamafactory       #进入conda环境 
pip install -e ".[torch,metrics]"     #下载环境包

可选的额外依赖项:torch、torch-npu、metrics、deepspeed、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、galore、badam、qwen、modelscope、quality 

因为我们后续单机多卡会用到deepspeed,所以我们可以提前下载

pip install deepspeed

当我们安装好环境后,可以看一下我们的llama-factory的版本,命令: llamafactory-cli env

二、LLaMA Board

他是一个可视化的web页面,可以手动去配置参数,可进行推理,微调,非常的方便,由gradio驱动。

启动命令:

llamafactory-cli webui 

我们也可以在启动之前限制显卡等等数量,启动命令如下:
export CUDA_VISIBLE_DEVICES=1,2,3,4 

llamafactory-cli webui

打开链接后的页面展示

每个参数的作用这里我就不具体解释了,网上一搜一大把,如果是新手,我建议去bilibili搜一个LLaMA Board参数讲解视频细心看完!!!

2.1 inference

下面我们来做一个简单的推理测试,我本次的测试模型是qwen2-7b-instruct

1.第一步先点击chat

2.第二部选择你的模型名称

3.粘贴模型路径

2.2 train

首先选择模型和数据还有微调方式

然后选择保存模型的位置
注:如果你的模型比较大,一台显卡无法加载你的模型,你可以选择使用deepspeed单机多卡,DeepSpeed stage选择zero3,如果你一张显卡能够微调,但你有多张显卡的话,这里建议你使用zero2,可以提高接近两倍的训练速度,也就是节省一半的时间

可以看到后台正在训练

前端也可以看到loss在下降,说明模型在正常训练

2.3 train_xinference

当我们训练好模型后,我们可以先测试一下模型的后坏,如果认为模型没问题的话我们再合并模型。

这是我们微调后模型的参数的保存位置

我们进入checkpoint-45,然后复制模型路径,粘贴到检查点路径位置上,然后点击加载模型

2.4 merge_model

我们只需要配置下面箭头指向的几个位置就可以了
注:模型分块不要太大,太大的话会按默认参数,不会按你设置的参数去分块

三、命令形式

3.1 inference

3.1.1 cli-inference

首先进入inference的参数文件配置路径
cd ~/LLaMA-Factory/examples/inference

然后查看llama.yaml文件的内容

然后复制内容,内容如下

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
template: llama3
再新建一个yaml的文件,把内容换成你的模型路径和template
格式如下
model_name_or_path: 模型路径
template:选择见下图

我还是那Qwen2举例子,下图是我的参数配置

然后运行推理命令

CUDA_VISIBLE_DEVICES=2 llamafactory-cli chat examples/inference/qwen2_7b_instruct.yaml
 

注:主要执行命令时自己的所在路径!!!!!!

3.1.2 webchat-inference

现在我们来演示一下web推理加载方式

llamafactory-cli webchat examples/inference/qwen2_7b_instruct.yaml

3.2 train

3.2.1 single_train

如果你只要一台显卡,那么就使用单卡训练

首先进入路径,修改单卡训练的文件配置

cd ~/LLaMA-Factory/examples/train_lora

尽量不要在原文件上修改,我们自己创建一个yaml文件,然后按llama3_lora_sft.yaml文件的格式进行修改,这次我们拿glm4-9B-chat举例子
具体参数配置如下,有些参数如果你理解的话也可以自行更改,我这里用的是官方的数据,如果想用自己构建的数据集,需要到data目录下修改dataset_info.json文件

然后启动训练命令

CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/train_lora/glm4_lora_sft.yaml

下面就开始训练了!

3.2.2 multi_train

如果你的模型参数比较大,一张卡无法加载你的模型参数,那么你就需要使用单机多卡来训练模型,你可选择deepspeed的zero3,如果你的一张显卡能够加载模型参数,你又有多张卡,可以选择zero2,使数据并行,这样可以大大减少训练时间。

加入我现在使用的是qwen2-72b-instruct模型,一张卡无法加载模型参数,这个时候我们必须使用deepspeed的zero3,我们就新建一个yaml文件,参考llama3_lora_sft_ds3.yaml文件内容。

vim glm4_lora_sft_ds3.yaml

然后启动训练命令

export CUDA_VISIBLE_DEVICES=2,3

llamafactory-cli train examples/train_lora/glm4_lora_sft_ds3.yaml

模型开始训练了!

3.3 train_inference

当我们训练好模型参数后,可以先验证一下训练参数的好坏再进行模型合并

进入~/LLaMA-Factory/examples/inference路径下,新建一个yaml文件,参照llama3_lora_sft.yaml修改文件配置

cd ~/LLaMA-Factory/examples/inference

export CUDA_VISIBLE_DEVICES=1,2

llamafactory-cli webchat examples/inference/glm4_lora_sft.yaml

单机url,改成自己的IP就可以打开web页面进行模型测试了

3.4 merge_model

进入~/LLaMA-Factory/examples/merge_lora目录下,参考llama3_lora_sft.yaml文件创建并修改glm4_lora_sft.yaml文件参数,如下图

然后运行合并模型的命令就可以了!!!

llamafactory-cli export examples/merge_lora/glm4_lora_sft.yaml

3.5 api_model

如果想封装model,然后使用模型的接口,可以使用启动 OpenAI 风格的API

llamafactory-cli api examples/inference/glm4_lora_sft.yaml

四、数据格式修改

 我们拿两种格式举例,首先我们需要找到dataset_info.json文件的位置,进入~/LLaMA-Factory/data,目录下有个dataset_info.json,我们需要修改他的参数文件。

4.1 Alpaca 格式

如果你的文件是如下图格式

就按官方的例子修改

例子如下:

4.2 Sharegpt 格式 

如果你的文件格式如下:

官方的说明如下:
 

示例:

只需要修改文件名字和文件路径就可以了!

完结!!!

如果后期有什么疑问,欢迎大家评论区留言

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...