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

大模型微调

目录

    • 1. 大模型与微调基本介绍
      • (1)模型参数与数据集规模增长
      • (2)模型微调
    • 2. 微调技术的区别
      • (1)按微调参数规模划分
      • (2)按训练的流程来划分
      • (3)按训练的方式来划分
    • 3. 展开说说lora
    • 4. 展开使用P-Tuning v2
    • 附录
      • 1.PEFT 介绍
        • (1)方法分类
        • (2)高效 PEFT 设计
        • (3)PEFT 的系统设计挑战
        • (4)未来研究方向
      • 2.生成任务评估指标含义:
      • 3.参考资料
      • 4.名词记录

1. 大模型与微调基本介绍

(1)模型参数与数据集规模增长

从趋势看大模型参数量只会越来越大,训练更大的模型需要更多的的数据集,随着模型的增长,训练过程必须调整更多的参数。对于AI集群和算力的消耗会更多,也会不断提升成本。模型参数与数据集规模增长:引入微调。

(2)模型微调

模型微调允许少量地重新调整预训练大模型的权重参数,或者大模型的输入和输出有助于降低训练大模型的复杂性,降低重新进行训练的成本。

2. 微调技术的区别

微调,一般都是指基于问答对形式组织的数据,来对模型进行参数调整;因为数据是问答对,也就是标注后的数据,因此都是SFT;当采用不同的微调方法更改的模型参数不同,就有了全参微调、低参微调的区分;LoRA、P-Tuning、Prefex-Tuning, Prompt-Tuning都是低参微调

(1)按微调参数规模划分

画板

FPFT: 用预训练模型作为初始化权重,在特定数据集上继续训练,全部参数都更新的方法。

PEFT: 用更少的计算资源完成模型参数的更新,包括只更新一部分参数,或者通过对参数进行某种结构化约束,例如稀疏化或低秩近似来降低微调的模型参数量。

PEFT举例:

(2)按训练的流程来划分

画板

ICL(In-Context learning)上下文学习:区别于普通微调 Fine-Tuning,不对 LLMs 执行任何的微调,直接将模型的输入输出拼接起来作为一个 prompt,引导模型根据输入的数据结构 demo,给出任务的预测结果。ICL 能够基于无监督学习的基础上取得更好模型效果,并且不需要根据特定的任务重新微调 Fine-Tuning 更新模型参数,避免不同任务要重新进行真正的微调。

(3)按训练的方式来划分

画板

3. 展开说说lora

  • LoRA: Low-Rank Adaption of large language models
    • 一个到较小子空间的随机投影
    • parameter efficient
      • PEFT
    • https://arxiv.org/abs/2106.09685
  • 实现细节上
    • 是一个 adaptor of pretrained model
      • adaptor 是小的
      • pretrained model 是大的
        • large language models
        • large vision models
    • freezes pre-trained model weights
    • injects trainable rank decomposition matrices
      • into each layer of transformer Architecture
  • 基本思想
    • 对于 transformer,最为重要的 self attention module
      • Wq、Wk、Wv、Wo 表示 learnable query/key/value/output projection matrices
      • 将这些记为模型的参数 Φ
    • 在 full fine-tune (不进行任何的 freeze)时,model 会初始化为预训练好的权重 Φ,最终 fine-tune 之后,调整为 Φ+ΔΦ(基于反向传播和梯度下降)
      • 每一个下游任务都要学习对应的 ΔΦ(|ΔΦ|=|Φ|)
    • LoRA 作为一个 parameter efficient 将与下游任务相关的 ΔΦ=ΔΦ(Θ),进一步编码(encode)为规模更小的参数 Θ
      • |Θ|≪|ΔΦ|=|Φ|
      • LoRA 采用 low-rank representation 来 encode ΔΦ

微调例子:

微调前:

微调后:

4. 展开使用P-Tuning v2

基于 P-Tuning v2 对ChatGLM-6B-PT微调。

微调前:

微调后(训飞了):

评估指标:

  • predict_bleu-4 = 7.6597
    表示生成文本与参考文本的 4-gram 匹配度为 7.66%。这个值越高,表示模型生成的文本与参考文本越接近。
  • predict_rouge-1 = 28.833
    表示生成文本中与参考文本的 unigram(单个词)匹配度约为 28.83%。这个分数代表生成的文本中有 28.83% 的词与参考文本一致。
  • predict_rouge-2 = 6.2194
    表示生成文本和参考文本中 bigram(连续两个词)的匹配度为 6.22%。
  • predict_rouge-l = 23.136
    ROUGE-L 通过最长公共子序列来衡量生成文本与参考文本的相似度。这里的 23.13 表示有 23.13% 的最长子序列在两者中匹配。

