网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

选自 lightning.ai

作者:Sebastian Raschka

机器之心编译

编辑:陈萍

作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。

LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大语言模型)的流行技术,最初由来自微软的研究人员在论文《 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 》中提出。不同于其他技术,LoRA 不是调整神经网络的所有参数,而是专注于更新一小部分低秩矩阵,从而大大减少了训练模型所需的计算量。

由于 LoRA 的微调质量与全模型微调相当,很多人将这种方法称之为微调神器。自发布以来,相信很多人都对这项技术感到好奇,想要从头开始编写代码从而更好的理解该研究。以前苦于没有合适的文档说明,现在,教程来了。

这篇教程的作者是知名机器学习与 AI 研究者 Sebastian Raschka,他表示在各种有效的 LLM 微调方法中,LoRA 仍然是自己的首选。为此,Sebastian 专门写了一篇博客《Code LoRA From Scratch》,从头开始构建 LoRA,在他看来,这是一种很好的学习方法。



简单来说,本文通过从头编写代码的方式来介绍低秩自适应(LoRA),实验中 Sebastian 对 DistilBERT 模型进行了微调,并用于分类任务。

LoRA 与传统微调方法的对比结果显示,使用 LoRA 方法在测试准确率上达到了 92.39%,这与仅微调模型最后几层相比(86.22% 的测试准确率)显示了更好的性能。

Sebastian 是如何实现的,我们接着往下看。

从头开始编写 LoRA

用代码的方式表述一个 LoRA 层是这样的:



其中,in_dim 是想要使用 LoRA 修改的层的输入维度,与此对应的 out_dim 是层的输出维度。代码中还添加了一个超参数即缩放因子 alpha,alpha 值越高意味着对模型行为的调整越大,值越低则相反。此外,本文使用随机分布中的较小值来初始化矩阵 A,并用零初始化矩阵 B。

值得一提的是,LoRA 发挥作用的地方通常是神经网络的线性(前馈)层。举例来说,对于一个简单的 PyTorch 模型或具有两个线性层的模块(例如,这可能是 Transformer 块的前馈模块),其前馈(forward)方法可以表述为:



在使用 LoRA 时,通常会将 LoRA 更新添加到这些线性层的输出中,又得到代码如下:



如果你想通过修改现有 PyTorch 模型来实现 LoRA ,一种简单方法是将每个线性层替换为 LinearWithLoRA 层:



以上这些概念总结如下图所示:



为了应用 LoRA,本文将神经网络中现有的线性层替换为结合了原始线性层和 LoRALayer 的 LinearWithLoRA 层。

如何上手使用 LoRA 进行微调

LoRA 可用于 GPT 或图像生成等模型。为了简单说明,本文采用一个用于文本分类的小型 BERT(DistilBERT) 模型来说明。



由于本文只训练新的 LoRA 权重,因而需要将所有可训练参数的 requires_grad 设置为 False 来冻结所有模型参数:



接下来,使用 print (model) 检查一下模型的结构:



由输出可知,该模型由 6 个 transformer 层组成,其中包含线性层:



此外,该模型有两个线性输出层:



通过定义以下赋值函数和循环,可以选择性地为这些线性层启用 LoRA:



使用 print (model) 再次检查模型,以检查其更新的结构:



正如上面看到的,线性层已成功地被 LinearWithLoRA 层取代。

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

  • 训练准确率:92.15%
  • 验证准确率:89.98%
  • 测试准确率:89.44%

在下一节中,本文将这些 LoRA 微调结果与传统微调结果进行了比较。

与传统微调方法的比较

在上一节中,LoRA 在默认设置下获得了 89.44% 的测试准确率,这与传统的微调方法相比如何?

为了进行比较,本文又进行了一项实验,以训练 DistilBERT 模型为例,但在训练期间仅更新最后 2 层。研究者通过冻结所有模型权重,然后解冻两个线性输出层来实现这一点:



只训练最后两层得到的分类性能如下:

  • 训练准确率:86.68%
  • 验证准确率:87.26%
  • 测试准确率:86.22%

结果显示,LoRA 的表现优于传统微调最后两层的方法,但它使用的参数却少了 4 倍。微调所有层需要更新的参数比 LoRA 设置多 450 倍,但测试准确率只提高了 2%。

优化 LoRA 配置

前面讲到的结果都是 LoRA 在默认设置下进行的,超参数如下:



假如用户想要尝试不同的超参数配置,可以使用如下命令:

不过,最佳超参数配置如下:



在这种配置下,得到结果:

  • 验证准确率:92.96%
  • 测试准确率:92.39%

值得注意的是,即使 LoRA 设置中只有一小部分可训练参数(500k VS 66M),但准确率还是略高于通过完全微调获得的准确率。

原文链接:https://lightning.ai/lightning-ai/studios/code-lora-from-scratch?continueFlag=f5fc72b1f6eeeaf74b648b2aa8aaf8b6

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
当年大家只看到她的胸,如今她是金像影后!

当年大家只看到她的胸,如今她是金像影后!

阿芒娱乐说
2024-04-27 13:49:59
全力以赴拯救房地产,不惜一切代价

全力以赴拯救房地产,不惜一切代价

