文章内容省流版本:

SFT

SFT 监督微调是在预训练大模型的基础上使用特定任务的标注数据进行有监督训练(替换预训练模型的输出层为目标任务需要的模式),使模型快速掌握该任务的执行能力,提升其在目标领域的精度和可控性。

LoRA

LoRA微调是通过冻结预训练模型的主权重,仅向模型注入可训练的低秩矩阵,实现用极小参数量(<0.1%)高效适配下游任务的高效微调方法。

AdaLoRA

动态分配 LoRA 秩大小,重要参数高秩,次要低秩。

Freeze

Freeze 监督微调(Freeze Fine-tuning)是一种通过冻结预训练模型的部分底层参数、仅微调顶层结构和任务头的轻量化训练方法,以低资源消耗实现下游任务适配。

1、SFT 监督微调

传统的微调方法需要微调整个预训练语言模型,对于大语言模型的微调需要大量的资源和时间,急需更加高效的微调方法。

人工智能大语言模型的 SFT(supervised fine-tuning)监督微调技术:标准 SFT 监督微调、LoRA 微调、AdaLora、Prefix-Tuning 微调、P-ytuning v2 微调、Freeze 监督微调等。

一句话省流版本:SFT 监督微调是在预训练大模型的基础上使用特定任务的标注数据进行有监督训练(替换预训练模型的输出层为目标任务需要的模式),使模型快速掌握该任务的执行能力,提升其在目标领域的精度和可控性。

SFT监督微调是指在源数据集上预训练一个神经网络(即源模型),然后创建一个新的神经网络模型(即目标模型)。

目标模型复制了源模型上除了输出层以外的所有模型设计和参数,这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。源模型的输出层预源数据集的标签紧密相关,因此在目标模型中不予采用。

进行微调时,为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。

在目标数据集上训练目标模型时,整个模型结构都会被训练,但大部分层的模型参数都基于源模型的参数微调。

(1)SFT 监督微调的步骤

如下:

  • 预训练:首先在一个大规模的数据集上训练一个深度学习模型。
  • 微调:使用目标任务的训练集对预训练模型进行微调。通常,只有预训练模型中的一部分层被微调(例如模型的最后几层或者某些中间层)。在微调过程中通过反向传播算法对模型进行优化,使得模型在目标任务上表现更好。
  • 评估:使用目标任务的测试集对微调后的模型进行评估,得到模型在目标任务上的性能指标。

(2)SFT 监督微调的特点

监督式微调能够利用预训练模型的参数和结构,避免从头开始训练模型,从而加速模型的训练过程,并且能够提高模型在目标任务上的表现。监督式微调在计算机视觉、自然语言处理等领域中得到了广泛应用。

然而 SFT 也存在一些缺陷:

  • 首先, 需要大量的标注数据用于目标任务的微调,如果标注数据不足,可能会导致微调后的模型表现不佳。
  • 其次, 由于预训练模型的参数和结构对微调后的模型性能有很大影响,因此选择合适的预训练模型也很重要。

SFT 监督微调时学习率通常会设置得很小。目前主流的 SFT 监督方法包括:LoRA、P-tuning v2、Freeze 等。

2、LoRA(Low-rank Adaptation)微调

一句话省流版本:LoRA 微调是通过冻结预训练模型的主权重,仅向模型注入可训练的低秩矩阵,实现用极小参数量(<0.1%)高效适配下游任务的高效微调方法。

LoRA 微调,即大语言模型的低阶自适应方法。它的基本原理是冻结预训练好的模型权重参数,在冻结原模型参数的情况下通过往模型中加入额外的网络层,并只训练这些新增的网络参数。

由于这些新增参数数量较少,这样不仅 finetune 的成本显著下降,还能获得和全模型参数与微调类似的效果。

随着大语言模型的发展,模型的参数量越来越大,因此微调所有模型参数变得不再实际。

LoRA 微调方法由微软提出,通过只微调新增参数的方式大大减少了下游任务的可训练参数数量。

(1)LoRA 微调方法的基本原理

神经网络的每一层都包含矩阵的乘法。这些层中的权重矩阵通常具有满秩。当适应特定任务时,预训练语言模型具有低的 “内在维度”,将它们随机投影到更小的子空间时,它们仍然可以有效地学习。

在大语言模型微调的过程中,LoRA 冻结了预先训练好的模型权重,并将可训练的秩分解矩阵注入到 Transformer 体系结构的每一层。

