大模型小白必备:大模型微调的一些技术理解(一)

  • 集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。

  • 多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。

  • 先进算法:GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。

  • 实用技巧:FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA。

具体讲解

集成方法

1、预训练:

大模型预训练的类型主要包括自编码模型、自回归模型、和编码器-解码器模型。‌

  • ‌自编码模型‌:这类模型以BERT为代表,它是一种双向Transformer编码器,能够学习上下文相关的词向量表示,具有很强的泛化能力。BERT通过预训练任务(如掩码语言模型和下一句预测)来学习文本中的上下文关系,从而在各种自然语言处理任务中表现出色。GPT采用的是单向的Transformer,而BERT采用的是双向的Transformer,也就是不用进行Mask操作;预训练训练主要包含mlm和nsp任务;

  • ‌自回归模型‌:GPT是自回归模型的代表,它是一种基于Transformer的自回归语言模型,能够生成连贯的文本。GPT通过预测文本序列中的下一个词或句子,从而学习语言的生成模式。GPT模型已经发布了多个版本,如GPT-2~4等,这些版本在生成文本的能力上不断进步。GPT使用的Transformer结构就是将Encoder中的Self-Attention替换成了Masked Self-Attention,是一个单向的Transformer

  • ‌编码器-解码器模型‌:T5是一种基于Transformer的编码器-解码器模型,它使用encoder-decoder框架,可以用于各种NLP任务,如文本分类、命名实体识别、问答系统等。T5通过将所有NLP任务转化为文本到文本的转换任务,简化了模型的训练和应用过程。

2、指令监督微调(sft)

  微调是一个将预训练模型在较小、特定数据集上进一步训练的过程,目的是精炼模型的能力,提高其在特定任务或领域上的性能。微调的目的是将通用模型转变为专用模型,弥合通用预训练模型与特定应用需求之间的差距,确保语言模型更贴近人类的期望。

有监督微调(Supervised Finetuning,SFT),也被称为指令微调(Instruction Tuning),是指在已训练好的语言模型基础上,利用有标注的特定任务数据对模型进行进一步的训练和调整。

有监督微调的作用主要有以下几个方面:

  1. 任务适应:预训练模型往往是在大规模无标注或自监督数据上训练的,虽然具备了一定的通用能力,但可能并不完全适应特定任务。通过有监督微调,模型可以学习到特定任务的数据分布和模式,从而提升在该任务上的性能。

  2. 提升性能:微调能够进一步调整模型的参数,以优化在特定任务上的性能。

  3. 减少数据需求:相对于从头开始训练模型,有监督微调可以在预训练模型的基础上进行,因此通常能够更快地收敛,减少训练时间和训练成本。

3、奖励模型训练

 ChatGPT 使用了一种叫做 "奖励模型" 的技术来提高生成的文本的质量。奖励模型是一种额外的神经网络,它接收生成的文本并预测它的质量。在训练过程中,ChatGPT 会按照奖励模型的预测结果来调整生成文本的参数,以最大化奖励模型的预测值。这样就能让生成的文本更加符合人类语言的特征,提高质量。

奖励模型源于强化学习中的奖励函数,能对当前的状态刻画一个分数,来说明这个状态产生的价值有多少。在大语言模型微调中的奖励模型是对输入的问题和答案计算出一个分数。输入的答案与问题匹配度越高,则奖励模型输出的分数也越高。

    奖励模型(RM 模型)将 SFT 模型最后一层的 softmax 去掉,即最后一层不用 softmax,改成一个线性层。RM 模型的输入是问题和答案,输出是一个标量即分数。

    由于模型太大不够稳定,损失值很难收敛且小模型成本较低,因此,RM 模型采用参数量为 6B 的模型,而不使用 175B 的模型。奖励模型的损失函数采用 Pairwise Ranking Loss

奖励模型的损失函数为什么会比较答案的排序,而不是去对每一个答案的具体分数做一个回归?

每个人对问题的答案评分都不一样,无法使用一个统一的数值对每个答案进行打分。如果采用对答案具体得分回归的方式来训练模型,会造成很大的误差。但是,每个人对答案的好坏排序是基本一致的。通过排序的方式避免了人为的误差。

4、PPO 训练、DPO 训练、KTO 训练、ORPO 训练

 DPO是一种相对较新的方法,它直接优化用户或专家的偏好,而非传统的累积奖励。PPO(Proximal Policy Optimization)和DPO(Distributed Proximal Policy Optimization)都是基于策略梯度的强化学习算法,它们通过优化策略函数来直接学习一个策略,该策略能够映射观察到的状态到动作的概率分布。DPO 的核心思想是跳过奖励模型训练,直接根据偏好数据调整最终的偏好对齐 LLM

使用DPO,训练更为简单稳定,大规模的reward模型训练数据可以直接应用于DPO,反过来,policy也能用于新样本的reward评估(比如使用rejection-sampling-finetuning)。

现有的将语言模型与人类反馈对齐的方法,例如 RLHF 和 DPO,需要偏好数据——对于给定的输入,输出对中一个输出比另一个输出更受青睐。然而,在现实世界中,大规模收集高质量的偏好数据既具有挑战性,又成本高昂。偏好数据通常会受到噪音、不一致和不及物性的影响,因为不同的人类评分者可能对哪种输出更好有不同的看法。KTO 是由 Ethayarajh 等人 (2024) 提出的一种替代方法,它可以使用更简单、更丰富的信号——只需知道给定的输出对于输入来说是可取的还是不可取的,而无需知道输出之间的相对偏好。



