一、Hugging Face Transformers 与 PEFT¶
Transformers 是 Hugging Face 的核心开源库,覆盖 NLP、视觉、音频等多种任务,同时把模型加载、Tokenizer、Pipeline 等常见能力做了模块化封装。
PEFT(Parameter-Efficient Fine-Tuning)则是 Hugging Face 生态里专门处理高效微调的工具包。
1.1 它解决什么问题¶
- 降低显存与算力门槛。
- 减少存储成本。
- 避免全参数微调带来的灾难性遗忘。
1.2 常见方法¶
| 方法 | 原理 | 适用场景 |
|---|---|---|
| LoRA | 在冻结权重中注入低秩矩阵,只训练小矩阵 | NLP、多模态任务 |
| Prefix Tuning | 在输入层或中间层增加可学习前缀向量 | 文本生成、分类 |
| QLoRA | LoRA 结合 4/8 位量化,进一步节省显存 | 消费级 GPU 微调大模型 |
二、LLaMA-Factory¶
LLaMA-Factory 是一个面向大语言模型的开源微调框架,特点是模型兼容范围广、训练范式丰富、显存优化做得比较完整。
2.1 它的核心特点¶
- 支持多种主流模型:
- LLaMA、Qwen、ChatGLM、Mistral、Gemma、Phi 等。
- 支持多种训练场景:
- 增量预训练、SFT、奖励建模、PPO、DPO、ORPO 等。
- 显存优化丰富:
- 集成 LoRA、QLoRA、GaLore、DoRA。
- 推理与部署友好:
- 支持 vLLM、Gradio UI、CLI、LoRA 合并导出等能力。
2.2 适合谁¶
如果你希望“一套框架搞定训练、测试、导出和部署衔接”,LLaMA-Factory 往往很合适。
三、Unsloth¶
Unsloth 的核心卖点是更快、更省显存,特别适合用有限 GPU 资源做大模型微调实验。
3.1 它的优势¶
- 训练速度显著提升:
- 单 GPU 环境下可比传统流程更快。
- 显存占用更低:
- 通过动态 4 位量化和权重管理减少显存消耗。
- 兼容性较好:
- 能和 Hugging Face 生态协同使用。
3.2 技术思路¶
- 手动优化反向传播流程。
- 用 Triton 定制内核提升效率。
- 集成 LoRA、QLoRA、DoRA、SFT、DPO 等路线。
3.3 适合谁¶
如果你只有一张中端卡,或者希望尽量在本地低成本做实验,Unsloth 非常值得优先尝试。
四、XTuner¶
XTuner 是一个以配置驱动为特点的大模型与多模态模型微调工具箱,目标是降低微调门槛。
4.1 它的特点¶
- 高效:
- 适配多种 GPU。
- 自动分配高性能算子,支持 FlashAttention、Triton、DeepSpeed。
- 灵活:
- 支持 InternLM、Llama2、Qwen、Baichuan、ChatGLM 等多种模型。
- 支持 LoRA、QLoRA 等训练算法。
- 功能完整:
- 兼容预训练、指令微调、代理微调等模式。
- 可与部署和评估工具衔接。
五、怎么选这几类工具¶
- 如果你已经在 Hugging Face 生态里:
- PEFT 是最低成本的选择。
- 如果你想要“从训练到部署一条龙”:
- LLaMA-Factory 更顺手。
- 如果你资源紧张又想追求效率:
- Unsloth 很有吸引力。
- 如果你偏好多模型、多配置、工具箱式工作流:
- XTuner 会更适合。