论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
人工智能
›
人工智能
›
12 大模子学习——LLaMA-Factory微调
12 大模子学习——LLaMA-Factory微调
九天猎人
论坛元老
|
2025-4-11 18:40:17
|
显示全部楼层
|
阅读模式
楼主
主题
1648
|
帖子
1648
|
积分
4944
一、LLaMA-Factory说明
LLaMA-Factory 是一个低代码的大规模语言模子(LLM)训练框架,它集合了大模子各种好用的开源工具,简化了大模子的微调、评估和部署过程,降低了利用难度。
llama-factory的中文readme地址:LLaMA-Factory/README_zh.md at main · hiyouga/LLaMA-Factory · GitHub
教程:LLaMA Factory
二、LLaMA-Factory 安装与利用
0、FinalShell毗连服务器,便于文件管理
1、克隆 LLaMA-Factory 项目,并上传服务器
git clone https://github.com/hiyouga/LLaMA-Factory.git
# 如果觉得太慢,可以先官方下载
git clone https://gitclone.com/github.com/hiyouga/LLaMA-Factory.git
复制代码
一般可以去官网 https://github.com/hiyouga/LLaMA-Factory.git 上下载好之后解压
(1)文件上传服务器并解压
终端:
切换模子地点目次:cd /root/lanyun-tmp
解压模子: unzip /root/lanyun-tmp/LLaMA-Factory-main.zip
2、安装 LLaMA-Factory 焦点包
终端
需要先进入解压后的 LLaMA-Factory 目次
cd /root/lanyun-tmp/LLaMA-Factory-main
复制代码
安装焦点包
pip install -e .
复制代码
3、进入 LLaMA-Factory WEBUI 界面
voscode毗连服务器,打开解压后的llamafactory
终端输入
# 使用此命令开启 LLaMA-Factory 服务,同样需先进入 LLaMA-Factory 目录
cd /root/lanyun-tmp/LLaMA-Factory-main
llamafactory-cli webui
复制代码
乐成运行后会出现以下信息,毗连浏览器打开便是 LLaMA-Factory 的界面
利用viscode终端进入,可直接进入界面
三、常用参数说明
1、语言
英语欠好选中文 zh 即可
en:英语
ru:俄语
zh:中文
ko:韩语
ja:日文
2、模子名称和模子路径
模子名称:待训练的模子名称,由于每个大模子能够担当的提示词模板都是固定的,修改此参数【对话模版】参数也会自动匹配。
模子路径:支持huggingface在线路径,大概
本地的模子路径(注意是绝对路径,.config文件上一层)
一般先下载好模子,用本地模子路径
3、微调方法和检查点路径
(1)微调方法
LLaMA-Factory 提供了三种微调方法
full:全量微调,就是全部权重都举行训练。
freeze:冻结微调,只训练部分层,其它层的权重举行冻结,也就是不举行训练。
lora:如今众多微调方法中,最常用,也是相对来说效果比较好的微调方法之一。有雷同需要的计算资源少,计算服从高,不改变原始模子结构等等的优点。
(2)检查点路径
检查点路径在长时间训练大模子的时候会常常用,主要作用是把训练过程中的阶段性结果举行保存,这里是设置
指定的保存地址
的。这样如果训练过程意外中断,可以从检查点开始继承训练,不用从头再开始训练。若不设置,则默认保存在 LLaMA-Factory 的 /saves文件中
微调前可以加载模子 进入chat模子,看模子能否正常加载。
四、预备数据集
具体可以看 LlamaFactory 的说明文档: 数据处理 - LLaMA Factory
LLaMA-Factory 如今
只支持
Alpaca 和 ShareGPT 两种数据格式
,分别适用于指令监督微调和多轮对话任务。
dataset_info.json 包含了全部可用的数据集。如果您盼望利用自定义数据集,请务必在 ataset_info.json 文件中添加数据集形貌,并通过修改 dataset: 数据集名称 配置来利用数据集。
Alpaca 格式:
Alpaca 格式由斯坦福大学的研究职员提出,主要用于单轮指令微调任务。针对不同任务,数据集的格式要求不同。
应用场景:
- 适用于单轮任务,如问答、文本天生、择要、翻译等。
- 结构轻便,任务导向清楚,适合低成本的指令微调。
属于Alpaca 情势的 指令监督微调数据集,焦点有4个键,分别对应着微调的四个指令:
instruction
(必填):明确的任务指令,模子需要根据该指令天生输出。
input
(可选):与任务相干的背景信息或上下文。在 RAG任务中,input参数可以用于提供检索到的外部知识或上下文信息,资助模子天生更正确的回答
output
(必填):模子需要天生的精确回答。
system
(可选):系统提示词,用于定义任务的上下文。
history
(可选):历史对话记载,用于多轮对话任务。用于控制多轮对话,指上下文信息,若无历史对话,则为[]。注:如果有多轮对话,那么history 这个list是有先后顺序的。list[0]为第一轮,list[1]为第二轮,依次向后排序,而 instruction 是存放最新一轮对话信息示例
1、LlamaFactory 的数据集配置分为两步:
(1)预备数据
将训练数据存放至.json文件中,然后将训练数据的json文件上传至LLaMA-Factory 的 ./data目次下
这里利用的数据集是直接从魔塔上下载的中文医疗对话数据集
train_0001_of_0001.json放入 LLaMA-Factory 文件夹中的 data 文件夹下
如果数据集分别了训练集和测试集,则将此中的 alpaca_train_dataset.json 和 alpaca_test_dataset.json 都放入 LLaMA-Factory 文件夹中的 data 文件夹下
(2)注册数据
配置 ./data 中 的 data_info.json 文件,把训练数据路径(文件名)增补进入即可。名称可以自由命名
在 data 文件夹中的 data_info.json 中增补新添的数据集文件
(3)在 webui 页面中的数据集栏选择调用
这里数据集可以选一个或多个
五、训练相干参数
1、训练方式
Supervised Fine-Tuning (监督微调)监督微调是最常见的微调方法,利用标注好的数据对预训练模子举行进一步训练,以顺应特定任务(如分类、问答等)。
Reward Modeling(奖励建模)奖励建模是一种用于优化模子输出质量的方法,通常用于强化学习(RL)的上下文中。
PPO(Proximal Policy Optimization) PPO 是一种基于强化学习的微调方法,用于优化模子的输出计谋。
DPO (Direct Preference Optimization)DPO 是一种基于人类偏好的直接优化方法,用于训练模子以天生更符合人类偏好的输出。
Pre-Training(预训练)预训练是指从头开始训练一个大模子,通常利用大量的无监督数据(如文本语料库)。预训练的目标是让模子学习通用的语言知识和模式。
2、训练参数
以上的参数就与平常 LLM 训练时候雷同
学习率:可以不用修改
训练轮次:根据数据集大小调解,可以调的高一些,好比1000,由于可以随时停止
梯度:根据显存情况调解
最大样本数:根据数据集大小和训练需求设置。主要是防止数据量过大导致的内存溢出问题
计算类型:这里支持混合精度训练选择(fp16或 bf16)bf16的效果更佳一些。 bf16对某些架构是不支持的,和硬件有关(GPU的架构)。
截断长度:根据任务需求/数据集配置,通常默认值为 1024
验证集比例
3、其他参数
日志隔断:多久输出日志信息
保存问题:多久保存权重,这里不是按轮次保存
4、LoRA参数
主要是Lora秩的大小、Lora缩放系数
LoRA秩:LoRA秩越大模子越大,默认秩是8
(一)训练train
在参数和数据集配置完成后就可以开始训练了,显存不够的话调一下参数,模子训练好后,会保存至 LLaMA-Factory 的 /saves文件中
方式一:
参数配置完成后,选择预览命令,将命令复制,然后粘贴到一个新建的yaml文件,再在终端输入指令运行
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml # 示例
复制代码
方式二:
参数配置完成后,直接点击开始
训练完后就可以在设置的output_dir下看到如下内容,主要包含3部分
adapter开头的就是 LoRA保存的结果了,后续用于模子推理融合
training_loss 和trainer_log等记载了训练的过程指标
其他是训练当时各种参数的备份
loss在 正常情况下会随着训练的时间慢慢变小,末了需要降落到1以下的位置才会有一个比较好的效果,可以作为训练效果的一个中心指标。
继承训练
加载检查点路径(适配器),继承训练
(二)模子导出 Export
方式一:
创建导出.yaml文件,终端输入指令运行
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml # 示例
复制代码
template根据具体模子会用不同的模板,可在webui中检察
方式二:
切换至 Export ,增补检查点路径(checkpoint文件路径、检查点路径),即可导出
(三)模子测试 Evaluate&
redict
可以用 Evaluate&
redict 这个模块对模子举行测试,这里利用测试集,其他保持不变
(四)模子推理chat
照旧先加载已经合并完成的模子,然后选择 Chat 板块举行模子的推理
知识扩展
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
九天猎人
论坛元老
这个人很懒什么都没写!
楼主热帖
从洞察到决策,一文解读标签画像体系建 ...
C# 使用流读取大型TXT文本文件 ...
袋鼠云平台代码规范化编译部署的提效性 ...
Flink的API分层、架构与组件原理、并行 ...
Redis命令手册
打穿你的内网之三层内网渗透 ...
SpringBoot(八) - 统一数据返回,统一 ...
JVM
小程序【第一期】
微服务(三)之负载均衡(服务端和客户端) ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
运维.售后
云原生
快速回复
返回顶部
返回列表