原贴链接

参数高效微调(PEFT)/低秩适应(LoRA)是通过增加/仅更新极少数参数来微调网络的方法。

由于这些方法非常新颖,策略的演变速度比发表的速度还要快,因此“黑魔法”正在出现,社区中有哪些顶级智慧?

  • 哪些层更适合作为目标?(早期 vs 晚期,全部 vs 部分)
  • 你是否对所有Q+K+V权重进行操作?
  • 前馈/MLP块?(仅块1?仅块2)
  • 层归一化或swiglu参数?
  • 嵌入,即“文本反转”?
  • 替代的PEFT算法?

在给定的参数预算下,什么能给你带来最大的收益?

讨论总结

本次讨论主要聚焦于Parameter Efficient Fine Tuning (PEFT) 和 Low Rank Adaptation (LoRA) 这两种微调Transformer模型的方法。参与者探讨了在有限的参数预算下,如何选择和优化模型层,包括目标层的选取、权重更新策略、以及是否采用替代的PEFT算法等问题。由于这些技术非常新颖,相关策略的发展速度超过了出版物的更新速度,因此形成了一种“暗黑艺术”。

主要观点

  1. 👍 PEFT和LoRA是通过添加或仅更新极少数参数来微调网络的方法。
    • 支持理由:这种方法可以显著减少计算资源的需求,同时保持模型性能。
    • 反对声音:一些用户担心这种微调方法可能导致模型泛化能力下降。
  2. 🔥 选择哪些层进行优化是一个关键问题。
    • 正方观点:通常选择所有的多层感知机(MLP)和注意力层进行调整,如Dettmers和Mosaic的研究所示。
    • 反方观点:部分用户认为应根据具体任务选择特定层进行优化,以避免过度拟合。
  3. 💡 是否更新所有的Q+K+V权重也是一个讨论点。
    • 解释:一些用户建议只更新部分权重,而另一些用户则认为更新所有权重可以获得更好的性能。

金句与有趣评论

  1. “😂 There’s a paper for that called Less Is More in Alignment. OP was asking specifically for stuff that wasn’t published.”
    • 亮点:这句话指出了PEFT和LoRA领域中,实践往往领先于理论出版物。
  2. “🤔 Generally one targets all MLP, Attention layers.”
    • 亮点:这是对PEFT和LoRA微调策略的简洁总结,强调了选择所有相关层的重要性。
  3. “👀 Oh the QLoRA paper: https://arxiv.org/pdf/2305.14314 page 6 shows comparisons of All vs MLP vs Attention etc.”
    • 亮点:提供了具体的研究论文链接,为讨论提供了实证支持。

情感分析

讨论的总体情感倾向是积极的,参与者对PEFT和LoRA的微调策略表现出浓厚的兴趣和探索精神。主要分歧点在于具体层的选择和权重更新策略,这可能与不同任务的具体需求有关。

趋势与预测

  • 新兴话题:随着更多实践案例的出现,关于如何在不同任务中选择和优化层的讨论将更加深入。
  • 潜在影响:PEFT和LoRA的微调策略可能会成为未来模型优化的主流方法,特别是在资源受限的环境中。

详细内容:

《PEFT/LoRA 调优变压器的“神秘技巧”引发热门讨论》

近日,Reddit 上一则关于“PEFT/LoRA 调优变压器的‘神秘技巧’”的帖子引发了众多关注。该帖子指出,参数高效微调(PEFT)/低秩自适应(LoRA)是通过添加或仅更新极少量参数来微调网络的方法,而由于其新兴性,相关策略的发展快于出版速度,“神秘技巧”正在涌现。此帖获得了较高的关注度,评论区也展开了热烈的讨论。

帖子主要探讨了在给定参数预算的情况下,一些关键问题,如哪些层更适合作为目标(早期层还是后期层,全部层还是部分层)、是否处理 Q+K+V 权重、前馈/多层感知机(MLP)块的选择(仅处理第 1 块?仅处理第 2 块?)、层归一化或 SwiGLU 参数、嵌入(即“txt 反转”)以及替代的 PEFT 算法等。

在讨论中,有人表示一般会针对所有的 MLP 和注意力层,有多个来自 Dettmers、Mosaic 等的研究论文表明这是最佳选择。比如 Unsloth 默认会开启所有这些设置。有人询问能否指出 Dettmers 和 Mosaic 的相关论文,回复者给出了论文链接,即《QLoRA 论文》(https://arxiv.org/pdf/2305.14314)和 Mosaic 的论文(https://openreview.net/forum?id=aloEru2qCG)。

对于嵌入的处理,有人提到之前的尝试完全破坏了模型,尽管是在处理中等资源语言。回复者表示对于嵌入,需要将学习率降低 10 倍,并提供了相关博客文章(https://unsloth.ai/blog/contpretraining)以及继续预训练的笔记本(https://colab.research.google.com/drive/1tEd1FrOXWMnCU9UIvdYhs61tkxdMuKZu?usp=sharing),但该用户表示由于正在进行分布式训练,无法使用 Unsloth,不过仍然表示了感谢。

此次讨论的焦点在于如何更有效地利用有限的参数预算来优化 PEFT/LoRA 调优变压器的性能。不同用户分享的经验和研究成果为这一领域的探索提供了有价值的参考,但在具体的实践操作中,仍需根据实际情况进行调整和优化。