微调中常用的优化器有哪些?
- 标签:大模型、AI、微调、优化器
🏛 业务架构师
微调常用优化器我按使用频率讲:
- AdamW:绝对主力。带权重衰减的 Adam,为 Transformer 优化而生,几乎所�微调框架的默认值。业务上"无脑选它"基本不会错,代价是优化器状态占额外显存(约等于模型参数的两倍)。
- SGD + Momentum:经典方案,省显存但需要精细调学习率,Transformer 场景已很少用。
- Adafactor:Adam 的省内存变体,大模型训练时代过渡方案,现在用的不多。
- Lion / Sophia 等新一代优化器:内存效率更高、部分场景收敛更快,属于前沿尝鲜项,生产案例还在积累。
- 8-bit Adam(bitsandbytes):把优化器状态量化到 8bit,显存省 75%,QLoRA 场景的常见搭配——"省显存"比"快一点"对中小团队更现实。
业务视角:优化器属于"默认配置即可覆盖 90% 场景"的技术点——AdamW + 框架推荐学习率,把精力留给数据质量和评测。我的团队规则:优化器选型不超过半天讨论时间;真正值得投入的是数据清洗、多样性和评测集建设,那里的每一分投入都能在最终效果上看到回报。面试时能把"数据重于算法参数"讲清楚,比背优化器公式更能体现工程成熟度。
🏗 系统架构师
微调优化器我按使用频率讲三个,重点讲清楚为什么微调场景和预训练选择不同:
- AdamW(默认主力):Adam 的动量自适应 + 解耦权重衰减。对超参相对鲁棒,学习率 1e-5 ~ 2e-5(全量)/ 1e-4 ~ 3e-4(LoRA)是常用区间。微调数据量小、训练步数短,AdamW 的快收敛特性正合适;
- AdamW 的显存优化变体:8-bit Adam(bnb)、Paged AdamW——优化器状态压缩到 8bit,省 ~75% 优化器显存,QLoRA 的标准搭配,让大模型低成本微调成立;
- SGD 系:预训练大模型时代基本不用——损失面复杂、需要精调,小数据微调下不如自适应方法稳;
- Adafactor / Lion / LOMO 等:省显存特化或新兴优化器,有效果报告但生态位小,做实验可以,生产默认还是 AdamW 系。
架构师视角的实践要点:一是LoRA 场景学习率要高一个量级(LoRA 参数是低秩矩阵,梯度尺度不同,1e-4 起步扫到 3e-4);二是**cosine 调度 + 预热(warmup 3~10%)**是标准配方,短训练也受益;三是微调不是炼丹比赛——固定 AdamW + 调好学习率和数据质量,比换花哨优化器的收益确定性高一个数量级。
💻 全栈开发专家
微调常用优化器按场景选:
- AdamW(默认选择):Adam 解耦权重衰减,收敛稳、对学习率不敏感。LLM 微调标准配置,动量 β=(0.9, 0.999),weight decay 0~0.1。
- 8-bit Adam(bitsandbytes / PagedAdamW8bit):优化器状态量化到 8bit,显存省约 75%,QLoRA 官方推荐搭配——效果几乎无损,小卡微调必备:
python
import torch, transformers
from trl import SFTTrainer
args = TrainingArguments(
optim="paged_adamw_8bit", # 优化器状态可换页,防 OOM 尖峰
learning_rate=2e-4, ...) # LoRA 常用 1e-4~3e-4- Adafactor:不存完整二阶动量,省显存的老牌选择,T5 时代标配,现在多被 8bit Adam 取代。
- SGD + momentum:大 batch 预训练场景(配合 LAMB/LARS)才用,微调少用。
- Lion:符号更新,内存省一半,部分任务有增益但需要重调 lr(小 3~10 倍),属于尝鲜项。
经验法则:SFT 全量 lr 1e-5~2e-5;LoRA lr 1e-4~3e-4;配 warmup(前 3%~10% 步数线性升)+ cosine 衰减;loss 尖峰先降 lr 或查脏数据,而不是频繁换优化器。先 AdamW/8bit Adam 跑通基线,别在优化器上过度折腾。