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

【llama-factory】Lora微调和DPO训练

微调参考
DPO参考

llama-factory官网

LoRA微调

数据集处理

数据集格式和注册
Alpaca数据集格式:

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","system": "系统提示词(选填)","history": [["第一轮指令(选填)", "第一轮回答(选填)"],["第二轮指令(选填)", "第二轮回答(选填)"]]}
]

dataset_info.json中注册数据集:
注意可以自定义数据集路径!

"数据集名称": {"file_name": "data.json","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
}

SFT训练及其yaml设置

sft
llama3_lora_sft.yaml配置中:template可以参考github官方的template,比如qwen1-2.5的template都是qwen。

yaml中参数介绍

训练的时候设置一下卡:

CUDA_DEVICE_ORDER='PCI_BUS_ID' CUDA_VISIBLE_DEVICES=2 llamafactory-cli train tmp/llama3_lora_sft.yaml

merge模型

qwen2.5_merge_sft.yaml

### model
model_name_or_path: /data1/ztshao/pretrained_models/Qwen/Qwen2.5-7B-Instruct
adapter_name_or_path: /data1/ztshao/projects/projects428/military/results/lora_sft
template: qwen
finetuning_type: lora### export
export_dir: /data1/ztshao/projects/projects428/military/results/merge_sft
export_size: 2
export_device: cpu
export_legacy_format: false

merge完在对应的输出文件夹里自带了ollama导入模型需要的Modelfile文件。

merge操作:

llamafactory-cli export /data1/ztshao/projects/projects428/military/src/finetune/qwen2.5_merge_sft.yaml

DPO

数据集处理

数据集格式和注册
Alpaca数据集格式:

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","chosen": "优质回答(必填)","rejected": "劣质回答(必填)"}
]

dataset_info.json中注册数据集:

"数据集名称": {"file_name": "data.json","ranking": true,"columns": {"prompt": "instruction","query": "input","chosen": "chosen","rejected": "rejected"}
}

DPO训练及其yaml设置

DPO训练
llama-factory的DPO训练大讨论

我的yaml:

### model
model_name_or_path: /data1/ztshao/pretrained_models/Qwen/Qwen2.5-7B-Instruct
trust_remote_code: true### method
stage: dpo
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all
pref_beta: 0.1
pref_loss: sigmoid  # choices: [sigmoid (dpo), orpo, simpo]### dataset
dataset: military_dpo
template: qwen
cutoff_len: 2048
max_samples: null
overwrite_cache: true
preprocessing_num_workers: 16
dataloader_num_workers: 4### output
output_dir: /data1/ztshao/projects/projects428/military/results/models
logging_steps: 2
save_steps: 50
plot_loss: true
overwrite_output_dir: true
save_only_model: false
report_to: none  # choices: [none, wandb, tensorboard, swanlab, mlflow]### train
per_device_train_batch_size: 2
gradient_accumulation_steps: 4
learning_rate: 5.0e-5
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
resume_from_checkpoint: null

训练:

CUDA_DEVICE_ORDER='PCI_BUS_ID' CUDA_VISIBLE_DEVICES=2 llamafactory-cli train tmp/llama3_lora_dpo.yaml
http://www.xdnf.cn/news/5340.html

相关文章:

  • 论文分享➲ arXiv2025 | TTRL: Test-Time Reinforcement Learning
  • JavaSE核心知识点02面向对象编程02-06(泛型)
  • 多环境开发
  • Makefile中 链接库,同一个库的静态库与动态库都链接了,生效的是哪个库
  • 【RT-Thread Studio】W25Q128配置
  • unity通过transform找子物体只能找子级
  • OpenAI 结构改革:迈向民主化 AI 的新篇章
  • TCP的连接管理
  • lnx 0-1 积分
  • 多个python环境下,pip安装无法成功解决方案
  • 《P7167 [eJOI 2020] Fountain (Day1)》
  • 线程互斥与线程同步
  • HTML入门教学
  • 不同类型的 SAP 项目
  • 零件画图实战提升案例(下)
  • 7系列 之 I/O标准和终端技术
  • 2.商户查询缓存
  • 时钟晶振锁相环pll方向技术要点和大厂题目解析
  • MRNet 数据集分享
  • 流式数据(Streaming Data)和非流式数据(Batch Data)区别、使用场景、优化-来自前端的浅解
  • 微机控制电子式持久蠕变慢应变应力腐蚀试验机
  • sh脚本多卡顺序执行训练文件
  • C++中线程安全的对多个锁同时加锁
  • C++STL在算法竞赛中的应用详解
  • 推理还原的干货
  • MySQL索引使用规则详解:从设计到优化的完整指南
  • 深度学习全流程解析
  • linux 开发小技巧之git增加指令别名
  • 树莓派4的v4l2摄像头(csi)no cameras available,完美解决
  • 让人类和人造智能体更好的感知世界 千眼狼ACE高速摄像机发布