AI大模型优化技巧:参数高效微调(PEFT)与LoRA微调深度解析

news2024/11/26 14:52:54

1. Fine-tuning

相较于基础大模型动辄万卡的代价,微调可能是普通个人或者企业少数能够接受的后训练大模型(post-training)的方式。

微调是指在一个预训练模型(pre-training)的基础上,通过少量的数据和计算资源,对模型进行进一步训练,以适应特定的任务或者数据集。

在这里插入图片描述

微调分为两种类型:全参微调(full fine-tuning)和参数高效微调(parameter efficient fine-tuning)。

  • 全参微调:在全参微调中,整个模型的参数都会被更新,这种方法通常需要大量的数据和计算资源,以及较长的训练时间。

在这里插入图片描述

2. PEFT

参数高效微调(Parameter-Efficient Fine-Tuning,简称PEFT)是一种针对大型预训练模型(如大语言模型)的微调技术,它旨在减少训练参数的数量,从而降低计算和存储成本,同时保持或提升模型性能。

PEFT通过仅微调模型中的一小部分参数,而不是整个模型,来适应特定的下游任务。这种方法特别适用于硬件资源受限的情况,以及需要快速适配多种任务的大型模型。

在这里插入图片描述

PEFT有以下几种常见的方法:

  • 选择参数子集:选择模型中的一小部分参数进行微调,通常是最后几层的参数;
  • 重新参数化:使用低秩表示重新参数化模型权重,代表是LoRA方法;
  • 添加参数:向模型添加可训练层或参数,代表为Prompt-tuning方法。

在这里插入图片描述

3. LoRA

LoRA(Low-Rank Adaptation)是一种参数高效微调技术,主要用于大型预训练模型的微调。它通过在模型的权重矩阵中引入低秩矩阵来实现对模型的调整,从而减少训练参数的数量,降低计算和存储成本。

LoRA的核心思想是,大型模型在进行特定任务的微调时,并不必要更新所有参数。通过仅对模型中一小部分参数进行微调,可以显著减少所需的计算资源,同时保持或提升模型性能。

在具体实现上,LoRA通过在预训练模型的权重矩阵上添加一个可学习的低秩矩阵,来实现对模型的微调。这个低秩矩阵由两个较小的矩阵相乘得到,这两个矩阵在训练过程中进行更新,而原始的预训练权重矩阵则保持不变。

在这里插入图片描述

Q-LoRA

QLoRA(Quantized LoRA)是LoRA的量化版本,通过量化技术进一步降低了模型的存储需求,使得大型模型可以在资源受限的设备上进行训练和部署。

Rank

矩阵的秩(rank)是矩阵中线性无关行或列的最大数目。在LoRA中,通过引入低秩矩阵,可以减少模型的参数数量,从而降低计算和存储成本。

在这里插入图片描述

经验上,4或者8的rank通常能够在保持模型性能的同时,显著减少参数数量。

LoRA target_modules 目标矩阵是Q?K?V?

在这里插入图片描述

为什么LoRA微调偏向于Q和V层而不是K层呢?这主要基于以下几个原因:

  • 参数效率:Q层和V层直接影响到注意力权重的计算和最终的输出表示。通过调整Q层,可以影响模型选择关注的信息;而调整V层可以影响模型如何利用这些信息。因此,在这些层上进行微调可以更直接地改变模型的行为;

  • 影响信息选择:K层主要影响信息的匹配方式,而在许多情况下,调整Q和V层已足够引导模型关注到更有用的信息上;

  • 计算效率:虽然LoRA的目的是通过低秩更新提高参数效率,但在所有层上应用这种更新仍会增加额外的计算负担。选择对最终性能影响最大的层进行调整可以在增加最小计算成本的同时获得最大的性能提升;

  • 实验和经验:实际应用中的经验和研究表明,在Q和V层上应用LoRA微调通常能够有效改善特定任务的性能。这可能是因为这些层在模型中扮演着关键角色,对输出的影响较大;

此外,对于不同模型的LoRA实现,target_modules参数可以根据模型的架构进行设置。例如,对于T5和MT5模型,默认的target_modules是[“q”, “v”],而对于BART和GPT-2模型,则是[“q_proj”, “v_proj”]。

