场景介绍
方案概览
本文档利用训练框架LlamaFactory+华为自研Ascend Snt9B硬件,为用户提供了常见主流开源大模型在ModelArts Lite DevServer上的不同训练阶段方案,包括指令监督微调、DPO偏好训练、RM奖励模型训练、PPO强化训练方案。
- DPO(Direct Preference Optimization):直接偏好优化方法,通过直接优化语言模型来实现对大模型输出的精确把控,不用进行强化学习,也可以准确判断和学习到使用者的偏好,最后,DPO算法还可以与其他优化算法相结合,进一步提高深度学习模型的性能。
- RM奖励模型(Reward Model):是强化学习过程中一个关键的组成部分。它的主要任务是根据给定的输入和反馈来预测奖励值,从而指导学习算法的方向,帮助强化学习算法更有效地优化策略
- PPO强化学习(Proximal Policy Optimization):是一种在强化学习中广泛使用的策略优化算法。它属于策略梯度方法的一种,旨在通过限制新策略和旧策略之间的差异来稳定训练过程。PPO通过引入一个称为“近端策略优化”的技巧来避免过大的策略更新,从而减少了训练过程中的不稳定性和样本复杂性。
- 指令监督式微调(Self-training Fine-tuning):是一种利用有标签数据进行模型训练的方法。 它基于一个预先训练好的模型,通过调整模型的参数,使其能够更好地拟合特定任务的数据分布。 与从头开始训练模型相比,监督式微调能够充分利用预训练模型的知识和特征表示,从而加速训练过程并提高模型的性能。
- LoRA(Low-Rank Adaptation): 这种策略主要针对如何在保持模型大部分参数固定的同时,通过引入少量可训练参数来调整模型以适应特定任务。
- LoRA+(Efficient Low Rank Adaptation of Large Models):延续了 LoRA的精髓进一步提升了在复杂任务上对大模型进行微调的效率和性能,核心在于其独特的学习率比率(loraplus_lr_ratio)机制,适用于那些需要精确控制模型微调过程的场景,当前该策略仅支持qwen1.5-7B指令监督式微调。
- 全参训练(Full):这种策略主要对整个模型进行微调。这意味着在任务过程中,除了输出层外,模型的所有参数都将被调整以适应新的任务。
本方案目前仅适用于部分企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。
约束限制
- 本文档适配昇腾云ModelArts 6.3.910版本,请参考表1获取配套版本的软件包,请严格遵照版本配套关系使用本文档。
- 本文档中的模型运行环境是ModelArts Lite DevServer。
- 镜像适配的Cann版本是cann_8.0.RC3。
- DevServer驱动版本要求23.0.6
- PyTorch版本:2.2.0
- Python版本:3.10
- 确保容器可以访问公网。
- 仅支持313T、376T、400T
训练支持的模型列表
本方案支持以下模型的训练,如表1所示。
支持模型 |
支持模型参数量 |
权重文件获取地址 |
---|---|---|
Llama2 |
llama2-7b |
|
llama2-13b |
||
llama2-70b |
||
Llama3 |
llama3-8b |
|
llama3-70b |
||
Llama3.1 |
llama3.1-8b |
https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct/tree/main |
llama3.1-70b |
https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct/tree/main |
|
Qwen1.5 |
qwen1.5-0.5b |
|
qwen1.5-1.8b |
||
qwen1.5-4b |
||
qwen1.5-7b |
||
qwen1.5-14b |
||
Yi |
yi-6b |
|
yi-34b |
||
Qwen2 |
qwen2-0.5b |
|
qwen2-1.5b |
||
qwen2-7b |
||
qwen2-72b |
||
Qwen2_VL(支持多模态数据集) |
qwen2_vl-2b |
|
qwen2_vl-7b |
||
Falcon2 |
falcon-11B |
|
GLM-4 |
glm4-9b |
https://huggingface.co/THUDM/glm-4-9b-chat
说明:
glm4-9b模型必须使用版本4b556ad4d70c38924cb8c120adbf21a0012de6ce |
Qwen2.5 |
qwen2.5-0.5b |
|
qwen2.5-7b |
||
qwen2.5-14b |
||
qwen2.5-32b |
||
qwen2.5-72b |
||
llama3.2 |
llama3.2-1b |
|
llama3.2-3b |
阶段 |
任务 |
说明 |
---|---|---|
准备工作 |
准备环境 |
本教程案例是基于ModelArts Lite DevServer运行的,需要购买并开通DevServer资源。 |
准备代码 |
准备AscendSpeed训练代码、分词器Tokenizer和推理代码。 |
|
准备数据 |
准备训练数据,可以用本案使用的数据集,也可以使用自己准备的数据集。 |
|
准备镜像 |
准备训练模型适用的容器镜像。 |
|
训练 |
启动训练 |
介绍各个训练阶段:指令微调、PPO强化训练、RM奖励模型、DPO偏好训练使用全参/lora训练策略进行训练任务、性能查看。 |