当前位置: 首页 > article >正文

【LLaMa-Factory】监督微调训练方法

命令行

您可以使用以下命令进行微调:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

examples/train_lora/llama3_lora_sft.yaml 提供了微调时的配置示例。该配置指定了模型参数、微调方法参数、数据集参数以及评估参数等。您需要根据自身需求自行配置。

### examples/train_lora/llama3_lora_sft.yaml
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct

stage: sft
do_train: true
finetuning_type: lora
lora_target: all

dataset: identity,alpaca_en_demo
template: llama3
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

output_dir: saves/llama3-8b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000

val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

备注

模型 model_name_or_path 、数据集 dateset 需要存在且与 template 相对应。

重要训练参数

名称

描述

model_name_or_path

模型名称或路径

stage

训练阶段,可选: rm(reward modeling), pt(pretrain), sft(Supervised Fine-Tuning), PPO, DPO, KTO, ORPO

do_train

true用于训练, false用于评估

finetuning_type

微调方式。可选: freeze, lora, full

lora_target

采取LoRA方法的目标模块,默认值为 all

dataset

使用的数据集,使用”,”分隔多个数据集

template

数据集模板,请保证数据集模板与模型相对应。

output_dir

输出路径

logging_steps

日志输出步数间隔

save_steps

模型断点保存间隔

overwrite_output_dir

是否允许覆盖输出目录

per_device_train_batch_size

每个设备上训练的批次大小

gradient_accumulation_steps

梯度积累步数

max_grad_norm

梯度裁剪阈值

learning_rate

学习率

lr_scheduler_type

学习率曲线,可选 linearcosinepolynomialconstant 等。

num_train_epochs

训练周期数

bf16

是否使用 bf16 格式

warmup_ratio

学习率预热比例

warmup_steps

学习率预热步数

push_to_hub

是否推送模型到 Huggingface

摘自SFT 训练 - LLaMA Factory   方面后面查找阅读。


http://www.kler.cn/a/387919.html

相关文章:

  • 探索 JNI - Rust 与 Java 互调实战
  • 弹性盒子布局(Flexbox)详细介绍
  • go reflect 反射
  • 卸载一直显示在运行的应用
  • AI赋能电商:创新应用提升销售与用户体验
  • 项目模块详细说明
  • Android 启动时应用的安装解析过程《二》
  • MATLAB实现智能水滴算法(Intelligent Water Drops Algorithm, IWDA)
  • oracle 带有小数点的0.几数据在转化为字符串的时候丢失前面的0
  • C# 用于将一个DataTable转换为Users对象的列表
  • fastapi_socketio连接vue的socktio.client
  • prompt资料收集
  • 网络编程示例之网络基础知识
  • PVE纵览-备份与快照指南
  • uniapp+vue加油服务系统 微信小程序
  • 在一个项目的完整开发中,会涉及到多个 Git 命令
  • kafka面试夺命30问
  • 6:arm condition code flags详细的讲解
  • P5019 [NOIP2018 提高组] 铺设道路
  • volta多版本node管理工具
  • 「Mac畅玩鸿蒙与硬件30」UI互动应用篇7 - 简易计步器
  • 共享汽车管理:SpringBoot技术实现指南
  • ubuntu 22.04 如何调整进程启动后能打开的文件数限制
  • 基于Spring Boot+Vue的养老院管理系统【原创】
  • ElasticSearch备考 -- 集群配置常见问题
  • FPN(Feature Pyramid Network)