大模型微调技术 --> 脉络

Step1:脉络

微调技术从最早期的全模型微调演变成如今的各种参数高效微调(PEFT)方法,背后是为了应对大模型中的计算、存储和数据适应性的挑战

1.为什么有微调?

深度学习模型越来越大,尤其是 NLP 中的预训练语言模型(BERT, GPT)系列。如果从零开始训练,既耗时又昂贵。

所以人们开始转向 预训练-微调 范式,在大规模无监督语料库上进行模型的预训练,然后在特定任务上微调模型。

核心需求:

  • 减少从零开始训练的计算成本和时间
  • 利用已经学到的通用语言知识,通过小规模的任务特定数据快速适配模型

2.脉络

1. 微调技术时间线

全量微调(2018, BERT Google 提出) → Adapter 微调(2019, Houlsby et al 提出) → P-Tuning(2021, 清华大学) → LoRA(2021, 微软研究院) → Prefix-Tuning(2021, Li et al 提出) → IA³ (2022, 微软 和 HuggingFace 提出)

2.LoRA 的脉络

  1. LoRA(2021)
    • 解决:通过低秩分解,只微调少量参数,大幅减少计算和存储成本,尤其适合大模型生成任务
    • 不足:固定秩的设计限制了在复杂多任务或多层次任务中的表现力
  2. QLoRA(2023)
    • 解决:虽然 LoRA 减少了参数量,但是显存占用依旧较高。QLoRA 通过 4bit 量化,降低了显存需求
    • 不足:量化带来了一定的性能损失,特别是在精度要求极高的任务上
  3. LoHA(2022)
    • 解决:LoRA 固定秩的方式难以应对多任务学习或复杂层次结构的需求。LoHA 通过层次化的低秩分解,适应不同层次的任务需求。这样增强了多任务和复杂上下文中的适应性。
    • 不足:增加了计算复杂度,设计相对复杂
  4. LoKr(2023)
    • 解决:LoRA 适用于线性任务,处理非线性特征时表现不足。LoKr 结合了核方法,使模型能够更好的捕捉复杂的非线性关系。提高了模型在非线性特征场景中的表现,如高级 NLP 和 CV 任务中
    • 不足:引入了额外的计算成本和复杂性
  5. AdaLoRA(2023)
    • 解决:LoRA 固定秩限制了模型对不同层的适应能力。AdaLoRA 通过动态调整每一层的秩,减少了不必要的计算,提高了关键层的标下能力,在资源有限的环境下表现优异
    • 不足:引入了更高的实现复杂度和超参数调整要求
  6. Delta-LoRA 和 Prefix Tuning(2021-2022)
    • 解决:LoRA 在生成任务的上下文适应性不足。Delta-LoRA 和 Prefix-Tuning 通过引入前缀或序列信息的适应,曾庆了对上下文的捕捉能力,提升了生成任务(对话、故事生成)中的质量
    • 不足:推理时成本增加

7.总结

  • LoRA 的初衷是为了解决大规模模型微调中的高计算和显存开销问题。
  • QLoRA 进一步通过量化解决了显存占用问题,使得大模型能够在低资源设备上运行。
  • LoHALoKr 针对复杂任务和非线性特征的学习需求进行了扩展,增强了模型的适应性。
  • AdaLoRA 通过自适应调整秩大小,优化了层次间的资源分配,进一步提高了效率和灵活性。
  • Delta-LoRA 和 Prefix Tuning 则主要提升了生成任务的上下文捕捉能力。

http://www.niftyadmin.cn/n/5740824.html

相关文章

游戏中Dubbo类的RPC设计时的注意要点

一.消费方 1.需要使用到动态代理,代理指定的接口,这样子接口被调用时,就可以拿到:"类名 方法名参数返回值" 这些类型。 2.既然是rpc,那么接口被调用时,肯定在动态代理中会进行网络消息的发送&a…

网络层6——内部网关协议RIP、OSPF(重点)

目录 一、基本概念 1、理想的路由算法应具备的特点 2、分层次的路由选择协议 二、内部网关协议RIP 1、特点 2、路由交换信息 3、距离向量算法 4、坏消息传送慢问题 5、RIP报文格式 三、内部网关协议OSPF 1、特点 2、其他特点 3、自治系统区域划分 4、OSPF的5中分…

SQLAlchemy 介绍与实践

postgresql 实践 pydantic 实践 1. SQLAlchemy 介绍 SQLAlchemy 是一个 ORM 框架。SQLAlchemy 是一个用于 Python 的 SQL 工具和对象关系映射(ORM)库。它允许你通过 Python 代码来与关系型数据库交互,而不必直接编写SQL语句。 简单介绍一下…

STM32标准库-待机模式

1.1 STM32待机模式简介 STM32单片机具有低功耗模式,包括睡眠、停止和待机三种。 运行状态下,HCLK为CPU提供时钟。HCLK由AHB预分频器分频后直接输出得到。 低功耗模式选择需考虑电源消耗、启动时间和唤醒源。 睡眠模式停CPU不停外设时钟; 停止…

Flink安装和Flink CDC实现数据同步

一,Flink 和Flink CDC 1, Flink Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。 中文文档 Apache Flink Documentation | Apache Flink 官方文档 :https://flink.apache.org Flink 中文社区…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商,一家聚焦于社交电商的电商公司,专注于‘精选’理念,致力于为会员提供超高性价比的全品类精选商品,以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化,公司对成本控制提出了更高要求&…

安全篇(1)判断安全固件

判断安全固件的方法 一、通过串口开机打印 改方法适用Android与Tina 1.开机打印为SBOOT为安全 [289]HELLO! SBOOT is starting! 2.开机打印boot0为非安全 [88]BOOT0 commit : 1cbb5ea8b3 二、通过读数据 1.getprop | grep verifiedbootstate 这条命令的输出表示设备的…

基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个九宫格日志系统

基于 JAVASSM(Java Spring Spring MVC MyBatis)框架开发一个九宫格日志系统 步骤一:需求分析 明确系统需要实现的功能,比如: 用户注册和登录添加日志(包含标题、内容、图片)查看日志列表…