关键创新在于 KTO 只需要一个二元信号来表明输出是可取的还是不可取的,而不是完整的偏好对。这使得 KTO 比基于偏好的方法更具有数据效率,因为二元反馈信号更加丰富,收集起来也更便宜。KTO 在偏好数据稀缺或收集成本高昂但您可以访问大量有关模型输出质量的二元反馈的情况下特别有用。根据论文,它可以匹配甚至超过基于偏好的方法(如 DPO)的性能,尤其是在更大的模型规模下。然而,这需要在实践中进行大规模验证。当目标是直接优化人类效用而不仅仅是偏好可能性时,KTO 可能是更好的选择。但是,如果偏好数据质量非常高且噪音或不传递性很小,那么基于偏好的方法仍然可能是更好的选择。KTO 在处理极端数据不平衡以及在某些情况下避免监督微调的需要方面也具有理论优势。

   ORPO 引入了一种新颖的偏好对齐算法,该算法将基于比值的惩罚与传统的因果语言建模绑定损失(例如交叉熵损失)结合起来。ORPO 的目标函数由两个部分组成:SFT 损失和相对比率损失 (LOR)。LOR 项最大化了产生受欢迎响应和不受欢迎响应的可能性之间的比值比,有效地惩罚了为被拒绝的响应分配高概率的模型。

多种精度

1、funetuning

Prefix-tuning

Prefix-tuning方法通过微调预训练模型的特定部分(称为“前缀”)以适应特定任务。这种方法只微调前缀,而不是整个模型,从而减少了计算成本和过拟合的风险。Prefix-tuning的性能通常优于传统的微调方法,但不及完整的模型微调。prefix的作用是引导模型提取x相关的信息,进而更好地生成y。例如,我们要做一个summarization的任务,那么经过微调后,prefix就能领悟到当前要做的是个“总结形式”的任务,然后引导模型去x中提炼关键信息;如果我们要做一个情感分类的任务,prefix就能引导模型去提炼出x中和情感相关的语义信息,以此类推。这样的解释可能不那么严谨,但大家可以大致体会一下prefix的作用。

P-tuning

P-tuning是一种改进的微调方法,通过引入一个参数化转换矩阵来调整预训练模型的权重。这个矩阵可以学习地改变预训练模型的权重分布,使其更好地适应特定任务。P-tuning在保持良好性能的同时,减少了微调过程中对初始模型的过度依赖。

Prompt-tuning

Prompt-tuning是一种新颖的微调方法,利用了近年来自然语言处理领域的prompting技术。该方法通过修改预训练模型的输入来适应特定任务,使其在输入阶段就考虑到任务的特定需求。Prompt-tuning可以显著提高模型的性能,同时减少了对初始模型的过度依赖和过拟合的风险。

2、lora

全参数微调太贵,Adapter Tuning存在训练和推理延迟,Prefix Tuning难训且会减少原始训练数据中的有效文字长度

在3.1中,我们介绍了LoRA的整体架构:在原始预训练矩阵的旁路上,用低秩矩阵A和B来近似替代增量更新 ΔW𝑊 。你可以在你想要的模型层上做这样的操作,比如Transformer中的 𝑊q𝑞,𝑊𝑘,𝑊𝑣,𝑊𝑜 、𝑊k𝑞,𝑊𝑘,𝑊𝑣,𝑊𝑜 、𝑊v𝑞,𝑊𝑘,𝑊𝑣,𝑊𝑜 、𝑊𝑞,𝑊𝑘,𝑊𝑣,𝑊𝑜 0、MLP层的权重、甚至是Embedding部分的权重。在LoRA原始论文中,只对Attention部分的参数做了低秩适配,但在实际操作中,我们可以灵活根据需要设置实验方案,找到最佳的适配方案

但是为什么LoRA又能从整体上降低显存使用呢,因为:

  • LoRA并不是作用在模型的每一层,例如论文里的LoRA只作用在attention部分

  • LoRA虽然会导致某一层的峰值显存高于全量微调,但计算完梯度后,这个中间结果就可以被清掉了,不会一致保存

  • 当待训练权重从d*d降为2*r*d时,需要保存的optimizer states也减少了(那可是fp32)。

什么是秩

对矩阵A来说,由于只要掌握其中的任意一行,其余行都可以由这一行线性推导而来,因此A的秩是1。
对矩阵B来说,由于只要掌握其中的任意两行,其余行都可以由这两行线性组合推导而来,因此B的秩是2。
对矩阵C来说,由于必须完全掌握三行,才能得到完整的C,因此C的秩是3。

秩表示的是矩阵的信息量。如果矩阵中的某一维,总可以通过其余维度线性推导而来,那么对模型来说,这一维的信息是冗余的,是重复表达的。对A和B的情况,我们称为秩亏(rank deficient),对C的情况,我们称为满秩(full rank)。更严谨的数学定义,大家可以参考《线性代数》(狗头)。

零基础如何学习AI大模型

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
请添加图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值