文迪科记
2024-04-27 11:16:58
问界M7高速上碰撞起火,3人遇难!车企回应:积极配合警方调查,事发时车速115km/h,安全气囊正常打开,动力电池包特性均正常

问界M7高速上碰撞起火,3人遇难!车企回应:积极配合警方调查,事发时车速115km/h,安全气囊正常打开,动力电池包特性均正常

每日经济新闻
2024-04-28 14:08:15
赵丽颖古早黑历史曝光,惊人往事让人不敢相信,疑似没文化还当三

赵丽颖古早黑历史曝光,惊人往事让人不敢相信,疑似没文化还当三

花哥扒娱乐
2024-04-18 22:17:33
很多地方把“为人民服务”变成“为大局服务”,这两者有啥区别?

很多地方把“为人民服务”变成“为大局服务”,这两者有啥区别?

翻开历史和现实
2024-04-25 13:12:17
这次广东水灾,网上好平静,看不到大企业捐款,也没有外省救援队

这次广东水灾,网上好平静,看不到大企业捐款,也没有外省救援队

泸沽湖
2024-04-27 11:50:57
这谁顶得住嘛!泰勒·斯威夫特这身材,这才是尤物啊!

这谁顶得住嘛!泰勒·斯威夫特这身材,这才是尤物啊!

冷却爱情
2024-04-25 18:28:15
神舟18升空一瞬间,美国终于反应过来:中国航天发展美帮了大忙

神舟18升空一瞬间,美国终于反应过来:中国航天发展美帮了大忙

石忠时刻
2024-04-27 16:30:03
今天真没水!湖人大将砍21+4助力詹眉 正负值+15队内最高

今天真没水!湖人大将砍21+4助力詹眉 正负值+15队内最高

胖子喷球
2024-04-28 11:05:00
里皮:纵观中国足球,称得上世界级球员的仅3人,武磊还不行!

里皮:纵观中国足球,称得上世界级球员的仅3人,武磊还不行!

天下足球资讯
2024-04-21 11:43:38
局部降温10℃!山东迎新一波冷空气!这些地区有雨,阵风7级

局部降温10℃!山东迎新一波冷空气!这些地区有雨,阵风7级

鲁中晨报
2024-04-27 18:37:05
为什么继父的结局都说不会好?评论区让人闷的喘不过气

为什么继父的结局都说不会好?评论区让人闷的喘不过气

满蓝的果实
2024-04-27 22:51:25
人均100+的贵价汉堡,“割”不动了

人均100+的贵价汉堡,“割”不动了

餐饮老板内参
2024-04-28 10:09:17
苦大仇深表情扭曲,一张嘴毁了整张脸,隆妮还是把眼镜焊在脸上吧

苦大仇深表情扭曲,一张嘴毁了整张脸,隆妮还是把眼镜焊在脸上吧

娱乐圈十三太保
2024-04-19 16:58:18
烂尾网红景点谁之过

烂尾网红景点谁之过

半月谈APP
2024-04-27 14:20:01
宁德时代固态电池取得突破!2027年小批量生产全固态电池

宁德时代固态电池取得突破!2027年小批量生产全固态电池

户外小阿隋
2024-04-28 15:49:35
5000万+高诗岩!山东男篮报价孙铭徽,王博下课接任者曝光

5000万+高诗岩!山东男篮报价孙铭徽,王博下课接任者曝光

维世话体坛
2024-04-27 23:03:57
惊讶!日本松下集团挥别广州,压缩机厂大迁移回日本,意欲何为?

惊讶!日本松下集团挥别广州,压缩机厂大迁移回日本,意欲何为?

奇奇怪怪的冒险
2024-04-27 22:44:03
A股:周末三大利好,明天(4月29日)大盘走势分析预判

A股:周末三大利好,明天(4月29日)大盘走势分析预判

凸教授
2024-04-28 09:02:52
65岁男子吃他汀吃出肾衰竭,他犯了致命2个错误!长期吃牢记4点

65岁男子吃他汀吃出肾衰竭,他犯了致命2个错误!长期吃牢记4点

奇妙的本草
2024-04-24 19:00:12
2024-04-28 17:48:49
机器之心Pro
机器之心Pro
专业的人工智能媒体
8939文章数 141896关注度
往期回顾 全部

科技要闻

马斯克周日突然现身北京,要谈FSD入华?

头条要闻

警方回应"警车进村喊话村民涉嫖娼":多次传唤对方不到

头条要闻

警方回应"警车进村喊话村民涉嫖娼":多次传唤对方不到

体育要闻

赢了!詹皇末节14分制胜咆哮 压力给到KD

娱乐要闻

张杰谢娜发文为何炅庆生,亲如家人!

财经要闻

上财万字报告深度解读Q1经济

汽车要闻

鸿蒙首款行政旗舰轿车 华为享界S9实车亮相车展

态度原创

游戏
教育
旅游
健康
军事航空

《剑星》可收集一本机器人言情小说:内容有点露骨?

教育要闻

还是编制香,江西一双非院校招聘10名辅导员,近千名研究生争抢

旅游要闻

年轻人出游:为了爱好说走就走 好玩不贵很重要

春天野菜不知不识莫乱吃

军事要闻

也门胡塞击落美军"死神"无人机 并展示残骸

无障碍浏览 进入关怀版