Hugging Face PEFT:评估 LoRA 的替代方案

Hugging Face PEFT:评估 LoRA 的替代方案

Hugging Face 对其 PEFT 库进行了广泛的基准测试,以确定低秩适配(Low Rank Adaptation,LoRA)是否是参数高效微调的最佳选择。结果表明,虽然 LoRA 表现强劲,但并非总是最佳选择;其他 PEFT 技术可以根据具体模态和任务,在内存使用和模型准确性之间提供更优的权衡。

LoRA 的主导地位与局限性

LoRA 目前是最常用的 PEFT 技术,这归功于其早期出现以及强大的生态系统支持。Hugging Face 对 Hub 模型卡和 GitHub 代码片段的分析显示,LoRA 占据了绝大多数的 PEFT 使用率,在提及单一 PEFT 技术的模型卡样本中,LoRA 的使用率高达 98.4%。

然而,作者指出,这种流行可能是由于教程丰富和下游包支持而形成的自我强化,而非绝对的技术优势。他们指出,仅凭研究论文来选择技术是有问题的,因为结果往往受到超参数调优的偏差或缺乏可复现代码的影响。

基准测试方法论

为了提供客观的比较,Hugging Face 使用统一的 API 实现了基准测试,所有技术在相同条件下(相同的基础模型、数据集、硬件和评估代码)进行评估。他们跟踪除测试性能之外的多项指标,包括 VRAM 使用量、运行时间、检查点大小以及遗忘/漂移情况。

建立了两个主要基准:

  • LLM Math Dataset: 在 MetaMathQA 数据集上对未进行指令微调的 LLM 进行链式思考推理的微调。
  • Image Generation: 测试模型学习新概念(一个猫形玩偶)并在不遗忘已有概念的情况下进行泛化的能力。

关键发现:帕累托前沿

性能通过“帕累托前沿”进行分析——即在内存效率和测试准确率两方面同时无法被超越的技术集合。

LLM 数学推理

在使用 meta-llama/Llama-3.2-3B 的 MetaMathQA 基准测试中,LoRA 以 53.2% 的测试准确率和 22.6 GB 的峰值 VRAM(具体使用 rank stabilized 初始化)位居帕累托前沿。其他技术也占据前沿位置:

  • Lily:实现更高的准确率(54.9%),但需要更多内存(25.6 GB)。
  • BEFT:提供更高的内存效率(20.2 GB),但准确率较低(32.9%)。
  • LoRA-FA:使用专用优化器,提供内存高效的替代方案(20.2 GB)。

图像生成

在使用 FLUX.2-klein-base-4B 的图像生成基准测试中,LoRA 被其他方法超越。具体而言,OFT(正交微调) 在关键指标上严格优于 LoRA:

  • OFT:相似度得分 0.708,VRAM 9.01 GB。
  • LoRA:相似度得分 0.697,VRAM 9.97 GB。

实现考虑因素与局限性

虽然替代的 PEFT 技术可以提供更好的性能,但相较于 LoRA,它们面临若干实际限制:

  • Downstream Support:许多服务框架如 vLLM 仅支持 LoRA 检查点。为了解决此问题,PEFT 库现在支持将其他适配器类型转换为 LoRA 检查点,Hugging Face 使用 GraLoRA 进行测试,发现其产生的测试分数几乎相同。
  • Layer Compatibility:某些技术仅修改特定的层类型。
  • Quantization:并非所有 PEFT 方法都支持量化的基础模型。
  • Merging:并非所有技术都允许将适配器合并到基础模型中,以消除运行时开销。

结论

LoRA 不应成为微调的自动默认选项。由于 PEFT 库提供统一的 API,在技术之间切换(例如从 LoraConfig 切换到 OFTConfig)只需进行极少的代码修改。鼓励用户探索诸如 DoRA、rs-LoRA 和 LoRA-FA 等变体,以优化其特定使用场景。

Sources