预训练大模型的并行训练与部署 2024

预训练语言模型虽然在自然语言任务中取得了很好的效果,但是由于这类模型于模型参数量与训练数据量十分庞大,导致在单张卡上无法储存完整的模型,传统的单机单卡的训练方式已无法满足模型的训练,以及在部署推理模型时,庞大的参数量限制了推理速度与相应服务的扩展性。

采用多机多卡的训练方式是缓解大规模预训练模型难以训练的有效手段。为此,多机多卡间通信、模型并行与数据并行时梯度的同步等问题受到了许多关注,各种训练框架也应运而生。Nvidia 开发的 Megatron-LM 训练框架可以直接将大规模预训练语言模型在多机多卡下进行并行训练。

Megatron-LM 提供了完善的数据并行、模型并行的能力,并支持 APEX 的混合精度加速训练,下图为 Megatron-LM进行分布式训练的示意图。此外清华大学开源的 FastMoE 为大规模的基于 MoE 的预训练模型提供了高效的分布式训练框架。

图 3.1-5 预训练大模型的并行训练示意图

为了缓解大规模预训练模型在部署推理过程中成本过高的问题,将大规模的预训练语言模型通过知识蒸馏缩减为小规模模型成为了实际应用中常用的方式。知识蒸馏使用教师模型(在这里即为大规模预训练模型)的输出和数据的真实标签去训练学生模型。

这样可以将教师模型的知识转移到学生模型中,教师模型与学生模型可以是同构或者异构。在保留性能的前提下,知识蒸馏可以显著缩减模型的规模,而随着模型规模的缩减,推理时间与部署成本大大降低。这方面代表性的工作有华为提出的 TinyBERT、微软提出的 MiniLM 等。

  1. 视觉预训练大模型关键技术分析

一方面,不同于文本和语音,视觉模型的输入往往是 2D(图像)甚至 3D(视频),这就造成在同等参数规模下,视觉模型往往具有更大的计算量,训练速度更慢,需要消耗大量的计算资源,这也是目前视觉大模型在模型规模上落后于文本等领域模型规模的主要原因。

此外,在文本等领域的大模型训练策略和经验并不一定适合视觉领域。因此,训练视觉大模型的难度也往往要超过其他模态大模型。另一方面,视觉任务种类繁多,包括图像层级、目标层级以及像素层级。

图像层级的任务主要包括图像分类、精细识别、图像检索以及目标重识别等,目标层级则主要包括目标检测、目标跟踪、关键点估计等,而像素层级主要包括语义分割、深度估计等,对于不同层级任务的模型往往需要兼顾图像的高层语义和空间分辨率信息,这催生研究者们设计了一系列不同的基础结构。

对于不同的视觉模型其网络结构、超参数(如学习率、衰减因子、优化器甚至批次大小)以及评估方式(K-NN、线性评估、微调、半监督等)往往不一致,同样给视觉大模型的训练带来了一系列的挑战。

本小节针对目前视觉预训练的发展,总结了视觉大模型在训练过程中的部分关键技术,包括大模型稳定训练技术、视觉模型扩容技术、视觉模型性能评估技术以及模型小型化技术。这些关键技术深刻地影响视觉大模型的训练、扩容、评估以及应用部署。

  1. 视觉大模型稳定训练技术

随着 Transformer 在视觉领域中取得的成功,越来越多的视觉任务都采用 Transformer 作为主干网络。相比 CNN 网络,Transformer在模型扩容、结构统一、特征表达以及对大数据的支持度上都略胜一筹。因此,越来越多的视觉预训练方法均采用 Transformer 作为基础网络,如最新的 DINO、MOCOv3 以及 MAE 等。

然而 Transformer 大模型的训练极其不稳定,训练曲线容易出现较大的波动,结果导致精度的下降。Facebook 在 MOCOv3 的训练过程中发现大模型的不稳定性与输入的批次大小、学习率以及优化器的选择都有关系,如图 3.2-1 所示。

(a)ViT 大模型训练曲线与批次大小关系图

(b)ViT 大模型训练曲线与学习率大小关系图(AdamW 优化器)

在这里插入图片描述

(c)ViT 大模型训练曲线与学习率大小关系图(LAMB 优化器)

图 3.2-1 大模型训练不稳定示意图

MOCOv3 发现这种不稳定性主要是由于训练过程中梯度的突变导致,而这种不稳定性主要发生在 Transformer 的前几层。因此,其经验性地提出了固定 ViT 模型的线性投影层来改善模型训练的稳定性。

此外,MAE也验证了即使在有监督的情况下,随机初始化训练大模型也需要精细地调节各个训练参数,并且需要施加强正则化,否则模型容易发散。因此,MAE 在进行自监督预训练时采用大范围的掩码策略,掩码比例高达 75%,并且实验表明这种预训练方式不仅能够获得比较好的性能,同时也非常适合训练视觉大模型。这种大范围掩码策略可以看作是一种强正则化手段。

尽管目前有少量工作试图去改善视觉大模型的训练稳定性,但是这些方法都只针对特定的模型做了尝试,其推广性还未得到充分的验证。如何改善大模型训练的稳定性,充分挖掘和释放大模型中蕴藏的知识表达潜力,推动视觉预训练大模型的快速发展,还需要充分地研究和解释大模型不稳定的内在机理,提出更加通用的训练技术。

  1. 视觉大模型扩容技术

