LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】

这篇具有很好参考价值的文章主要介绍了LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

5、 有监督微调

5.1、提示学习&语境学习

提示学习

完成预测的三个阶段:提示添加、答案搜索、答案映射

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

提示添加

“[X] 我感到 [Z]”

x = “我不小心错过了公共汽车。”

x’ = “我不小心错过了公共汽车。我感到[Z]”

答案搜索

Z = {“太好了”,“好”,“一般”,“不好”,“糟糕”}

将给定提示 x ′ 而模型输出为 z 的过程记录为函数 f f i l l ( x ′ , z ) f_{fill} (x ′ , z) ffill(x,z),对于每个答案空间 Z Z Z中的候选答案 z z z,分别计算模型输出它的概率, 从而找到模型对[Z] 插槽预测得分最高的输出:

z ~ = s e a r c h z ∈ Z P ( f f i l l ( x ′ , z ) ; θ ) \tilde{z} = search_{z∈Z}P(f_{fill}(x',z);θ) z~=searchzZP(ffill(x,z);θ)

答案映射

将模型的输出与最终的标签做映射。映射规则是人为制定的,比如,将“太好了”、“好”映射为“正面”标签,将“不好”,“糟糕”映射为“负面”标签,将“一般”映射为“中立”标签。

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

提示学习方法易于理解且效果显著,提示工程、答案工程、多提示学习方法、基于提示的训练策略等已经成为从提示学习衍生出的新的研究方向。

语境学习

关键思想是从类比中学习,整个过程并不需要对模型进行参数更新,仅执行向前的推理。

向模型输入特定任务的一些具体例子以及测试样例,让模型根据示例续写出测试样例的答案。

如下情感分类,续写情感极性:
LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

5.2、高效微调

高效微调:在缩减训练参数量和GPU显存占用,同时使训练后的模型具有与全量微调相当的性能。

全量微调:微调全部参数需要相当高的算力。

LoRA( Low-Rank Adaptation of Large Language Models)

计算流程

h = W 0 x + Δ W x = W 0 x + B A x h = W_0x + \Delta Wx = W_0x + BAx h=W0x+ΔWx=W0x+BAx

矩阵 A 通过高斯函数初始化,矩阵 B 为零初始化,使得训练开始之前旁路对原模型不造成影响,即参数改变量为 0。

将原权重与训练后权重合并后, 推理时不存在额外的开销。

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

低秩矩阵通常有以下特点:

  1. 线性相关性较高:矩阵中的行或列之间存在较强的线性相关性,因此可以用较少的线性独立分量来近似表示。
  2. 信息冗余较多:由于线性相关性,低秩矩阵中包含了一些冗余信息,可以通过较低秩的近似来减少存储和计算成本。
  3. 较小的维度:低秩矩阵通常具有较低的维度,因为它们可以用较少的基向量(或特征向量)来表示。

其它高效微调方式

  • 微调适配器(Adapter

分别对 Transformer 层中的自注意力模块与多层感知(MLP)模块,在其与其之后的残差连接之间添加适配器层(Adapter layer)作为可训练参数。

该方法及其变体会增加网络的深度,从而在模型推理时带来额外的时间开销。

  • 前缀微调( Prefix Tuning

前缀微调是指在输入序列前缀添加连续可微的软提示作为可训练参数。由于模型可接受的最大输入长度有限,随着软提示的参数量增多,实际输入序列的最大长度也会相应减小,影响模型性能。

软提示:连续提示的方法。

5.3、模型上下文窗口扩展

上下文窗口:在自然语言处理中,LLM(Large Language Model,大型语言模型)的上下文窗口指的是模型在处理文本时所考虑的文本片段或单词的范围。

  • 具有外推能力的位置编码

ALiBi

相对位置编码

注意力加上线性偏置

S o f t m a x ( q i K T + m ⋅ [ − ( i − 1 ) , . . . , − 2 , − 1 , 0 ] ) Softmax(q_iK^T+m·[-(i-1),...,-2,-1,0]) Softmax(qiKT+m[(i1),...,2,1,0])

  • m为坡度,取值为: { 1 a , 1 a 2 , . . . , 1 256 } , 其中 a n u m _ h e a d s = 256 \{\frac{1}{a} , \frac{1}{a^2},...,\frac{1}{256} \} ,其中 a^{num\_heads} =256 {a1,a21,...,2561},其中anum_heads=256
  • [ − ( i − 1 ) , . . . , − 2 , − 1 , 0 ] [-(i-1),...,-2,-1,0] [(i1),...,2,1,0]表示相对位置,取值:-(k索引[1,i] - q索引[i])
  • 插值法

RoPE位置插值:

f ’ ( x , m ) = f ( x , m L ′ ) L f’(x,m) = f(x,\frac{m}{L'})L f(x,m)=f(x,Lm)L

将更大的位置索引范围 [0,L′) 缩减至原始的索引范围 [0,L)

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

5.4、指令数据构建

指令数据的质量多样性是衡量指令数据的重要维度,影响有监督微调过程的关键因素。

指令数据由指令、输入、输出组成。

指令数据示例:

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

  1. 手动构建

手动编写提示与相应的回答;
大量人力投入。

  1. 自动生成指令

Self-instruct

Self-instruct
其数据生成过程是一个迭代引导算法。

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

  1. 生成任务指令

手动构建175 seed tasks;

每次采样8个task 指令(人工6 + 迭代生成2);

直到停止生成 || 达到模型长度限制。

  1. 确定指令是否代表分类任务

处理不同。

不同原因:避免分类任务时,生成过多某些特定任务Input,而忽视其他类别。

  1. 生成任务输入和输出

输出:完整指令数据

No:Input-first, Input i n s t r u c t i o n > \frac{instruction}{}> instruction>Output

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能
Yes:Output-first, Output i n s t r u c t i o n > \frac{instruction}{}> instruction>Input

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

  1. 过滤低质量数据

多样性:ROUGE-L相似度<0.7;

质量:启发式规则:除掉含某些关键字(如“图片”)、重复、过长或过短数据。

LLaMA 模型上进行有监督微调得到 Alpaca 模型, 所使用的指令数据集的示例

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能

5.5、开源指令数据集

开源数据指令集

LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】,LLM,深度学习,Python,深度学习,pytorch,人工智能文章来源地址https://www.toymoban.com/news/detail-731196.html

到了这里,关于LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用弱监督学习实现从单张图像到图像集的准确3D人脸重建:PyTorch和Python的深度实践

    在这篇文章中,我将带你走进3D人脸重建的世界,并介绍如何使用弱监督学习从单张图像或图像集中准确重建3D人脸。我们将使用Python和PyTorch,一种广泛用于深度学习的开源框架,来实现这一目标。 3D人脸重建是计算机视觉领域的一项重要任务,它旨在从2D图像中恢复出3D脸部

    2024年02月16日
    浏览(48)
  • PEFT学习:使用LORA进行LLM微调

    由于LORA,AdaLORA都集成在PEFT上了,所以在使用的时候安装PEFT是必备项 方法一:PyPI To install 🤗 PEFT from PyPI: 方法二:Source New features that haven’t been released yet are added every day, which also means there may be some bugs. To try them out, install from the GitHub repository: If you’re working on contributing to th

    2024年02月10日
    浏览(49)
  • 深度学习中有监督,无监督, 自监督学习

    有监督学习的特点,是数据集通常带有人工标签的数据集。 监督学习提供了一组输入输出对,这样我们就可以学习一个将输入映射到正确输出的中间系统。 监督学习的一个简单示例是根据图像数据集及其相应类别(我们将其称为标签)确定图像的类别(即,狗/猫等)。 对于

    2024年02月09日
    浏览(40)
  • 【Pytorch】从MoCo看无监督对比学习;从SupCon看有监督对比学习

    以下内容全部来自于:自监督学习-MoCo-论文笔记. 侵删 论文:Momentum Contrast for Unsupervised Visual Representation Learning CVPR 2020 最佳论文提名 用动量对比学习的方法做无监督的表征学习任务。 动量的理解即是指数移动平均(EMA),公式理解: moco中利用动量来缓慢的更新编码器,这

    2024年02月21日
    浏览(50)
  • 自监督深度学习技术

    自监督学习(SSL)是机器学习的一种范式,用于处理未标记数据以获取有用的表示,以帮助下游学习任务。SSL方法最显著的特点是它们不需要人类标注的标签,这意味着它的训练完全基于由未标记的数据样本组成的数据集。典型的SSL流程包括在第一阶段学习监督信号(自动生

    2024年01月24日
    浏览(39)
  • 深度学习|自监督学习、MAE学习策略、消融实验

    前言:最近在阅读论文,发现太多机器学习的知识不懂,把最近看的一篇论文有关的知识点汇总了一下。 Pretrain-Finetune(预训练+精调)模式:迁移学习,通过在源域数据上学习知识,再迁移到下游其他目标任务上,提升目标任务上的效果。 Self-supervised Learning(自监督学习)

    2024年02月12日
    浏览(44)
  • Pytorch--模型微调finetune--迁移学习 (待继续学习)

    https://www.bilibili.com/video/BV1Z84y1T7Zh/?spm_id_from=333.788vd_source=3fd64243313f29b58861eb492f248b34 torchvision 微调 timm 微调 半精度训练 大模型无法避免过拟合,

    2024年02月11日
    浏览(41)
  • 【深度学习】自监督学习详解(self-supervised learning)

    深度学习被分为:监督学习,无监督学习和自监督学习。 监督学习近些年获得了巨大的成功,但是有如下的缺点: 1.人工标签相对数据来说本身是稀疏的,蕴含的信息不如数据内容丰富; 2.监督学习只能学到特定任务的知识,不是通用知识,一般难以直接迁移到其他任务中。

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包