如何从头开始编写LoRA代码,这有一份教程( 二 )


如果使用上面显示的默认超参数来训练模型,则会在 IMDb 电影评论分类数据集上产生以下性能:

  • 训练准确率:92.15%
  • 验证准确率:89.98%
  • 测试准确率:89.44%
在下一节中,本文将这些 LoRA 微调结果与传统微调结果进行了比较 。
与传统微调方法的比较
在上一节中 , LoRA 在默认设置下获得了 89.44% 的测试准确率,这与传统的微调方法相比如何?
为了进行比较,本文又进行了一项实验,以训练 DistilBERT 模型为例 , 但在训练期间仅更新最后 2 层 。研究者通过冻结所有模型权重,然后解冻两个线性输出层来实现这一点:
如何从头开始编写LoRA代码,这有一份教程

文章插图
【如何从头开始编写LoRA代码,这有一份教程】只训练最后两层得到的分类性能如下:
  • 训练准确率:86.68%
  • 验证准确率:87.26%
  • 测试准确率:86.22%
结果显示,LoRA 的表现优于传统微调最后两层的方法,但它使用的参数却少了 4 倍 。微调所有层需要更新的参数比 LoRA 设置多 450 倍,但测试准确率只提高了 2% 。
优化 LoRA 配置
前面讲到的结果都是 LoRA 在默认设置下进行的,超参数如下:
如何从头开始编写LoRA代码,这有一份教程

文章插图
假如用户想要尝试不同的超参数配置,可以使用如下命令:
如何从头开始编写LoRA代码,这有一份教程

文章插图
不过 , 最佳超参数配置如下:
如何从头开始编写LoRA代码,这有一份教程

文章插图
在这种配置下,得到结果:
  • 验证准确率:92.96%
  • 测试准确率:92.39%
值得注意的是,即使 LoRA 设置中只有一小部分可训练参数(500k VS 66M),但准确率还是略高于通过完全微调获得的准确率 。
原文链接:https://lightning.ai/lightning-ai/studIOS/code-lora-from-scratch?continueFlag=f5fc72b1f6eeeaf74b648b2aa8aaf8b6




推荐阅读