原贴链接

LLM微调仍然是一个相对较新且不断发展的事物,我想看看其他从业者在这方面有什么经验。就我而言,我正在尝试解决一个更复杂的、特定领域的类似命名实体识别(NER)的问题,我有数千个带注释文档的数据集。我使用torchtune通过LoRA对Llama - 3.1 - 8B - Instruct进行微调,得到了一些还不错但远非惊艳的结果。我稍微调整了秩(rank)和alpha值,发现r = 64,a = 128对我的问题效果最好,但优势并不明显。我想知道怎样能做得更好,所以这里有几个可以讨论的话题:1. 完全微调与LoRA微调?一些人发现(在某些任务中,对于较小的模型)[差异极小甚至没有差异](https://www.anyscale.com/blog/fine - tuning - llms - lora - or - full - parameter - an - in - depth - analysis - with - llama - 2),但我也看到有论文认为为了最大限度提高准确性,完全微调是更好的方法。2. LoRA与DoRA?有没有人发现结果有显著差异,特别是当已经为任务找到了最佳的秩和alpha值时?3. 对于特定任务的微调,使用哪个模型最好?如果切换到gemma 2 9b或qwen 2.5 7B,我能期待有很大的改进吗,还是说这并没有太大关系?顺便说一下,我的问题的计算预算限制在约7 - 9B规模的模型范围内。4. 此外,在下游任务上进行微调时,从基础模型开始更好,还是从指令调整(instruct - tuned)变体开始更好?如果您发现了关于LLM微调的其他有用信息,请分享。

讨论总结

原帖发起关于LLM微调最佳实践的讨论,给出了如全微调与LoRA对比、LoRA与DoRA对比、最佳微调模型选择、从基础模型还是指令调整变体开始微调等话题。评论者们纷纷分享自己的经验,涵盖不同微调方法的优缺点、具体参数设置的心得、针对特定任务(如NER)的模型推荐等,整个讨论氛围积极,大家都在积极贡献自己的知识和见解。

主要观点

  1. 👍 可先尝试LoRA和完全微调,根据结果再深入尝试
    • 支持理由:两种方法各有优劣,先尝试可以对比出更适合自己任务的方法
    • 反对声音:无
  2. 🔥 全微调结果好但需较多成本,特定条件下可通过LoRA接近全微调效果
    • 正方观点:全微调虽然准确但耗费金钱和时间,LoRA可以在某些情况下达到相近效果节省成本
    • 反方观点:有观点认为在某些任务上只有全微调才能达到最大精度
  3. 💡 对于NER问题应尝试特定的编码器模型
    • 解释:特定编码器模型在微调NER问题时更便宜、更快且输出稳定
  4. 💡 选择模型应先找到符合需求且喜欢其“个性”的基础模型,再进行微调
    • 解释:先确定合适基础模型能更好地满足需求并达到微调效果
  5. 💡 Mistral模型可塑性强、易微调,推荐其除Ministral 8B之外的密集模型
    • 解释:该模型在微调操作上具有优势

金句与有趣评论

  1. “😂 我认为我可以在以后分享完整结果,如果你感兴趣的话,但我发现DoRA并没有提高性能,而loraplus在困难任务中具有非常显著的性能提升(验证损失)。”
    • 亮点:直接分享自己测试不同方法的结果,对他人有参考价值
  2. “🤔 r = 64 is the sweet spot for many tuners, both creative and non - creative, and it’s unlikely to be the performance bottleneck.”
    • 亮点:指出一个常见的较优参数值
  3. “👀 全 finetuning是有趣的,它可以给你非常可靠的结果,但是你知道吗?除非你有钱(和耐心),否则不值得。”
    • 亮点:幽默地说出全微调的成本问题

情感分析

总体情感倾向为积极正面。主要分歧点在于全微调与LoRA的效果比较,一方认为全微调能最大化精度,另一方认为LoRA在某些情况下可接近全微调效果且成本低。可能的原因是不同的任务需求、数据规模以及计算资源等因素影响了大家对不同微调方法的评价。

趋势与预测

  • 新兴话题:不同模型在特定任务(如NER)上的表现以及微调性价比,可能会引发后续更多关于特定任务的模型推荐和微调方案讨论。
  • 潜在影响:有助于LLM微调领域的从业者更好地选择合适的微调方法和模型,提高微调的效率和效果,推动LLM在更多领域的应用。

详细内容:

标题:关于微调大型语言模型(LLMs)的热门讨论

在 Reddit 上,一个关于微调 LLMs 最佳实践的帖子引发了广泛关注。该帖子由一位试图解决复杂、特定领域 NER 问题的从业者发起,他使用 torchtune 对 Llama-3.1-8B-Instruct 进行基于 LoRA 的微调,但结果只是差强人意。这个帖子获得了众多回复和讨论。

讨论的焦点主要集中在以下几个方面:

  • 全微调与 LoRA 的选择:有人认为在某些任务和较小模型中两者差异不大,但也有研究指出全微调能最大程度提高准确性。
  • LoRA 与 DoRA 的效果差异:部分用户表示 DoRA 未能提升性能,而 Loraplus 在困难任务中有显著的性能提升。
  • 适合特定任务微调的最佳模型:有人认为具体模型的选择对结果影响不大,也有人提到了一些特定模型的特点和优势。
  • 基于基础模型还是指令调整变体进行微调:存在不同的观点和实践经验。

有人分享道:“我一直在测试 DoRA、loraplus 和贝叶斯超参数优化。我发现 DoRA 没有提升性能,而 loraplus 在困难任务中大幅提升了验证损失。”还有人表示:“r=64 是很多调参者的最佳选择,但我个人会选择更高的参数以便降低学习率。”

讨论中的共识在于,选择合适的微调方法和参数需要根据具体任务和情况进行试验和探索。特别有见地的观点如“忽略那些花哨的噱头,先把基础的 90%做好,再操心那 10%”丰富了讨论的深度。

总的来说,关于微调 LLMs 的最佳实践,Reddit 上的讨论呈现出多样性和复杂性,为从业者提供了丰富的参考和思考方向。