发布时间: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),Sebastian在实验中对DistilBERT模型进行微调,并将其应用于分类任务。
LoRA方法与传统微调方法的比较结果表明,LoRA方法在测试准确率方面达到了92.39%,这比仅对模型最后几层进行微调(86.22%的测试准确率)表现出更优异的性能。这表明LoRA方法在优化模型性能方面具有明显优势,能够更好地提升模型的泛化能力和预测准确性。这个结果强调了在模型训练和调优过程中采用先进的技术和方法的重要性,以获得更好的性能表现和结果。通过比
Sebastian 是如何实现的,我们接着往下看。
用代码的方式表述一个 LoRA 层是这样的:

其中,in_dim 是想要使用 LoRA 修改的层的输入维度,与此对应的 out_dim 是层的输出维度。代码中还添加了一个超参数
即缩放因子 alpha,alpha 值越高意味着对模型行为的调整越大,值越低则相反。此外,本文使用随机分布中的较小值来初始化矩阵 A,并用零初始化矩阵 B。
值得一提的是,LoRA 发挥作用的地方通常是神经网络的线性(前馈)层。举例来说,对于一个简单的 PyTorch 模型或具有两个线性层的模块(例如,这可能是 Transformer 块的前馈模块),其前馈(forward)方法可以表述为:

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

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

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

为了应用 LoRA,本文将神经网络中现有的线性层替换为结合了原始线性层和 LoRALayer 的 LinearWithLoRA 层。
LoRA 可用于 GPT 或图像生成等模型。为了简单说明,本文采用一个用于文本分类的小型 BERT(DistilBERT) 模型来说明。

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

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

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

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

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

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

正如上面看到的,线性层已成功地被 LinearWithLoRA 层取代。
如果使用上面显示的默认超参数来训练模型,则会在 IMDb 电影评论分类数据集上产生以下性能:
在下一节中,本文将这些 LoRA 微调结果与传统微调结果进行了比较。
在上一节中,LoRA 在默认设置下获得了 89.44% 的测试准确率,这与传统的微调方法相比如何?
为了进行比较,本文又进行了一项实验,以训练 DistilBERT 模型为例,但在训练期间仅更新最后 2 层。研究者通过冻结所有模型权重,然后解冻两个线性输出层来实现这一点:

只训练最后两层得到的分类性能如下:
结果显示,LoRA 的表现优于传统微调最后两层的方法,但它使用的参数却少了 4 倍。微调所有层需要更新的参数比 LoRA 设置多 450 倍,但测试准确率只提高了 2%。
前面讲到的结果都是 LoRA 在默认设置下进行的,超参数如下:

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

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

在这种配置下,得到结果:
值得注意的是,即使 LoRA 设置中只有一小部分可训练参数(500k VS 66M),但准确率还是略高于通过完全微调获得的准确率。
原文链接:https://lightning.ai/lightning-ai/studios/code-lora-from-scratch?cnotallow=f5fc72b1f6eeeaf74b648b2aa8aaf8b6
Machine Translation
聚合多个来源的AI翻译
49
查看详情
以上就是如何从头开始编写LoRA代码,这有一份教程的详细内容,更多请关注其它相关文章!
# 两层
# 网站建设流程功能介绍
# SEO教学工作
# 江西网站建设行业发展
# 黄岛网络营销推广优化
# 花椒营销推广
# 陕西网站优化策略
# 从化品牌网站建设方案
# 游乐设备网站建设流程
# seo网站推广增值服务
# 北京数据网站建设哪家好
# 进行了
# ai
# 与传统
# 上海
# 来实现
# 文档
# 谁能
# 的是
# 开源
# 这有
# udio
# 训练
相关栏目:
【
行业新闻62819 】
【
科技资讯67470 】
相关推荐:
第四范式“式说”大模型入选《2025年通用人工智能创新应用案例集》
美图秀秀“AI 扩图”功能上线,可根据图像生成更大画幅
华为大模型登Nature正刊!审稿人:让人们重新审视预报模型的未来
社区里,孩子们体验“机器人竞技”
全国体育人工智能大会举办,专家聚焦体育人工智能领域人才培养
美图设计室2.0新增哪些功能
管提需求,大模型解决问题:图表处理神器SheetCopilot上线
新华全媒+|AI:当心,我可能欺骗了你!
NTU、上海AI Lab整理300+论文:基于Transformer的视觉分割最新综述出炉
马斯克预测:特斯拉全自动驾驶将在今年实现 对AI深度变化感到担忧
推动综合能源服务高质量发展
数据科学,解码智能未来——Altair首次提出“Frictionless AI”概念
让AI助手带您轻松愉快地享受写作之旅
人工智能和你聊天 成本有多高
谷歌在人工智能领域没有“护城河”?
OpenAI限制网络爬虫访问以保护数据免被用于AI模型训练
标小智LOGO推出AI公司起名生成器“Name.GPT”
SnapFusion技术大幅提升AI图像生成速度
世界周刊丨AI“棱镜”?
【趋势周报】全球人工智能产业发展趋势:OpenAI向美国专利局提交“GPT-5”商标申请
阿里达摩院向公众免费开放100项AI专利许可
洞穴探险神器?可自主导航的单旋翼自旋无人机,效率更高!
视觉中国宣布推出AI灵感绘图、画面扩展功能
百度举办AIGC创作沙龙,现场传授AI绘画“咒语”技巧
亲身体验鸿蒙4:AI大模型带来的便利,告别单纯的旁观者状态
英伟达CEO宣称生成式AI已迎来“划时代时刻”
彭博社:苹果Vision Pro曾测试VR手柄追踪方案
一文看懂被英伟达看中的九号机器人移动底盘
国产工业机器人领域“暗潮涌动”,即将迎来新一轮复苏
烟台大学学生首次在全国大学生无人机航拍竞赛中获奖
Bing 聊天机器人现支持在桌面端用语音提问
马斯克嘲讽人工智能:机器学习本质就是统计学
田渊栋团队新研究:微调
“苏南 vs 苏北” AI 分胜负,娱乐性比较工具 EitherChoice 上线
梦想实现!硬核科幻大片VR智能头盔即将问世
腾讯AI首次模拟拼接三星堆文物,工作取得阶段性的成果
引领AI变革,九章云极DataCanvas公司重磅发布AIFS+DataPilot
大厂出品!这个AI网站太顶了,所有功能免费用
AI智能室内效果图设计软件效果,确实惊到我了!
北京市元宇宙产业创新中心筹建工作正式启动
LinkedIn 推出生成式 AI 辅助撰写帖文功能,将向所有用户开放
猿辅导发布最新SaaS业务进展公告:Motiff UI设计工具推出三项新的AI功能
人工智能产业协同创新中心:全产业链资源在这里汇聚
工信部信通院发布《2025大模型和AIGC产业图谱》 360智脑覆盖全产业链
国内通用人形机器人将发布、产业加速突破
AI大举入侵内容行业,哪些上市*及动漫公司进行了布局?
Gartner发布中国企业人工智能趋势浪潮3.0
IBM 与 NASA 携手开源地理空间 AI 模型,促进气候科学研究进步
小米9号员工李明宣布创业:打造首款安卓桌面机器人
CharacterAI - 也许会成为会话人工智能的未来