400 128 6709

行业新闻

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

发布时间:2024-03-20点击次数:

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,在他看来,这是一种很好的学习方法。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

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

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

LoRA方法与传统微调方法的比较结果表明,LoRA方法在测试准确率方面达到了92.39%,这比仅对模型最后几层进行微调(86.22%的测试准确率)表现出更优异的性能。这表明LoRA方法在优化模型性能方面具有明显优势,能够更好地提升模型的泛化能力和预测准确性。这个结果强调了在模型训练和调优过程中采用先进的技术和方法的重要性,以获得更好的性能表现和结果。通过比

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

从头开始编写 LoRA

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

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

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

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

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

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

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

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

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

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

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

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

如何上手使用 LoRA 进行微调

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

与传统微调方法的比较

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

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

如何从头开始编写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?cnotallow=f5fc72b1f6eeeaf74b648b2aa8aaf8b6

Machine Translation Machine Translation

聚合多个来源的AI翻译

Machine Translation 49 查看详情 Machine Translation

以上就是如何从头开始编写LoRA代码,这有一份教程的详细内容,更多请关注其它相关文章!


# 两层  # 网站建设流程功能介绍  # SEO教学工作  # 江西网站建设行业发展  # 黄岛网络营销推广优化  # 花椒营销推广  # 陕西网站优化策略  # 从化品牌网站建设方案  # 游乐设备网站建设流程  # seo网站推广增值服务  # 北京数据网站建设哪家好  # 进行了  # ai  # 与传统  # 上海  # 来实现  # 文档  # 谁能  # 的是  # 开源  # 这有  # udio  # 训练 


相关栏目: 【 行业新闻62819 】 【 科技资讯67470


相关推荐: 下一个前沿:量子机器学习和人工智能的未来  1分钟做出苹果Vision Pro「官网」?上班8小时搞出480个网页,同事被卷疯了  2025WRC世界机器人大赛锦标赛(烟台)收官!斯坦星球勇夺VEX赛项冠亚军!  时间、空间可控的视频生成走进现实,阿里大模型新作VideoComposer火了  微软大牛加入ZOOM,AI人才大战打响  小米又拿下国际比赛第一:AI翻译立功  人工智能助力林草行业高质量发展  AI+音乐如何“生成”动听旋律?一起揭秘世界人工智能大会开场曲  RoboNeo什么时候上线  大模型新品出现井喷,AI产业迎来新时代  Moka发布AI原生HR SaaS产品“Moka Eva”,布局AGI时代  构建人机交互创新模式,微美全息研究AIGC智能交互界面生成技术  OpenAI限制网络爬虫访问以保护数据免被用于AI模型训练  揭晓2025年玻尔兹曼奖:Hopfield网络创始人荣获奖项  微软推出 LLaVA-Med AI 模型,可对医学病理案例进行分析  美图发布国内首个“懂美学的”AI视觉大模型MiracleVision  2025VR&AR显示技术峰会视频解析: 歌尔光学展示最新一代VR/AR光学模组  AI 模型 Stable Diffusion 升级:正常生成五指、图像更逼真  李开复:未来几年,人工智能会革了所有人的命,除非你这么做  微软Bing聊天机器人电脑端即将支持语音提问  掌阅科技申请阅爱聊商标 掌阅科技申请AI相关商标  650亿参数,8块GPU就能全参数微调:邱锡鹏团队把大模型门槛打下来了  如何用户外电源给无人机实现持久续航  五个IntelliJ IDEA插件,高效编写代码  移远通信率先完成多场5G NTN技术外场验证,为卫星物联网应用落地提速  Win11 AI 助手 Windows Copilot 被吐槽:套皮的 Edge 浏览器  ​日媒:AI高效解析纳斯卡地画  苹果头显降临,AI虚拟人的救星还是流星?  绿联发布笑脸屏幕显示充电状态的30W/65W Q湃机器人充电器  应用生成式人工智能技术改善农业产业  AI技术改变*,新骗局来袭,*成功率接近100%  从GOXR到PartyOn,XRSPACE致力打造多元共赢的元宇宙世界  数据显示:人工智能相关专业热度上升最快 考古、美术、生物医学工程等小众专业火了  酒店业将如何受益于人工智能的改变?  2025世界人工智能大会成功召开  你大脑中的画面,现在可以高清还原了  人工智能的变革之路:通过OpenAI的GPT-4漫游  先进技术在防止全球数据丢失方面的作用  微软向美国政府提供GPT的大模型,安全性如何保证?  中国移动主导创立元宇宙产业联盟,包括科大讯飞、芒果TV等在内,共24家成员  李开复官宣新公司「零一万物」,进军 AI 2.0  华为联合合作伙伴 共同发布昇腾AI大模型训推一体化解决方案  AI在教育中的角色:AI如何改变我们的学习方式  新华三集团总裁兼首席执行官于英涛:人工智能时代需要想象力,更需要精耕务实  最大助力35公斤 外骨骼机器人或在养老、医疗领域“大展身手”  好莱坞面临全面停摆 好莱坞大罢工抵制“AI入侵”  首家承认ChatGPT影响其收入的公司Chegg选择拥抱AI ,裁减4%员工  拓普龙7188ML:轻便壁挂式工控机箱,为人工智能应用场景提供有力保障  “无人驾驶船”将首次亮相世界人工智能大会,下半年或开进上海迪士尼  OpenAI宣布组建新团队 以控制“超级智能”人工智能 

400 128 6709
E-mail

contact@tlftec.cn

扫一扫,添加微信

©  云南淘乐房科技有限公司 版权所有  滇ICP备2025071560号  

云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司 云南淘乐房科技有限公司