AI的大模型
2023-02-16 17:01阅读:
大模型相关技术综述
ChatGPT有多烧钱?一天电费40万!大模型训练成本近亿元
清华刘知远:大模型“十问”,寻找新范式下的研究方向
什么是大模型?超大模型和 Foundation Model 呢?
以GPT系列为例:
1)GPT-1是上亿规模的参数量,数据集使用了1万本书的BookCorpus,25亿单词量;
2)GPT-2参数量达到了15亿规模,其中数据来自于互联网,使
确定
用了800万在Reddit被链接过的网页数据,清洗后越40GB(WebText);
3)GPT-3参数规模首次突破百亿,数据集上将语料规模扩大到570GB的CC数据集(4千亿词)+WebText2(190亿词)+BookCorpus(670亿词)+维基百科(30亿词)。
可以看到,数据上面,每一代均相比前一代有了数量级的飞跃,无论是语料的覆盖范围、丰富度上都是绝对规模的增长。可以预测到,下一代万亿模型,使用的数据如果相比GPT-3在质量、来源和规模上没有量级的变化,很难有质的提升。
NLP领域的大规模预训练模型可谓是发展快速,从
BERT 到 GPT-3,再到万亿规模的 Switch T
ransformer,无论是模型大小、数据量,还是计算资源占用都在疾速增长。规模大到什么程度呢?GPT-3 的参数量达到了 1750
亿,训练数据超过了 45TB,需要的算力Flops是 BERT 的 1900 多倍,3.14E23 FLOPS
2)大模型具备自监督学习功能,降低训练研发成本
大模型的自监督学习方法,可以减少数据标注,在一定程度上解决了人工标注成本高、周期长、准确度不高的问题。由于减少了数据标准的成本,使得小样本的学习也能达到比以前更好的能力,并且模型参数规模越大,优势越明显,避免开发人员再进行大规模的训练,使用小样本就可以训练自己所需模型,极大降低开发使用成本。
2018年Bert首次提出,便一举击败 11 个 NLP 任务的 State-of-the-art
结果,成为了 NLP 界新的里程碑,同时为模型训练和NLP领域打开了新的思路:在未标注的数据上深入挖掘,可以极大地改善各种任务的效果。要知道,数据标注依赖于昂贵的人工成本,而在互联网和移动互联网时代,大量的未标注数据却很容易获得。
3)大模型有望进一步突破现有模型结构的精度局限
第三点,从深度学习发展前10年的历程来看,模型精度提升,主要依赖网络在结构上的变革。
例如,从AlexNet到ResNet50,再到NAS搜索出来的EfficientNet,ImageNet Top-1
精度从58提升到了84。但是,随着神经网络结构设计技术,逐渐成熟并趋于收敛,想要通过优化神经网络结构从而打破精度局限非常困难。近年来,随着数据规模和模型规模的不断增大,模型精度也得到了进一步提升,研究实验表明,模型和数据规模的增大确实能突破现有精度的一个局限。
以谷歌2021年发布的视觉迁移模型Big
Transfer,BiT为例。扩大数据规模也能带来精度提升,例如使用ILSVRC-2012(128 万张图片,1000
个类别)和JFT-300M(3亿张图片,18291个类别)两个数据集来训练ResNet50,精度分别是77%和79%。另外使用
JFT-300M训练ResNet152x4,精度可以上升到87.5%,相比ILSVRC-2012+ResNet50结构提升了10.5%。
大模型应用场景
既然大模型能突破训练精度的极限,还能够兼容下游任务。那有没有一些具体的应用场景介绍呢?
模型开源
训练一个大模型开销巨大,训练 GPT-3 需要约 3000 万人民币,训练最新的 PaLM
需要近一亿元。公司一般不会将最大模型/源代码直接开源给大众和学界。且公司内部的数据集(大规模语言数据集,图像数据集如
JFT-300M)也不会开源。一些模型会提供 API 借口,部分研究(如 Prompt
相关)可以借助该接口进行。否则只能选择公司开源的或自己训练的小一号的模型进行下游任务的训练和研究。
在此情况下,大模型的开源工作显的弥足珍贵。一方面,早期的大模型会被企业开源,如最近开源的 T5
模型。另一方面,一些企业,实验室和团体也在进行大模型的复现和开源工作,如
GPT-NeoX,
OPT-175B,
Open-CLIP 等工作。这些工作对于学术界和行业发展都起到了正向作用。
各领域大模型
语言大模型
谈论深度学习大模型,一定要从语言模型开始说起。从 18 年的 GPT 和 BERT
带来的惊人效果开始,大公司尝到了大模型的甜头,遂开始了 Scalable
的大模型之路。我们可以从三个方面衡量模型“大”到什么程度了:
- 模型参数:从 18 年 BERT 330M,到 19 年 T5 11B,20 年
GPT-3 175B,21 年 Gopher 280B,模型参数量飞速增长。这只是在 Dense
类型的模型中进行对比,通过使用稀疏计算 MoE 模块,可以获得超大的模型,21 年的 Switch Transformer 就能达到
1.6T 的参数量,GLaM 也有 1.2T 的参数量。
- 数据集大小:从 18 年 BERT 3.3B tokens,到 19 年 XLNet
33B tokens,20 年 GPT-3 680B tokens,数据量以十倍速度增长,但英文数据集大小也差不多止于此。今年 22
年 PaLM 使用了 780B tokens 训练。
- 训练计算量:从 GPT 18k petaFLOPs,到 GPT-3 310M
petaFLOPs,以及今年 PaLM 2.5B petaFLOPs,模型训练是越来越贵,越来越令我等“望尘莫及”了。
语言大模型虽然越做越大,但其架构仍然是 Transformer 加上 Encoder-only (Bert),Decoder-only
(GPT),Encoder-Decoder (T5) 三类之一。笔者做 NLP
的朋友曾与我打趣,称大模型类的文章基本可以用”我们用一系列技巧训练了一个超大模型并屠榜“ (Training xxx with xxx
Parameters with bags of
tricks)。这些文章的创新点更多的在于调参技巧,分布式训练系统的创新,同时也为各类算法在大数据和大参数量下进行了验证。
走马观花了众多语言大模型之后,笔者还有一个疑惑。现如今超大规模的语言模型基本使用了 Decoder 架构,而
Encoder-Decoder 架构往往是通过 MoE 进行扩展,Encoder 架构最大也只有 19 年微软提出的
Megatron-BERT 3.9B。为什么 Encoder 类型,使用 Masked Autoencoder 进行训练不能像
Decoder 一样做的那么大呢?不知道理论上是否有相关的解释。
视觉大模型
不同于语言大模型,视觉大模型在 Scalable 上仍然欠缺特别有效的方法。目前性能好的视觉模型还是得借助监督训练,借助 MoE
目前最大的视觉模型 V-MoE 有 15B 参数,而 Dense 模型最大的 SwinV2-G 只有 3B。两者通过监督学习在
ImageNet 上都能获得 90% 以上的准确度。但大量监督数据难以获得,并不利于大模型所需要的大数据。
解决此问题的方法之一,是通过与语言模型类似的无监督方法。视觉领域流行的对比学习方法训练的最大模型 SEER 10B
性能并没有过于显著。而借助 Transformer Encoder 架构的 MAE 等方法在 ImageNet-1k 上
finetune 后效果不错,但在更大数据集上没有展现 GPT-3 一样的效果涌现。视觉大模型仍然在呼唤一个 Scalable
能力超群的方法。
另一条思路是通过图片–文本对,进行多模态的训练,从而获得大规模的视觉模型。由于需要同时考虑如何处理语言和图片信息,又要考虑何时以何方式融合两者信息,多模态工作层出不穷。下图是智源大模型路线图论文中第
8 节列出的内容,详情可以自行参考。目前笔者看到的最大模型,是阿里 21 年发布的多模态模型 M6,共计 10T 参数量。
对比文本使用 Decoder
架构,文本生成可以同时作为预训练任务和下游任务,在视觉模型中,高质量的图片生成还需要专用的架构。这可能是由于图片的输入输出空间过大,冗余程度高,过分关注图片质量无法学到高层次的语义导致的(此原因有待斟酌)。图片生成的三大主流中,18
年的 BigGAN 达到了 158M 参数量获得了当时最好的性能,DALL-E 以 12B 参数代表了 dVAE 的巅峰,而 flow
类型暂时没有见到特别大的模型。最近,OpenAI 的 DALL-E-2 和 Google 的 Imagen
又让扩散模型(Diffusion Model)火了起来。大规模模型的图片生成使用何种方法最好似乎还暂时没有定论。
推荐大模型
推荐模型与语言模型视觉模型还是不太一样的,其主要参数量是由于输入的特征数量过多,编码层(Embedding)过大导致的,而 Dense
的网络部分参数量实际很小。编码层一般能占到总参数量的 99.99% 以上。这导致推荐大模型主要关注于如何
memory-efficient, compute-efficient
的组织编码层的储存和计算,故推荐大模型投的会议可以是系统的会议。而直接拿 Embedding
层参数量和其它网络进行对比也是不恰当的行为。
与其它模型相比,推荐大模型与企业利润靠的最近,因此也是各大企业研发的重点。每日 PB 级别的数据量要求快速而鲁棒的计算系统。从 19
年阿里 XDL 支持 10B 参数,百度 AIBox 支持 100B 参数,到 21 年 Facebook ZionEX 系统支持
10T 参数,Kuaishou Persia 支持 100T
参数,可见推荐模型输入特征量扩大之快。当然,也有公司选择”闷声发大财“,很少公布自己推荐系统的情形。总而言之,推荐系统大模型无论是模型,还是训练加速方式都是一个比较独立的赛道。
其它大模型
语音大模型:语音识别的准确率已经相当高,技术可谓成熟。目前语音研究主要关注于落地应用。故语音大模型没有那么卷,代表是 Meta 20
年的 wav2vec 2.0 和 21 年的 HuBERT。
对话大模型:开发放域对话模型一般使用类 GPT 的 Decoder
架构,基本是随着语言大模型参数量提高而水涨船高。目前最大的对话系统是 Google 于 1 月发布的
LaMDA,甚至有谷歌员工因认为其具有人格而惨遭”带薪休假“。不过,当 AI
模型能够模拟人格通过图灵测试时,我们是否需要提出新的检测方法来检测机器是具有人类智能而无人格的呢?
代码生成大模型:Deepmind 21,22 年发布的 Codex 和 AlphaCode 分别训练了 12B 和 41B
的代码生成模型。利用自然语言模型中 Decoder 结构和 Github
上爬下来的代码,代码生成大模型就能和程序员竞争岗位了。笔者一开始对这说法还嗤之以鼻,直到亲自在 vscode 插件中安装了
copilot 代码补全插件,才意识到代码生成大模型并不是 toy
级别的,而是能直接辅助编程的生产力工具了(建议大家去体验一下,真的很强)。
此外,登上 Nature 的蛋白质结构预测的 AlphaFold2 21B,最近的强化学习大模型 Gato 1.2B
等也是令人眼前一亮的重要大模型,笔者不再赘述。
------------------------------------------------------------------------------------------------------
如何直观感受深度学习模型参数量大小?
ChatGPT这一战,科技巨头将重新洗牌