🔍 常见优化器介绍大全(含 AdamW、Lion、8bit 优化器、DAdaptation 等)
在深度学习中,优化器对模型的训练效果至关重要。随着大模型和高效训练的需求不断增加,优化器种类也越来越多。本文将介绍以下几种主流优化器:
包含:
AdamW
、AdamW8bit
、PagedAdamW8bit
、Lion
、SGDNesterov
、SGDNesterov8bit
、DAdaptation
、AdaFactor
1️⃣ AdamW
定义:
Adam 的改进版本,引入权重衰减(decoupled weight decay)机制,提升正则化效果。
特点:
- 默认优化器之一;
- 适用于 Transformer、Diffusion 等大型模型;
- 权重衰减不再和梯度混合,泛化效果更好。
应用场景:
BERT、ViT、SDXL 等大模型训练和微调中广泛使用。
2️⃣ AdamW8bit(8-bit AdamW)
定义:
使用 bitsandbytes 实现的 低精度 AdamW,采用 8-bit 参数表示,显著降低内存开销。
特点:
- 降低内存使用(最大节省 60%);
- 减少通信开销,适合多卡训练;
- 与 Transformer、LLaMA 等模型兼容良好。
应用场景:
大模型(如 SD3、LLaMA、Mistral)训练和推理阶段,尤其适用于资源受限的设备。
3️⃣ PagedAdamW8bit
定义:
bitsandbytes
扩展出的分页式 8-bit 优化器,支持参数分页到 CPU,进一步减少显存占用。
特点:
- 支持大模型在单张显卡上训练;
- 适合 LoRA 微调或大模型推理;
- 比传统 8bit 优化器更节省内存资源。
应用场景:
单卡微调 SDXL、ChatGLM、LLaMA 模型时非常实用。
4️⃣ Lion(EvoLved Sign Momentum)
提出者:Meta AI(2023)
定义:
Lion 是一种只用梯度符号和动量更新权重的优化器,比 Adam 更轻、更快收敛。
特点:
- 无需自适应学习率;
- 更新方式类似
momentum * w - lr * sign(g)
; - 在图像分类和生成任务中性能优于 AdamW。
应用场景:
Transformer、ViT、扩散模型、图像生成类任务。
5️⃣ SGDNesterov(Nesterov Accelerated Gradient)
定义:
在 Momentum 基础上改进的优化器,先“预测”参数更新方向,再修正梯度。
特点:
- 比标准 Momentum 收敛更快;
- 减少振荡;
- 常用于传统 CNN 网络,如 ResNet。
应用场景:
CV 任务、图像识别模型。
6️⃣ SGDNesterov8bit
定义:
SGD Nesterov 的 8-bit 版本,降低显存占用,适合部署和资源受限训练场景。
特点:
- 效果接近于浮点 SGDN;
- 更轻量;
- 适用于蒸馏、小模型训练。
7️⃣ DAdaptation(D-Adapt)
定义:
一种自调学习率优化器,由 Tim Dettmers 等人提出。
核心理念:
- 免去手动调参学习率;
- 动态调整
d
值,使 loss 自适应下降; - 通常训练只需设置
weight_decay
即可。
特点:
- 自适应、无需调参;
- 比 Adam 更鲁棒;
- 对长时间训练稳定性好。
应用场景:
适用于需要快速收敛和低调参的任务,如文本生成、扩散建模。
8️⃣ AdaFactor
提出者: Google
定义:
为解决大规模模型内存问题而提出的轻量型优化器,特别适用于 Transformer 模型。
特点:
- 不存储完整二阶矩阵,显存消耗小;
- 支持无学习率设置;
- 常用于 T5、MT5、Switch Transformer 等大规模模型。
应用场景:
NLP、文本生成、多语言模型的训练。
✅ 总结对比表
优化器名称 | 是否8bit | 是否自适应LR | 内存效率 | 是否需调学习率 | 应用场景 |
---|---|---|---|---|---|
AdamW | 否 | 是 | 中 | 是 | 通用大模型训练 |
AdamW8bit | ✅ | 是 | 高 | 是 | 多卡训练、节省显存 |
PagedAdamW8bit | ✅✅ | 是 | 极高 | 是 | 单卡大模型微调 |
Lion | 否 | 否(仅动量) | 中 | 是 | 图像生成 / Transformer |
SGDNesterov | 否 | 否 | 高 | 是 | 图像分类、传统 CNN |
SGDNesterov8bit | ✅ | 否 | 高 | 是 | 轻量部署 |
DAdaptation | 否 | ✅(动态) | 中 | 否 ✅ | 快速实验、免调参任务 |
AdaFactor | 否 | 是 | ✅ | 可选 | 超大模型(如 T5、Switch)训练 |
📌 建议选择
- 推荐新手入门 & 通用训练: AdamW / Lion
- 显存紧张或部署优化: AdamW8bit / PagedAdamW8bit
- 无需调参 & 训练自动调节: DAdaptation
- 超大模型或服务器限制下: AdaFactor
- 图像类任务: SGDNesterov / Lion
💬 如果你觉得这篇整理有帮助,欢迎点赞收藏!