不管是 CNN 模型还是 Transformer 模型,最简单的模型扩容方法就是增加模型的层数和隐含层特征维度,这种扩容技术称之为稠密扩容。稠密扩容的方式,一方面会使得模型复杂度显著增加,极度依赖超大规模计算资源;另一方面,稠密模型的性能提升往往不是很明显,随着模型参数规模的不断增大,性能也趋向饱和,如图3.2-2 和 3.2-3 所示。

图 3.2-2 稠密大模型训练时间显著增加

在这里插入图片描述

图 3.2-3 模型大小、数据集大小与上下游任务精度关系

除了稠密扩容外,另一种常用的扩容方式是稀疏扩容,即混合专家模型(MoE, Mixture of Experts)。稀疏扩容最早应用于 NLP 领域 , 代 表 性 的 工 作 为 google 于 2021 年 1 月 发 布 的 SwitchTransformer,具体结构如下图 3.2-4 所示。通过对 Transformer中的前馈网络 FFN 进行稀疏化,其将语言模型的参数扩大到了 1.6 万亿,并在保持同等推理算力的情况下显著改善下游语言任务的性能。

在视觉预训练任务中,也有少部分工作尝试对模型进行稀疏扩容,并取得了一定的进展。如 Google 利用 MoE 将视觉模型扩大到近 150 亿参数,也是目前已知最大的视觉预训练大模型。然而,其在 ImageNet 上的精度只略高于现有中型模型。此外,稀疏扩容对工程优化、底层计算平台的通信要求较高,往往需要集合数据并行、模型并行和专家并行等多种并行策略,实现难度较大,同时还可能发生负载均衡问题。

现有工作也表明,即使是纯稀疏模型,也需要去平衡专家数量以及专家在网络中的位置,并不是专家数越多越好。因此,如何设计更好的视觉大模型扩容方式,如稠密与稀疏协同扩容,融合稠密模型的简洁性和稀疏模型灵活性的优点,实现计算和性能友好的视觉大模型日益重要。

图 3.2-4 Switch Transformer 稀疏扩容示意图

4. 视觉大模型性能评估技术

目前视觉预训练模型的评估方式主要包括 kNN、线性评估、微调(finetuning)、半监督学习以及小样本学习。kNN 主要用于在预训练阶段实时验证预训练模型的收敛性,其精度具备一定的指导意义,但是并不能反映最终的分类性能。线性评估是预训练中常用的评估手段,主要用于评估预训练模型特征的通用性,在线性评估阶段整个预训练模型会被固定不更新,只更新最后的分类层。

微调主要用于下游目标检测、语义分割等任务,当然也可以用于图像分类和识别任务,相比线性评估,微调则会更新整个模型。半监督学习则是在微调的基础上,在只使用部分带标签的数据进行调整,旨在充分利用预训练模型学习到的表征减少下游任务数据的标注成本,常见的半监督学习方式一般随机抽取 1%或者 10%带标签的数据进行微调。

小样本学习则是在下游任务中每个类别只提供少量的样本进行微调,其相比半监督学习可利用的样本数更少,通常采用 1-way、2-way、5-way以及 10-way 等方式。

尽管目前存在多种评估方式,但各种评估方式之间相互独立,在某个评估方式下性能表现好并不代表在其他评估方式下具备同样的性能趋势,如在 MAE中微调和线性评估之间性能差距就比较明显,调整预训练模型的部分参数,可以显著增加线性评估的性能,然而其微调性能则基本不变。

同时由于视觉任务的多样性和复杂性,即使两个模型具备相同的上游精度,在不同的下游任务和场景中精度的表现也不完全一致。因此,如何准确地评估预训练模型的性能是一项关键技术,公平方便地对比不同预训练模型,有助于指导和优化视觉大模型的训练,并形成统一的评判标准。

  1. 视觉大模型小型化技术

常见的模型小型化技术包括知识蒸馏、结构搜索、模型剪枝及量化,尽管这些技术目前都比较成熟,但是在视觉预训练大模型中还并没有被充分验证。相比传统的视觉任务和视觉模型,视觉预训练大模型在模型容量、结构设计、训练方式以及损失函数方面均发生改变,当前的小型化技术是否可直接运用到预训练大模型上,并且不损坏特征表达还是未知数。因此,实现对视觉预训练大模型的瘦身,充分发挥“大模型+大数据”学习范式的优势,推动视觉预训练大模型在实际应用场景的落地,针对视觉大模型的小型化技术必不可少。

此外,视觉大模型方面,面对多种多样的视觉任务,采用Transformer 架构,通过学习大量的图像和视频数据,构建具备视觉通用能力的多任务大模型可能成为未来重要的研究方向。

此外,视觉大模型的训练效率日益成为瓶颈,现有的预训练方式往往需要长时的训练才能获取一个不错的精度,如 SimCLR 需要训练 800 轮(epoch)、MOCO 系列模型也需要 300~800 轮,最新的 MAE 模型甚至达到了 1600轮,长时的预训练不仅使得模型迭代周期慢,不利于快速调整和优化,同时还需要耗费大量的计算资源。然而,有监督模型往往只需要迭代100 轮就可以达到比较好的收敛效果,因此如何提升预训练模型的收敛效率,实现快速训练也需要进一步探索。

如何学习大模型 AI ?

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

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

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

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

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

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

在这里插入图片描述

第一阶段(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%免费

在这里插入图片描述

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值