简言之就是不去动预训练好的模型权重,而是选择在原权重的基础上与一个相同形状的额外矩阵相加,以此来达到“调整”的目的。

而该额外矩阵可以通过两个较小矩阵相乘得到,因此只需要训练这两个较小矩阵即可实现调整模型“大”权重的效果。由于小矩阵的参数量远小于大矩阵,因此可以加速训练过程。

img

LoRA 的 BA 低秩矩阵分解

对 Transformer 的每一层结构都蚕蛹 LoRA 微调的方式,最终可以使得模型微调参数量大大减少。

当部署到生产环境中时,只需要计算和存储 BA 矩阵,并像往常一样执行推理。与其他方法相比没有额外的延迟,因为不需要附加更多的层。

(2)LoRA 的特点

预训练模型参数可以被共享,用于为不同的任务构建许多小的 LoRA 模块。冻结共享模型,并通过替换矩阵 A 和 B 可以有效地切换任务,从而显著降低存储需求和多个任务切换的成本。

当使用自适应优化器时,由于不需要计算梯度以及保存太多模型参数,LoRA 使得微调效果更好,并可以大大降低微调的硬件门槛。

低秩分解采用线性设计的方式使得在部署时能够将可训练的参数矩阵与冻结的参数矩阵合并,与完全微调的方法相比不引入推理延迟。

LoRA 与其他多种微调方法不冲突,可以与其他微调方法相结合。

3、AdaLoRA

升级点:动态分配 LoRA 秩大小,重要参数高秩,次要低秩

优势:由于动态分配 LoRA 的秩大小,因此可以实现在相同参数量下训练效果提升

4、Freeze 监督微调方法

一句话省流版本:Freeze 监督微调(Freeze Fine-tuning)是一种通过冻结预训练模型的部分底层参数、仅微调顶层结构和任务头的轻量化训练方法,以低资源消耗实现下游任务适配。

Freeze 方法对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡就可以对大模型进行训练。

在语言模型微调中,Freeze 微调方法仅微调 Transformer 后几层的全连接层参数,而冻结其他所有参数。

实验表明 Transformer 的浅层倾向于提取出浅层特征,深层倾向于提取语义特征,层数越深提取的语义特征所占的比例越重。

对于各类不同的 NLP 任务,浅层特征往往是具有“共性”,而主要区别在于各自深层次的语义特征。

因此通过仅微调 Transformer 后几层的全连接层参数,在保证参数高效微调的前提下,可以最大程度的发挥大语言模型的微调作用。

(1)Freeze 监督微调的特点

如下:

  • 大量减少了大语言模型的微调参数,是一种参数高效的微调方法
  • 由于只需要微调高层特征,加快了模型的收敛,节约了微调的时间
  • 最大程度地保留了大语言模型预训练所学习到的语言的“共性”,可解释性较强

5、Prefix-tuning 微调方法

Prefix-Tuning 的核心思想是在每一层 Transformer 的自注意力机制中引入一组可训练的前缀向量,这些前缀向量作为额外的键和值,影响注意力的分布,从而引导模型适应特定任务。

在微调过程中,预训练模型的所有参数保持不变,仅优化前缀向量的参数。仅用 0.1%-1% 的参数量即可实现对预训练模型的精准控制,尤其擅长文本生成任务的细粒度优化。

6、P-tuning v1 微调方法

P-tuning v1微调方法是将 prompt 加入到微调过程中,只对 prompt 部分的参数进行训练,而语言模型的参数固定不变。

P-tuning v1 是一种面向离散提示优化的连续微调方法,通过引入可训练的虚拟提示向量(Virtual Prompt Embeddings)替代传统手工设计文本提示,大幅提升大语言模型在少样本任务中的推理能力,实现参数高效调优。

在大模型上可以与全参数微调方法相媲美,但是对于较小的模型效果很差。

7、P-tuning v2 微调方法

P-tuning v2 微调方法结合了 prefix-tuning 和 P-tuning v1 的做法,在输入前面的每一层都加入可微调的参数,并且每一层的 transformer 的 embedding 输入都需要被微调;

同时对于 prefix 部分,每一层 transformer 的输入不是从上一层输出,而是随机初始化的 embedding 作为输入。

P-tuning v2 微调方法仅精调 0.1% 参数量(固定 LM 参数),在各个参数规模语言模型上,均取得和 Fine-tuning 相比肩的性能,解决了 P-tuning v1 在参数量不够多的模型中微调效果很差的问题。

8、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

更多推荐