内容纲要
一、PEFT常见的超参数
1. 通用超参数(所有PEFT方法常用)
- 学习率(learning_rate)
- Batch Size(batch_size)
- Epoch数量(num_epochs)
- 优化器类型(optimizer,如AdamW)
- Scheduler(学习率调度器,如linear、cosine)
2. PEFT方法特有超参数
(1) LoRA专有超参数
- rank(秩大小)
- alpha(scaling factor,缩放系数)
- target modules(要微调的目标层,如attention、MLP层)
(2) Adapter Tuning专有超参数
- adapter bottleneck size(适配器中间层尺寸)
- adapter hidden dimension(隐藏层大小)
- adapter模块插入位置(如每几层插入一次)
(3) Prefix Tuning专有超参数
- prefix长度(如10~100个token)
- prefix embedding维度
(4) Prompt Tuning专有超参数
- prompt长度(通常5~50个token)
- prompt初始化方式(随机初始化或基于特定词汇)
二、推荐配置和经验参考值
以下推荐为经验值,是初始调优的起点:
超参数 | 推荐范围 |
---|---|
学习率 | LoRA: 1e-4 至 5e-4,Adapter: 1e-4,Prompt/Prefix: 1e-3 至 5e-4 |
Batch Size | 16-64 (常见32) |
Epoch 数量 | 小数据集: 5~10,大数据集: 2~4 |
优化器 | AdamW |
Scheduler | linear decay 或 cosine decay |
各方法专有参数推荐初始值
-
LoRA:
rank
: 4~32(典型值为8)alpha
: 通常取 rank 的2倍(如 rank=8,alpha=16)target_modules
: 建议首先微调attention层(如q_proj、k_proj、v_proj)
-
Adapter Tuning:
bottleneck size
: 通常32~128(典型为64)- 插入层次: 一般每一层Transformer插入一个adapter效果较好
-
Prefix Tuning:
prefix长度
: 通常10~100(典型20~50)- 初始化: 随机初始化效果较稳定
-
Prompt Tuning:
prompt长度
: 通常5~20个token- 初始化: 通常随机初始化,少样本场景可基于语义初始化
三、如何调优超参数(调参策略)
超参数调优是模型微调性能优化的重要环节,建议的调优顺序如下:
1. 学习率调优(最高优先级)
- 初始学习率尝试典型值(如LoRA: 2e-4, Adapter: 1e-4)。
- 如果训练曲线波动剧烈,降低学习率10倍;若收敛过慢,稍微提高学习率。
2. Rank、Bottleneck或Prefix长度调优(次高优先级)
- LoRA: 从较小的rank(如4或8)开始实验,再逐步增加,直到性能增益不明显;
- Adapter: 从小bottleneck(如32)开始,逐步扩大,找到平衡点;
- Prefix/Prompt: 从较短的长度开始(如20),逐渐增加长度到性能停止改善为止。
3. Batch Size和Epoch数量调优
- 通常batch size越大越稳定,但内存占用高。推荐从16或32开始尝试;
- epoch数量由数据量决定,小数据集epoch可以多(5~10),大数据集(2~3 epochs)。
4. 微调目标层选择(LoRA特有)
- 最优先微调Attention层(q_proj、k_proj、v_proj);
- 若有性能瓶颈,再尝试加入MLP层微调。
四、具体调优工具和方法
推荐使用自动化工具辅助调参:
- Ray Tune(推荐,方便批量调参)
- Optuna(高效且易用的自动超参数搜索框架)
- wandb Sweeps(轻量且配套可视化)
五、一个实践性的超参数调优步骤示例(以LoRA为例)
步骤一:确定基础设置
- 学习率:
2e-4
- Batch Size:
32
- rank:
8
, alpha:16
- 微调目标: attention层
步骤二:进行第一次实验,观察
- 性能达到预期,则考虑下一步;
- 若未达到预期,优先调整学习率。
步骤三:搜索最优rank
- 测试 rank =
[4,8,16,32]
,观察验证集效果,选择效果最优。
步骤四:确定合适的epoch
- 观察每个epoch训练曲线;
- 选择训练曲线刚刚稳定的epoch数。
步骤五:batch size微调
- batch size可微调为16、32、64,观察哪种设置在当前硬件下最优。
六、小结
PEFT超参数调优的核心思想是:
- 先确定通用超参数(学习率为首);
- 再针对具体方法逐步搜索特有超参数(如rank、prefix长度等);
- 借助自动化工具(如Ray Tune或Optuna)提高效率。
掌握以上步骤和方法,你即可高效地完成PEFT的超参数调优,最大程度提升模型性能。