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

embedded/2024/11/14 6:19:53/

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.ppmy.cn/embedded/136490.html

相关文章

ArcGIS Pro SDK (二十三)实时要素类

ArcGIS Pro SDK (二十三)实时要素类 文章目录 ArcGIS Pro SDK (二十三)实时要素类1 从实时数据存储连接到实时要素类2 检查实时要素类是否可识别轨迹3 从实时要素类获取追踪 ID 字段4 订阅流数据5 搜索现有数据并订阅流数据6 搜索和订阅取消环境:Visual Studio 2022 + .NE…

软考中级 软件设计师 上午考试内容笔记(个人向)Part.1

软考上午考试内容 1. 计算机系统 计算机硬件通过高/低电平来模拟1/0信息;【p进制】: K n K n − 1 . . . K 2 K 1 K 0 K − 1 K − 2... K − m K n r n . . . K 1 r 1 K 0 r 0 K − 1 r − 1 . . . K − m r − m K_nK_{n-1}...K_2K_1K_0K…

【p2p、分布式,区块链笔记 Torrent】WebTorrent的add和seed函数

在【p2p、分布式,区块链笔记 Torrent】WebTorrent的上传和下载界面的示例中,主要通过WebTorrent类的add和seed函数实现相关功能。这两个函数都返回一个Torrent类对象的实例。 seed函数 import createTorrent, { parseInput } from create-torrent // &…

vxe-grid ,增加新行,并且定位到新增的行

1、先上个图: 点增了新增,则自动将滚动条滚动最底部。 2、代码: let $table tableRef.value;if ($table) {(async () > {const { row: newRow, rows: newRows } await $table.insertAt({demo: ,usertype: ,},-1,);$table.scrollToRow(n…

前端开发模板Pear Admin Layui

目录 基本资料学习笔记04-Pear-Admin-Layui模板运行05-Pear-Admin-Layui-GIT方式代...06-Pear-Admin与Vue对比 & 07-Pear-Admin与Vue对比补充09-Pear-Admin-CRUD练习-数据库表创建12-Pear-Admin-CRUD练习-引入其它依赖 & 13-Pear-Admin-CRUD练习-三层架构以及常见配置 …

Windows下mysql数据库备份策略

Windows下mysql的增量备份和全量备份,并利用schtasks设置定时任务执行bat脚本。 一、备份要求 序号 备份类型 备份频次 备份时间 1 增量备份 每周一-每周六各一次 18:00:00 2 全量备份 每周日一次 18:00:00 二、备份方法 2.1增量备份 2.1.1准备工作…

Python小白学习教程从入门到入坑------第二十六课 单例模式(语法进阶)

在这个节课的开始,我们先回顾一下面向对象课程中学的构造函数__init__() 目录 一、__init__() 和 __new__() 1.1 __init__() 1.2 __new__() 二、单例模式 2.1 特点 2.2 通过classmethod实现单例模式 2.3 通过装饰器实现单例模式 2.3 通过重写__new__() 实现…

文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现

在众多的 AI 大模型的应用场景中,Text-to-SQL,也就是文本转 SQL,是其中实用性很高的一个。Text-to-SQL 充分利用了大模型的优势,把用户提供的自然语言描述转换成 SQL 语句,还可以执行生成的 SQL 语句,再把查…