Skip to content

Phi 3 指令调优模版

此模版基于 Phi3 系列开源模型,无论是否量化,无论 Coder 或 Math 或语言模型类型,DoDo 已经将类模型的复杂 SFT 技术集成为模版,方便客户使用,并且针对不同模型只需更换不通基座模型,以及对感兴趣的训练参数的调整,其他一切完全统一,使用非常简洁方便。

训练参数

训练任务可调整参数说明

参数类型说明备注
max_seq_lengthnumber单条数据的长度,单位为 token。
lora_alphanumber控制 LoRA(Low-Rank Adaptation)层的学习率缩放因子
lora_dropoutnumber用于在训练过程中随机“丢弃”(即暂时移除)网络中的一些神经元,以减少模型对特定特征的依赖,从而防止过拟合。0 到 1 之间
random_statenumber控制训练过程随机性
per_device_train_batch_sizenumber
gradient_accumulation_stepsnumber梯度更新时的累积步长
warmup_stepsnumber学习率预热的步数。
num_train_epochsnumber控制训练过程中的迭代轮数。可以根据数据规模适当调整 Epoch 大小。
max_stepsnumber控制训练过程中的迭代次数。若想提前结束训练,可设置较小的值。
learning_ratenumber学习率(LearningRate)是在梯度下降的过程中更新权重时的超参数,可根据经验调整。
logging_stepsnumber日志保存间隔步数。
weight_decaynumber正则化系数(Weight_decay),用于防止模型对训练数据过拟合。
seednumber随机种子,用于初始化训练参数设置一个固定的种子(seed)可以确保每次运行实验时,随机数生成器产生的随机数序列是相同的。这在机器学习和深度学习中非常重要,因为它可以帮助研究者确保实验的可重复性。
lora_rnumberlora_r 设置的值越大,模型的灵活性越高,但计算负担也会增加。支持 8, 16, 32, 64, 128可根据算力调整
dataset_num_procnumber数据集使用次数
optimnumber参考优化器配置
lr_scheduler_typenumber参考LR学习率类型配置
model_save_typenumber参考模型保存格式
load_in_4bitnumber0: False ,1: True说明训练的基础模型的量化位数,1 = 4bit 量化,0 = 其他
use_rsloranumber0: False ,1: True1 = 可进一步降低显存开销,一般不开启,因为可能的精度影响
overwrite_output_dirnumber0: False ,1: True1 = 当训练任务异常时,任务再次启动时会从 checkpoint 输出目录加载最近的 checkpoint 模型,0 = 不使用恢复训练; 注意:此参数只在挂载了上次训练任务的 checkpoint 目录时才有效,默认为 0
save_total_limitnumbercheckpoint 总的保存数量
save_stepsnumber每隔一定步长保存一个 checkpoint 模型save_strategy="steps”有效
save_strategynumber参考`checkpoint 模型保存策略

checkpoint模型保存策略

python
"0": "no",  # 不保存
"1": "epoch",  # 在每个 epoch 结束时保存
"2": "steps",  # 每隔 save_steps 后保存

LR学习率类型配置

python
"0": "linear",  # 从初始学习率线性下降到 0
"1": "cosine",  # 学习率按照余弦函数变化,在训练过程中逐步减小
"2": "cosine_with_restarts",  # 带重启的余弦退火调度器,在训练过程中周期性地重置学习率,然后按余弦函数衰减,每隔一段时间重启余弦曲线
"3": "polynomial",  # 学习率按照多项式函数下降

优化器配置

python
"0": "adamw_8bit",
"1": "adamw”

模型保存格式:

python
"0": "lora", # 此模型权重仅为LoRA层,推理过程需加载训练基础模型
"1": "merged_16bit", # 此模型内含LoRA层,直接推理
"2": "merged_4bit" # 此模型内含LoRA层,整体模型为4bit量化版本,直接推理

模型输出

  • 根据模型保存格式输出的最终模型将存放在 DoDo 平台的内部 S3 存储中,也可以是客户在平台内部配置的存储路
  • checkpoint 模型,如果在训练任务拉起时配置了”自定义内容输出位置”,那么 checkpoint 模型将会保存在配置路径上。

训练数据标准

instruct 训练数据样例:

json
[
  {
    "instruction": "给我推荐3支有潜力的股票",
    "input": "",
    "output": "根据的近期国内推动故事政策的力度变化,推理如下股票.\n\n1. 长虹科技\n 2. 雷达照明\n 3. 呼啸英航 "
  },
  {
    "instruction": "What are the three primary colors?",
    "input": "",
    "output": "The three primary colors are red, blue, and yellow. These colors are called primary because they cannot be created by mixing other colors and all other colors can be made by combining them in various proportions. In the additive color system, used for light, the primary colors are red, green, and blue (RGB)."
  }
]

用户可根据样例构造满足自身企业要求的训练数据。

支持模型列表

ModelBaseInstruct
Phi-3.5mini