如果使用的模型不在实现定义的大语言模型列表内,则需要手动指定target_modules。可以通过打印模型的可学习参数名来找到可学习的参数

4. Prompt-tuning

Prompt Tuning是一种针对大型预训练模型的微调技术,它通过在输入层引入任务特定的提示(prompt)来适配模型至特定任务,而不需要对整个模型参数进行更新。这种方法的核心优势在于参数效率,即它只需要训练少量的参数,从而降低了计算成本和训练时间。

Prompt Tuning的实现步骤主要包括:

  • 定义任务特定的指令(prompt),这些指令作为输入的一部分,用于引导模型完成特定任务;
  • 将指令与原始输入数据结合,形成新的输入;
  • 利用新的输入对预训练模型进行微调,通常涉及对prompt tokens对应的词向量或由神经网络参数化的向量进行训练,而预训练模型的其他部分参数保持冻结.

5. 其它PEFT方法

除了最流行的LoRA和Prompt-tuning方法外,还有一些其他的参数高效微调方法,如: P-tuning和Perfix-tuning等。但我也没有细看,工作中也没有用过,所以不做详细介绍。但可以参考Huggingface的PEFT文档。

在这里插入图片描述

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里巴巴数学竞赛成绩未公布:背后的权衡与期待

文 | 头部财经首席评论员白立新 发布 | 头部财经 top168.com 导语:2024 年阿里巴巴数学竞赛成绩迟未公布,引发广泛猜测。中专生姜萍的表现备受瞩目,达摩院陷入两难困境。这场竞赛结果的公布,关乎多方利益与社会影响,…

UML(ER) manual book

图形与符号 实体 真实世界的表示(实物),负责数据的发送或者接收,通常使用矩形表示。 处理和加工 通常使用圆圈表示数据时如何被处理,比如下订单,付款等动作。 数据存储 通常使用两条平行线表示&…

碲化镉太阳能电池:绿色能源的新星,高效转换引领未来

随着全球对清洁能源需求的持续增长和技术的不断进步,碲化镉太阳能电池必将在未来的能源市场中占据重要地位。‌‌PicoQuant公司一直致力于碲化镉太阳能电池新材料、‌新工艺的探索与研发,充分利用其在时间分辨技术上的优势,‌为碲化镉太阳能电…

5、LVGL控件-滑轮、滑动条、圆弧

本篇文章目录导航 ♠♠ LVGL控件-滑轮、滑动条、圆弧 ♣♣♣♣ 一、LVGL 滑轮部件 ♦♦♦♦♦♦♦♦ 1.1 滑轮部件组成部分 ♦♦♦♦♦♦♦♦ 1.2 滑轮部件基本API ♦♦♦♦♦♦♦♦ 1.3 实验小演示 ♣♣♣♣ 二、LVGL 滑动条部件 ♦♦♦♦♦♦♦♦ 2.1 滑动条部件组成部分 ♦…

论文阅读:MambaVision: A Hybrid Mamba-Transformer Vision Backbone

论文地址:arxiv 摘要 作者提出了一种新型的混合 Mamba-Transformer 主干网络。通过重新设计 Mamba 公式,增强了其高效建模视觉特征的能力。 此外,作者还通过对 ViT 与 Mamba 消融研究,实验结果表明了:在最后几层为 …

“双碳”减排背景下企业自发电系统该具备哪些功能?

随着全球能源危机加剧、用能需求上升以及新能源技术的迅速发展,新能源发电的应用范围不断扩大,并逐步形成了新型能源与电力市场。然而,由于新能源的能量密度普遍较低,进行大规模发电时需精心挑选适合的位置,因此新能源…

【网络安全】服务基础第一阶段——第九节:Windows系统管理基础---- Windows_AD域

