以LLaMA-Factory模型说明文档举例,文档如下:
examples/
├── lora_single_gpu/
│ ├── pretrain.sh: 进行预训练
│ ├── sft.sh: 进行指令监督微调
│ ├── reward.sh: 进行奖励模型训练
│ ├── ppo.sh: 进行 PPO 训练
│ ├── dpo.sh: 进行 DPO 训练
│ ├── orpo.sh: 进行 ORPO 训练
│ ├── prepare.sh: 保存预处理后的数据集
│ └── predict.sh: 进行批量预测
├── qlora_single_gpu/
│ ├── bitsandbytes.sh: 微调 4/8 比特 BNB 模型
│ ├── gptq.sh: 微调 4/8 比特 GPTQ 模型
│ ├── awq.sh: 微调 4 比特 AWQ 模型
│ └── aqlm.sh: 微调 2 比特 AQLM 模型
├── lora_multi_gpu/
│ ├── single_node.sh: 使用 Accelerate 进行单节点训练
│ └── multi_node.sh: 使用 Accelerate 进行多节点训练
├── full_multi_gpu/
│ ├── single_node.sh: 使用 DeepSpeed 进行单节点训练
│ └── multi_node.sh: 使用 DeepSpeed 进行多节点训练
├── merge_lora/
│ ├── merge.sh: 将 LoRA 权重合并到预训练模型中
│ └── quantize.sh: 使用 AutoGPTQ 量化模型
├── inference/
│ ├── cli_demo.sh: 启动命令行推理接口
│ ├── api_demo.sh: 启动 OpenAI 风格 API
│ ├── web_demo.sh: 启动浏览器推理接口
│ └── evaluate.sh: 在 MMLU 数据集上评测模型
└── extras/
├── galore/
│ └── sft.sh: 使用 GaLore 训练模型
├── loraplus/
│ └── sft.sh: 使用 LoRA+ 训练模型
├── llama_pro/
│ ├── expand.sh: 扩展模型中的层
│ └── sft.sh: 训练扩展后的模型
└── fsdp_qlora/
└── sft.sh: 使用 FSDP 微调量化模型
该模型分为lora_single_gpu,qlora_single_gpu,lora_multi_gpu,full_multi_gpu,merge_lora,inference,extras七个文件,每个文件对应一个功能集合。
文件名 | 功能名 | |
lora_single_gpu | 单个GPU上运行的LoRA模型 | |
qlora_single_gpu | 在单个GPU上微调QLoRA模型 | |
lora_multi_gpu | 使用LLaMA-Factory加速器进行多GPU训练 | |
full_multi_gpu | 使用DeepSpeed进行多GPU训练 | |
merge_lora | 将LoRA模型权重合并到预训练模型 使用AutoGPTQ量化模型 | |
inference | 用于模型推理的各种演示 | |
extras | 额外的功能示例 |
一、lora_single_gpu文件
1.pretrain:预训练模型,深度学习模型的初始模型,其确定了模型的总体结构与参数信息。预训练模型是模型在数据集上面初始训练,但其精确度等评估值效果可能不理想,需要进行微调来提高在特定任务与数据集上的精确度。
2.sft:指令监督微调,是机器学习当中强化学习的一种微调形式,类似于监督学习,但其不仅数据具有标签信息,模型还针对特定任务提供有针对性的专家指导意见(例如在新艳的花朵选取任务中,会把颜色特征的权重上调,其他特征的权重下降,使得模型更关注颜色特征,满足任务需求)。而微调就是通过参数迭代等方式求损失函数最小值,使得模型的性能更好。
3.reward:强化学习的模型训练,强化学习是一种模型通过与环境交互,通过环境提供的奖励机制去指导模型下一次采取何种行动,从而在该问题中找到最优解。
4.ppo:强化学习的微调优化,跟其他机器学习方法一样,都是通过各种梯度下降策略,来得到最优解。
5.dpo:分布式训练,意在加快训练速度,通过分布式服务器将计算任务分配到多个处理器或节点上进行并行化训练。
6.orpo:强化学习的实时训练优化,是一种允许用户远程使用强化学习模型的方法,实时控制模型的梯度下降,从而找到最优解。
7.prepare:模型保存,一种深度学习必备功能,模型训练完以后要保存模型或模型参数,以便后续使用。
8.predict:模型预测,一种深度学习常见操作,使用保存的模型去对新的数据进行推理和分类等预测功能。