当前位置: 首页 > news >正文

人工智能基础知识笔记十七:微调方法

        在微博https://blog.csdn.net/jimmyleeee/article/details/152733155介绍了微调,本文主要是介绍微调的方法。 

1、全面微调

         全面微调:使用某一领域的专业数据集,对预训练模型的所有参数(权重和偏置)进行再一次的、端到端的训练。模型中的每一个神经元连接都会根据新数据被重新调整。

1.1、 过程描述

  1. 初始化:从一个在大规模通用语料上预训练好的模型开始(例如,LLaMA 2或BERT)。这个模型已经具备了强大的语言理解和生成能力。

  2. 数据输入:将你的领域特定数据集输入模型。

  3. 前向传播:数据通过网络,模型基于其当前的所有参数计算输出,并给出一个预测(例如,下一个词的概率)。

  4. 计算损失:将模型的预测与数据中的真实标签进行比较,通过损失函数计算出“错误程度”。

  5. 反向传播:这是关键步骤。损失值通过网络反向传播,计算损失函数对于模型中每一个单一参数的梯度。这个梯度指明了“为了减少错误,每个参数应该向哪个方向、调整多少”。

  6. 参数更新:使用优化器,根据计算出的梯度,更新整个模型的所有参数

  7. 循环迭代:重复步骤2-6,直到模型在训练数据上的损失收敛到满意水平,或达到预设的训练轮数。

1.2、全面微调的优缺点

1.2.1、优点

  1. 性能潜力最大
    • 这是全面微调最核心的吸引力。由于没有任何参数被“冻结”,模型有能力最大限度地适应新数据的分布。理论上,如果数据和算力充足,它在特定任务上的表现可以达到该模型架构的性能上限。它能够学习到数据中非常细微和复杂的模式,这是参数受限的高效微调方法可能无法做到的。

  2. 概念简单,实现直接
    • 从原理和实现上看,它和预训练没有本质区别。训练流程简单,不需要像LoRA那样引入额外的结构或像适配器那样修改模型架构。只需加载模型、加载数据、设置优化器,然后开始训练。

1.2.2、缺点

  1. 计算成本极高
    • 内存消耗:在训练期间,需要存储整个模型的参数、梯度、优化器状态(如Adam优化器会存储动量和方差),这需要巨大的GPU显存。微调一个70亿参数的模型,可能需要超过40GB的显存。

    • 时间成本:训练所有参数意味着更长的训练时间。

    • 硬件门槛:通常需要多张高端GPU(如A100/H100)进行分布式训练,个人和小团队难以承担。

  2. 灾难性遗忘
    • 这是全面微调一个非常突出的问题。由于所有参数都在更新,模型在专注于学习新任务(如医疗问答)时,可能会覆盖或削弱其在预训练阶段学到的通用知识(如常识、推理能力、对其他领域的理解)。

    • 后果:模型可能变成了一个医疗专家,但却忘记了如何写一首像样的诗,或者回答基础的历史问题。它的“通用性”被严重损害。

  3. 存储和部署成本高
    • 每针对一个任务进行一次全面微调,你就会得到一个完整的、独立的模型副本。如果一个基础模型有7GB,那么微调10个任务就需要70GB的存储空间。这在模型管理和部署时是一个巨大的负担。

  4. 过拟合风险
    • 专业数据集通常规模有限。用一个巨大的模型去拟合一个相对小的数据集,很容易导致过拟合——即模型完美地记住了训练数据,但在未见过的数据上表现很差。

2、高效微调 

        为了解决全面微调的成本问题,这类方法应运而生,也是目前的主流。它们只训练一小部分额外参数极少的原有参数

2.1、 适配器微调

        在模型的Transformer层之间插入一些小的神经网络层(适配器),在微调时只训练这些新插入的适配器,冻结原始模型的所有参数。 

2.2.1、适配器微调的优缺点

2.2.1.1 优点
  • 参数效率高:只需训练极少的参数,大大节省内存和计算。

  • 模块化:可以为不同任务训练不同的适配器,像插拔U盘一样在同一个基础模型上切换任务。

2.2.1.2、缺点

  • 推理速度慢:由于增加了额外的网络层,模型在推理(预测)时速度会变慢

  • 引入了结构复杂性

2.2、提示微调

        在模型的输入序列前,加入一串可训练的、连续的“虚拟token”(即前缀)。微调时只优化这些虚拟token的向量表示,冻结整个原始模型。