目录 一、域与活动目录 1.1 工作组 1.2 域 1.2.1 域(Domain) 1.2.2 域控制器(Domain Controller,DC) 1.2.3 功能和角色 1.2.4 管理和监控 1.2 5 域结构 1.3 组织单元(Organizational Unit&#xff…

Seata 的4种事务模式(XA、AT、TCC、SAGA)

目录 前言 Seata架构 事务模式 XA AT TCC 区别 前言 在分布式系统中,实现一个功能可能需要由几个不同的服务来共同实现。这就会带来一个问题,不同的服务之间无法做到使用同一个事务,这就无法保证数据的一致性了。在一些对数据一致性要…

基于SSM的“基于决策树算法的大学生就业预测系统”的设计与实现(源码+数据库+文档)

基于SSM的“基于决策树算法的大学生就业预测系统”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统用户用例图 学校基础信息管理 毕业生基…

Java设计模式之装饰器模式详细讲解和案例示范

1. 引言 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向现有对象添加新的功能,而无需修改其结构。这种模式通过使用组合而非继承来扩展对象的行为,在许多实际应用中极为常见。本文将详细介绍装饰器模式…

世界复合医学杂志社世界复合医学编辑部2024年第4期目录

论著 苏子降气汤联合三子养亲汤治疗痰浊壅肺型慢性阻塞性肺疾病急性加重期的临床疗效 周芹;周磊; 1-437 天麻钩藤汤加减联合依那普利叶酸片对原发性高血压患者血压水平与中医证候积分的影响 邹文博;王世雄; 5-8 伏诺拉生联合康复新液治疗反流性食管炎的临床研究 孙…

山体滑坡监测预警系统—百科分享

GNSS山体滑坡监测预警系统是一种利用全球导航卫星系统(GNSS)技术,对易发生山体滑坡的地段进行24小时不间断监测的先进系统。该系统能够实时记录易滑坡地段山体的各种变化情况,为灾害预警和防治提供科学依据。 GNSS山体滑坡监测预警系统通过在地表关键位置…

05-最新PyCharm安装详细教程及pycharm配置

一、PyCharm简介及其下载网站 PyCharm是由JetBrains打造的一款Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。PyCharm提供了代码编辑、调试、语…

700道学生百科知识题库ACCESS\EXCEL数据库

今天这个题库虽然记录数不多,但是题目很经典、精彩、精华,分7个难度级别,每个级别100题;分类也很多,包含:百科、常识、地理、动画、国学、化学、历史、旅游、美食、诗词、数学、体育、天文、文学、物理、星…

如何选择合适的同轴连接器?关键性能指标全解析

同轴连接器是用于连接同轴电缆或同轴传输线与其他电子设备或另一段同轴电缆的一种装置。它们在射频(RF)和微波通信系统中非常常见,因为它们能有效减少信号损耗并提供良好的屏蔽,以防止电磁干扰(EMI)。 基本…

执行标准应该公开吗?

在当今社会,标准的重要性日益凸显。执行标准,如同商业世界和公共生活中的指南针,为产品质量、服务水平以及各类活动划定了清晰的界限。那么,执行标准应该公开吗?这是一个值得我们深入探讨的关键问题。 一、对于国家标…

如何在VSCode中同时打开多个页面?

问题描述: 使用VSCode的时候,为什么打开一个文件之后就会把另一个文件顶替,始终保持打开一个文件的状态呢?如果我想同时打开两个文件页面怎么办? 解决办法: 在 Visual Studio Code (VSCode) 中&#xff…

手机播放DVD:VLC播放器(直接下载apk)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

飞睿智能酒店人体存在感应雷达模块24G传感器,智能空调、LED照明开关节能新风尚

在科技日新月异的今天,智能酒店已经不再是遥不可及的梦想,而是逐渐走进了我们的日常生活。从智能门锁到自动调节的室内环境,再到贴心的语音助手服务,智能酒店为我们带来了未有的便捷与舒适。然而,在这些令人惊叹的智能…

Sankey流图在老年癌症患者症状分析中的应用|科研绘图·24-09-03

小罗碎碎念 本期推文主题|桑基图 桑基图我们很多人都不陌生,但是大部分应该都是仅限于在文献中读到过,动手去实践的较少,在文献中的具体作用,可能也不太清楚,所以我这一期推文就来盘一盘桑基图。 本期推文…