附录

1.PEFT 介绍

(1)方法分类

画板

加性微调

通过在预训练模型的特定位置添加可学习的模块或参数,以最小化适配下游任务时模型的可训练的参数量。(Prefix-tuning 通过在每个 Transformer 层的键、值和查询矩阵前面添加可学习的向量,实现对模型表示的微调,其实就是给大语言模型增加一层ebedding,对这层的参数做调整。Prompt Tuning 仅仅在首个词向量层插入可学习向量,以进一步减少训练参数,在里面的参数调整)

选择性微调

在微调过程中只更新模型中的一部分参数,而保持其余参数固定。相较于加性微调,选择性微调无需更改预训练模型的架构。

参数化微调

通过构建预训练模型参数的(低秩的)表示形式用于训练。在推理时,参数将被等价的转化为预训练模型参数结构,以避免引入额外的推理延迟。

这三者的区分如图所示:

混合微调

结合了各类 PEFT 方法的优势,并通过分析不同方法的相似性以构建一个统一的 PEFT 架构,或寻找最优的 PEFT 超参数

(2)高效 PEFT 设计

关注其训练和推理的延迟和峰值内存开销。

画板

(3)PEFT 的系统设计挑战

画板

(4)未来研究方向

画板

2.生成任务评估指标含义:

BLEU-4 (Bilingual Evaluation Understudy Score):

BLEU 是一种常用于机器翻译的评估指标,衡量生成文本与参考文本的相似度。BLEU-4 主要关注生成文本中连续 4 个词的匹配情况(即 4-gram 匹配)。它是通过计算生成文本与参考文本的 n-gram 共同出现的次数来评估模型输出的质量。

ROUGE Score (Recall-Oriented Understudy for Gisting Evaluation):

ROUGE 也是一种用来评估文本生成任务(如文本摘要、机器翻译等)输出的指标,主要用于比较生成文本与参考文本之间的相似度,尤其注重召回率。常见的 ROUGE 包括:

  • ROUGE-1:计算生成文本和参考文本中的单个词(unigram)的重叠情况。
  • ROUGE-2:计算生成文本和参考文本中连续两个词(bigram)的重叠情况。
  • ROUGE-L:基于最长公共子序列(LCS)的匹配。

3.参考资料

(1) ChatGLM-6B 模型基于 P-Tuning v2 的微调

(2)九天Hector 【入门】大语言模型常用微调框架介绍|LoRA&Prefix-Tuning&Prompt-Tuning&P-Tuning v2&RLHF微调原理简介

(3)五道口纳什 [LLMs 实践] 02 LoRA(Low Rank Adaption)基本原理与基本概念,fine-tune 大语言模型

(4)lora原作者论文:LORA.pdf

4.名词记录

预训练语言模型(Pretrain Language model,PLM)


http://www.kler.cn/a/379308.html

相关文章:

  • 【系统架构设计师】2022年真题论文: 论湖仓—体架构及其应用(包括解题思路和素材)
  • EHOME视频平台EasyCVR萤石设备视频接入平台视频诊断技术可以识别哪些视频质量问题?
  • C++面向对象设计模式——单例模式
  • 【网络】深入理解HTTP协议:请求方法、状态码与工作流程全解析
  • 设计模式之结构型模式---装饰器模式
  • 一分钟学会MATLAB-数据清洗(含完整代码)
  • ubuntu离线部署ollama
  • Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)
  • docker build cache 占用磁盘空间很高
  • SQL,力扣题目1747,应该被禁止的 Leetflex 账户
  • 近期学习前端的心得
  • (三千字心得笔记)零基础C语言入门第七课——二维数组
  • 【面试经典150】day 11
  • 双分解+一区极光优化+Transformer!CEEMDAN-Kmeans-VMD-PLO-Transformer多元时序预测
  • Python 作用域浅析
  • 【LeetCode】每日一题 2024_11_1 超级饮料的最大强化能量(DP)
  • 【实战篇】requests库 - 有道云翻译爬虫 【附:代理IP的使用】
  • brew 下载过慢, 切换使用国内源
  • Python小白学习教程从入门到入坑------第二十四课 继承(语法进阶)
  • 深度学习案例:一步步搭建多层神经网络以及应用
  • 基于向量检索的RAG大模型
  • 探索设计模式:命令模式
  • 第三十二章 Vue组件分类及存放位置
  • 本质矩阵分解计算Rt
  • 宝塔FTP服务配置结合内网穿透实现安全便捷的远程文件管理和传输
  • 广东网站设计提升你网站在搜索引擎中的排名