2.2.1 优点

  • 极其高效:需要训练的参数比适配器还少。

  • 无缝集成:不改变模型结构,推理时无额外开销。

2.2.2、缺点

  • 会占用上下文窗口:前缀会消耗宝贵的输入长度。

  • 训练不太稳定,效果有时不如其他方法。

2.3、LoRA - 低秩适应

        发现大模型的权重变化在适应新任务时具有“低秩”特性。因此,它不直接更新巨大的权重矩阵,而是用两个更小的矩阵的乘积来模拟这种更新。微调时,只训练这两个小矩阵。

2.3.1 优点

  • 高效且强大:效果通常能媲美全面微调,但训练参数极少,成本极低。

  • 零推理开销:训练完成后,可以将小矩阵合并回原模型,推理速度和原模型完全一样

  • 模块化:不同的LoRA适配器可以灵活组合和切换。

2.3.2、缺点

  • 需要选择秩r(矩阵的维度)是一个需要手动调整的超参数,虽然通常影响不大。

2.4、QLoRA - 量化LoRA

        将预训练模型量化为4-bit(极大地减少内存占用),然后在这个量化模型上应用LoRA进行微调。训练结束后,可以将LoRA权重应用到原来的16-bit模型上。

2.4.1 优点

  • 内存需求极低:可以在单张消费级显卡(如24GB的RTX 4090)上微调巨大的模型(如650亿参数)。

  • 保持了LoRA的所有优点

2.4.2、缺点

  • 略有性能损失:量化会带来极小的精度损失,但通常可以忽略不计。

3、各种微调的总结和对比

微调方法核心思想优点缺点适用场景
全面微调训练所有参数性能潜力最大成本极高,灾难性遗忘算力无限,任务特殊
适配器插入并训练小网络参数高效,模块化推理延迟,结构复杂需要快速切换多任务
提示微调优化输入前缀极其高效,无结构改动占用上下文,效果不稳轻量级任务适配
LoRA用低秩矩阵模拟权重更新高效、强效、零开销需选择秩r当前绝大多数场景的首选
QLoRA量化 + LoRA极致的内存效率有极小的量化损失资源受限的个人或团队

如何选择?

  1. 首选 LoRA:它在效率、效果和易用性上取得了最佳平衡。Hugging Face的PEFT库对其有非常好的支持。

  2. 如果显卡内存不足:毫不犹豫地选择 QLoRA。它能让你在有限的资源下完成看似不可能的任务。

  3. 全面微调视为最后的手段,仅在LoRA等高效方法无法满足你对性能的极致要求时考虑。

http://www.dtcms.com/a/460968.html

相关文章:

  • 北京企业免费建站农八师建设兵团社保网站
  • 《强化学习数学原理》学习笔记11——阶段策略迭代算法
  • Qt QtConcurrent使用入门浅解
  • C语言字符串与内存操作函数完全指南
  • 【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】2.CV黑科技:生成式算法理论-(5)Stable Diffusion模型讲解
  • Cookie和Seeion在客户端和服务端的角色作用
  • Linux 远程Ubuntu服务器本地部署大模型 EmoLLM 中常见的问题及解决方案 万字详解
  • 如何建设公司网站信息灯塔网站seo
  • Java 中 `equals()`、`==` 和 `hashCode()` 的区别
  • 成像系统(十四-1:《工业级ISP流水线:ISP前端处理 - 从原始数据到可用图像》):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • vue-router(vue 路由)基本使用指南(二)
  • 深入理解 Java中的 异常和泛型(指南十二)
  • 草莓植物(plant)【高精度-->array高级!!!】
  • 3D 图表、堆叠饼图为什么是灾难?
  • Nacos 全解析:从注册中心到配置管理的实战指南
  • 微信小程序开发从零基础到项目发布的全流程实战教程(四)
  • wordpress 全站静态二次开发小程序
  • linux命令--后端项目部署
  • 网页版云手机 梦幻西游手游
  • HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
  • 网站检索功能怎么做建设宣传网站的必要性
  • 做网站维护需要懂什么网站建设洽谈问题
  • 17、Linux 文件压缩与解压
  • IDEA编译时报错OOM的解决方案
  • .NET驾驭Word之力:基于规则自动生成及排版Word文档
  • 本地web测试服务器快速域名映射工具
  • 自己搭建远程桌面服务器——私有化部署RustDesk
  • 机器人强化学习原理讲解二:关于机器人重置
  • 目标检测YOLO实战应用案例100讲-相机 ISP(三)
  • 网站无障碍建设标准we建站