2025中国法律法规大全
40.05MB · 2025-11-13
本文完整的测试代码位置
github.com/xinyuwei-da…
GitHub repo
github.com/xinyuwei-da…
大语言模型(LLM)最近发展得非常快,一动就是好几亿甚至上百亿的参数,让很多 AI 工程师在微调这些大模型时犯了难。Unsloth 这个框架,原本主要是靠支持 LoRA、QLoRA 等 Adapter 微调而出名,重点就是省内存、训练快。
现在它又更进一步,支持了全参数微调(Full Fine-tuning),也就是说,单卡环境就能搞定大规模模型的完整训练。接下来我想聊一聊 Unsloth 全微调的背景、它用到的关键技术,以及在实际工程中怎么把它用好。
从 LoRA/QLoRA 到 Full Fine-tuning:
Unsloth 的进化历程
初期聚焦
LoRA & QLoRA 早期的 Unsloth 仅支持基于 LoRA/QLoRA 的适配器微调(Adapter Fine-tuning)。它通过动态量化、稀疏优化、梯度检查点等技术手段,大幅减少显存占用,让工程师能在单卡或少卡环境下,对 LLM 进行有效训练。
为什么最初只支持 Adapter 微调?
全参数微调走上日程 随着用户对微调需求的精细化、对模型性能的极致追求,以及在更大规模的 LLM 上进行高保真的领域适配需求日益增长,Unsloth 社区在 2024 ~ 2025 年间逐步加入了对 full fine-tuning 的支持,使得你无需额外插入Adapter,也能直接训练整个模型的全部参数。
Unsloth 全微调:关键技术解析
梯度检查点(Gradient Checkpointing)
激活值卸载(Activation Offloading)
当显存不足时,将部分激活值转存到 CPU 内存。Unsloth 会智能地在训练过程中安排卸载与回传时机,确保在最“恰当”的时刻介入,从而减小对训练速度的冲击。
优化器状态分页(Optimizer Paging)
工程上的部署实例与硬件选择
以常用的 H100 94GB,H200 141GB, AMD MI300X 192 为例:
为什么不直接自己实现这些内存优化?
最佳实践:如何平衡内存占用与训练效率
保持小 Batch Size(1~2 常见)
分阶段调试
充分启用 paged optimizer
对于全参数微调而言,优化器状态空间非常可观,将其分页至 CPU,可以显著降低 GPU 显存峰值占用。
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。