罗锦钊,孙玉龙,钱增志,周 鲁,王金桥*
(1.中国科学院自动化研究所,北京 100190;2.中铁建设集团有限公司,北京 100040;3.北京工业大学 城市建设学部,北京 100124;4.中国铁建建筑工业化工程实验室,北京 100041)
人工智能的迅速发展为人类社会带来了巨大的变革。经过多年的发展,人工智能已经进入了大规模产业应用阶段,在金融、安防和医疗等多个领域实现应用。从模型发展来看,人工智能经历了机器学习模型、深度学习模型、预训练模型和大规模预训练模型4个阶段。
在人工智能研究的早期阶段,传统的机器学习模型依赖于手工制作特征和统计方法。2014年以来,深度学习模型如卷积神经网络(CNN)[1]、循环神经网络(RNN)[2]、图神经网络(GNN)[3]等被广泛应用于各种人工智能任务。深度学习模型需要大量标记数据进行训练才能达到良好性能,然而手工标记数据耗时耗力,并且特定任务领域的数据往往比较稀缺,限制了深度学习模型的应用。此外,在有限的数据量下,当参数量增加时,模型容易出现过拟合问题,难以泛化到不同的任务领域。
为了减少数据集构建的工作量,提升模型的领域迁移能力,研究者提出使用基于大规模数据集训练的模型来处理不同的任务。预训练模型(Pretrained Model,PM)提供了一种基于预训练和微调的两阶段解决方案:在预训练阶段,模型从大规模无监督数据中学习领域知识;在微调阶段,只需要少量的标注数据,就可以将预训练阶段学到的领域知识转移到特定任务中,无需从头开始训练模型,也不需要耗费大量的时间和精力进行数据标注工作,从而提高模型的泛化能力。
预训练模型首先应用于计算机视觉(Computer Vision,CV)领域。大规模图像数据集,如ImageNet[4]的出现为图像预训练模型提供了数据基础。通过预训练,模型能够学习到大量的视觉知识,只需要在少量的任务相关数据集上进行微调,即可在图像分类、目标检测和场景分割等下游任务中取得良好表现。随着预训练模型在CV领域取得成功,类似的研究也在自然语言处理(Natural Language Processing,NLP)领域进行。早期的深度语言模型采用Word2Vec[5]等浅层网络,然而浅层网络无法捕获单词和句子中的上下文信息。基于RNN的模型能够结合上下文信息,然而随着模型层数加深,容易出现梯度消失和梯度爆炸问题。Transformer的出现使得在NLP领域构建深度模型变得可行。此后,预训练模型在NLP领域取得了一系列突破,在多个下游任务上取得了先进性能,超越了传统的深度学习模型。
人工智能技术的三大要素包括数据、算法以及算力,这三者的有机结合共同构建了模型。近年来,传统的“特定任务特定模型”的构建模式逐渐被“一个大规模预训练模型适用于多个下游任务”的模式取代。在这种新模式中,大规模预训练模型也被简称为大模型。研究人员设计先进的算法,并借助海量算力和大规模计算系统的支持,为不同需求的用户训练大模型,以服务于各类人工智能应用。
最近,人工智能生成内容(AI Generated Content,AIGC)引起了广泛关注。AIGC是指基于人工智能模型,通过大量数据学习和模型训练,根据输入的指令,生成文字、图像和音频等相关内容的技术。AIGC技术的广泛应用得益于大模型的快速发展。2018年,谷歌提出BERT[6],模型参数量达到3亿;2019年2月,OpenAI推出15亿参数量的GPT-2[7];2020年6月,OpenAI继续推出1 750亿参数量的GPT-3[8]。GPT-3在多个下游NLP任务上表现良好,尤其是在生成任务方面表现突出。 GPT-3促进了大规模预训练模型的研究,模型的参数规模从数十亿迅速增长到千亿,并且仍然保持快速上升的趋势。通过不断扩大模型参数,研究人员正在尝试探索其性能提升的极限。
本文概述了大模型的发展历程以及代表性的大模型算法,介绍了大模型的基础架构及其核心原理,分析了大模型的特点,讨论了大模型的局限性以及未来发展方向。
本节将分别简述语言模型和视觉模型的发展,并介绍具有代表性的大型语言模型和大型视觉模型。从模型发展历程来看,大模型的发展先后经历了机器学习模型、深度学习模型、预训练模型和大规模预训练模型4个阶段。目前,大规模预训练模型的参数量已经突破了万亿级。
语言模型(Language Model,LM)是完成NLP领域各种下游任务的基础。早期的语言模型通过统计方法预测词的概率,对于一个长度为N的词序列s,其概率可以表示为:
P(s)=P(w1)P(w2|w1)…P(wN|w1w2…wN-1),
(1)
式中:P(wi)为第i个词出现的概率,P(s)为在给定前i-1个词的情况下第i个词出现的概率。当词序列较长时,式(1)的计算量较大,模型难以学习,因此研究者采用N元模型对上述公式进行近似计算:
P(wt|w1w2…wt-1)≈P(wt|wt-k…wt-1)。
(2)
N元模型在估算条件概率时,只需要对当前词的前N-1个词进行计算,然而,N元模型缺乏对句子的长期依赖建模能力,并且随着N增大,参数空间呈指数增长,限制了模型在大语料库上的建模能力。
为了解决这个问题,研究者提出了神经网络模型。2003年,Bengio等[9]提出了前馈神经网络(FFNN)来学习单词的分布式特征表示,通过将单词投影为低维向量,减少了模型的计算复杂度。然而,FFNN只能处理固定长度的单词序列。随后,Mikolov等[10]提出了RNN,可以处理变长的词序列。然而RNN模型在训练过程中容易出现梯度爆炸和梯度消失问题。Sundermeyer等[11]提出了长短期记忆RNN模型(LSTM-RNN),它能够学习到单词序列的长期依赖关系,并且能够有效地缓解梯度消失和梯度爆炸问题。
尽管神经网络模型在NLP领域取得了一定的成功,但与CV领域相比,性能提升相对较小。主要原因在于大多数NLP任务的监督数据集规模较小。由于神经网络模型通常具有较深的网络结构,因此在小数据集上容易发生过拟合,并且泛化性能较差,难以在各种下游任务中应用。
得益于大规模图像数据集ImageNet的发展,预训练技术在CV领域得到广泛应用,缓解了深度视觉模型在下游任务上的迁移问题。为了解决语言模型过拟合和泛化性差的问题,研究者将预训练技术引入到NLP领域。首先在大规模文本语料库上进行模型预训练,然后针对不同的下游任务在较小的数据集上进一步微调,经过预训练的模型性能远远优于随机初始化的模型。Word2Vec[5]首先在不同的NLP任务中验证了预训练技术的有效性。Dai等[12]提出了利用LSTM初始化语言模型的方法,提升了模型在多个文本分类任务中的训练速度和泛化能力。Ramachandran等[13]提出了无监督预训练的Seq2Seq模型,使用预训练权重初始化编码器和解码器,然后在下游数据进行微调,从而显著改善模型的泛化性能。
然而,上述模型学习到的词嵌入与上下文无关,因此在迁移到下游任务时仍需要对模型进行重新训练和调整。为了解决这个问题,研究者开始在句子级别以上的层次进行预训练。Sarzynska-wawer等[14]提出了嵌入语言模型(Embeddings from Language Models,ELMo),采用正向和反向的双层LSTM编码器结构,学习词的上下文语义表示。ELMo在多种NLP下游任务上带来了巨大的改进。然而,ELMo通常被用作特征提取器,生成上下文词嵌入向量,并将其输入到下游主模型中,而模型的其他部分仍需从头开始训练。
近年来,基于Transformer架构的预训练模型(PTM)出现,并能够学习到通用的语言表示。通过在大规模语料库上进行预训练,模型初始化得到了改善,避免了从头开始训练模型,加快了模型在目标任务上的收敛速度,并能更好地泛化到各种下游任务,从而避免了在小数据集上的过拟合问题。随着计算机算力的提升、更深层模型的出现以及训练技巧的增强,PTM架构的深度和参数量也在不断增加。
语言大模型(LLM)是指参数量在十亿及以上的大型预训练语言模型。在大规模文本语料数据库和自监督预训练技术的加持下[15],LLM显示了强大的通用语言表示能力,并且在解决复杂任务时展现出卓越的性能。LLM的快速发展给人工智能领域的研究带来了革命性的变化,吸引了越来越多研究者的关注。从图1可以看出,GPT-1[16]发布后,与LLM相关的arXiv论文急剧增加。
图1 arXiv论文累计数量趋势Fig.1 The trends of cumulative numbers of arXiv papers
2018年,谷歌提出了大规模预训练语言模型BERT[6],采用自编码(Autoencoding)方式进行预训练。BERT首先通过自监督预训练学习文本表示,然后基于掩码语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)学习单词和句子级的语义表示。BERT只需要针对特定的下游任务对输出层进行微调,即可在多个NLP任务中取得最先进水平,模型参数量首次超过3亿。谷歌在BERT基础上继续进行优化,使用更多的训练数据和训练资源,提出动态掩码调整策略,得到了精度更高的RoBERTa模型[17],在多个下游任务上达到最先进水平。
2018年,OpenAI提出了生成式预训练模型GPT-1[16],GPT-1基于自回归模型进行预训练。不同于自编码模型通过掩码-重建方式预测单词的位置,自回归模型假定一个词在特定位置的概率分布是由之前所有词的分布决定的。因此,GPT的注意力是单向的,无法利用下文的信息。GPT-1采用无监督预训练和有监督微调的混合方法,对于不同任务采用不同的输出层,只需简单的微调便能取得非常好的效果。BERT和GPT-1的成功引起了语言大模型的研究热潮,由图2可以看出,GPT-1发布后,语言大模型的参数规模短时间内快速增长。2019年,OpenAI继续发布了GPT-2[7]。GPT-2采用与GPT-1类似的架构,参数规模增加到15亿,基于大型网页数据集WebText进行预训练。研究者认为,任何一个有监督NLP任务,都可以看成世界文本子集上的单词预测问题,只要预训练语言模型足够大,理论上就能解决任何NLP任务[18]。GPT-2通过无监督语言建模的形式进行多任务学习,采用语言文本作为格式化输入、输出和任务信息的统一表示,将解决任务的过程看作一个单词预测问题。GPT-2通过扩展模型的容量和数据多样性达到了良好性能,但由于模型尺寸相对较小,与最先进的有监督微调方法相比,总体性能较差。2020年,OpenAI发布了GPT-3[8]模型。GPT-3基于GPT-2扩展模型架构,参数量达到了1 750亿,实现了模型参数量的飞跃提升。GPT-3引入了上下文学习的概念,指导模型以自然语言文本的形式理解任务。基于上下文学习,GPT-3的预训练目标和输出收敛到相同的语言建模范式:预训练根据上下文预测文本序列,下游任务通过上下文学习预测任务解决方案,然后将其格式化,并输出文本序列。GPT-3在多个NLP任务中表现出了非常出色的性能,在需要推理或领域适应能力的任务上也表现了出色的能力。以GPT-3模型为基础的人工智能对话系统ChatGPT在发布后吸引了社会对人工智能技术的广泛关注。
由于GPT-3的强大性能,OpenAI将其作为基础模型开发更强的LLM。原始GPT-3模型的主要不足之一是缺少复杂推理能力,例如解决数学问题和生成代码。为了解决这个问题,OpenAI推出了Codex[19],基于大量GitHub代码库对GPT-3进行微调。Codex可以解决复杂的编程问题,解决数学问题的能力也得到极大提升[20]。在此基础上,OpenAI提出了GPT-3.5[21]模型,通过对比学习文本和代码嵌入,模型的复杂推理能力得到显著提升。InstructGPT[22]提出三阶段人类反馈强化学习(Reinforcement Learning from Human Feedback,RLHF)算法,通过强化学习引入人类监督以学习人类偏好,提高模型在NLP任务上的能力。GPT-3的训练语料大多来自于网络,可能包含大量错误的、恶意的、带有攻击性的“有毒”文本。RLHF算法能够有效缓解LLM产生危害内容的问题,使模型输出更安全、更有用、更符合人类想法的结果,实现LLM的安全部署。
图2 语言大模型规模变化趋势Fig.2 The trends of the LLM scale changes
2020年,谷歌发布了T5模型[23],T5提出将NLP任务转换成Text-to-Text形式,使用相同的模型、训练和解码方式将所有NLP任务纳入一个统一框架。T5模型参数量达到110亿。在T5基础上,谷歌发布了Flan-T5[24],提出一套多任务的模型微调方案。通过在超大规模的任务上进行微调,Flan-T5表现出极强的泛化性能,在1 800多个NLP任务上都有良好的表现。2021年,清华大学发布GLM模型[25],试图通过一个预训练框架统一NLP领域的三大类任务:自然语言理解、无条件生成和有条件生成。GLM提出了基于自回归空白填充的预训练框架,通过改进空白填充方式,在3类任务上实现了优于BERT、T5和GPT的性能,在不同下游任务上表现出极强的泛化性能。2022年,谷歌发布了PaLM模型[26],参数量突破千亿规模,达到5 400亿。PaLM延续了语言大模型的优化路径,在7 800亿个高质量文本的token上进行高效训练。PaLM在各种下游任务上超越了之前最先进的模型,这表明大模型的参数量提升还没有到达顶点,PaLM还表现出了零样本学习、语言理解和复杂推理的能力,充分展示了大模型的发展潜力。
2023年2月,Meta AI发布了LLaMA模型[27],初始版本包括70亿、130亿、300亿和650亿4种规模。自发布以来,LLaMA引起了研究界和工业界的广泛关注。LLaMA模型在各种开放基准上取得了优异性能,已经成为迄今为止最流行的开源语言大模型。许多研究者通过指令微调或预训练来扩展LLaMA模型,由于相对较低的计算成本,基于LLaMA模型微调成为开发或定制专用模型的主流。Vicuna[28]是其中一种流行的LLaMA变体,使用从ShareGPT收集的用户共享对话数据进行训练,用GPT-4评测可以达到ChatGPT 90%的水平。 2023年7月,Meta开源了性能更强的LLaMA-2[29], LLaMA-2使用更大、质量更好的语料库进行训练,在模型性能、推理效率以及安全性等方面得到全面提升。LLaMA-2在40多个评测集上进行了全方位的评测,在学科、语言、知识、理解和推理五大维度,相比LLaMA-1都有明显提升。然而由于训练语料中的中文数据占比较少,LLaMA-2在中文能力上仍显不足;此外,LLaMA-2采用相对保守的安全对齐方案,导致模型的安全性和模型能力平衡较差。由于LLaMA系列模型的出色性能和可用性,许多多模态模型将其作为基础语言模型,以实现较强的语言理解和生成能力。LLaMA的发布极大地推进了大模型的研究进展。
早期的视觉模型采用手工设计特征和机器学习方法解决图像分类等视觉问题。然而,手工设计特征局限于像素层面,损失了过多图像信息,导致模型的精度较低。与基于手工特征的方法不同,基于CNN的模型具有强大的特征提取能力和相对较低的计算复杂度。
2012年,研究者提出了基于CNN架构的AlexNet[30],其在ImageNet图像识别挑战赛中的识别精度首次超越手工特征方法。在此基础上,VGGNet[31]证明了更深的网络结构能够有效提升模型精度。ResNet[32]提出在每个模块中添加残差连接,以解决深层模型的优化问题,同时引入了瓶颈块来减少参数数量。简单的实现和良好的性能使ResNet仍然是当今最常用的架构。此外,研究者探索了CNN模型的轻量化,MobileNets[33]提出了深度可分离卷积、反向残差块和神经架构搜索(NAS),以实现更好的精度-复杂度权衡。
随着Transformer架构在NLP领域大获成功,研究者开始探索将其应用到CV领域。视觉Transformer(Vision Transformer,ViT)[34]提出将图像分成一系列不重叠的图像块,然后通过线性变换将其投影为图像块嵌入编码,并添加位置编码标记图像块的位置。输入嵌入向量中添加了图像类别嵌入向量,三者结合共同作为ViT的输入,然后通过自注意力机制捕获图像之间的远程依赖性。ViT巧妙地将图片构造成patch序列,启发了研究者在CV领域正确使用Transformer的方式。实验表明,在大型数据集上预训练后,ViT能够实现较好的性能。
经过精心设计的深度视觉模型能够处理各种下游视觉任务,在自动驾驶、智能监控和安防等领域有重要应用。然而,随着模型规模的不断扩大,针对特定任务进行数据收集和标注需要耗费大量时间和成本,模型训练需要消耗大量训练资源。为了解决这个问题,研究者引入预训练技术来学习通用的视觉表示,以减少训练资源的消耗和训练数据的收集成本。随着大规模图像数据集(如ImageNet)的出现,研究者开始探索CV领域的预训练模型。预训练视觉模型在海量图像数据集上进行预训练,得到通用视觉特征表示,然后基于较小的下游标注数据集对模型进行精细调整。在微调阶段,模型只需要消耗较少的训练资源就能取得比从头开始训练更好的性能。
主流的预训练视觉模型包括ResNet[32]、ViT[34]、EfficientNet[35]和Swin Transformer[36]等。基于大规模视觉数据库,模型能够更有效地学习通用视觉特征表示,理解下游任务中的图像,从而提高模型在下游任务上的泛化性[37]。然而,预训练数据集和下游任务的特定数据集之间存在领域差异,导致模型的迁移能力仍有不足。
ViT首次将Transformer架构应用于CV领域,验证了Transformer作为统一视觉模型架构的可行性。在NLP领域,基于掩码语言模型(Masked Language Model)的BERT模型引领了自监督预训练的学习范式。受此启发,2022年,He等[38]提出了视觉掩码自编码(Masked Autoencoders,MAE)模型,MAE使用编码器-解码器(encoder-decoder)架构,在encoder部分,首先将图片构建成patch序列,学习图片的细粒度特征;在decoder部分,基于原始的图片token和掩码token对掩码图片进行重建。MAE对图像重建进行解耦,能够学习到更加有效的图像特征,基于像素点的重建目标能够避免监督信息的丢失,提高重建的质量。MAE能够在高达75%的掩码率下对图像进行重建,并且在下游的目标检测和语义分割任务等任务上有不俗的表现。基于MAE重建的图像虽然具有与原始图像相似的语义信息,但会出现严重的模糊与失真问题。为了解决这个问题,MIT提出MAGE[39],MAGE使用基于图像语义符图像掩码建模方法,首先使用VQGAN[40]编码器将原始图像转换为离散语义符,然后对其进行随机掩码,之后基于encoder-decoder结构对掩码进行重构,最后通过VQGAN解码器将重构后的语义符还原为原始图像。MAGE重建出的图像能够保持与原始图像一致的语义信息,还能保证生成图像的多样性与真实性,在多个图像生成与图像识别任务上都达到或超过了最先进水平,实现了图像生成和图像识别的统一框架。2022年,南京大学提出视频掩码自编码器(VideoMAE)[41],将预训练大模型扩展到视频领域,用于解决动作识别和动作检测等视频任务。VideoMAE采用带有时序间隔的采样策略来进行更加高效的视频自监督预训练,在输入到编码器中之前,对采样得到的视频片段采用时空联合的形式进行像素块嵌入,在自监督预训练的过程中采用管道式掩码策略,以解决由视频数据中的时序冗余性和时序相关性导致的“信息泄漏”问题。VideoMAE在多个下游任务上表现出良好的泛化能力和迁移能力,推动了后续基于Transformer的视频理解大模型发展。随后,南京大学团队提出了VideoMAE V2[42],研究VideoMAE的可扩展性,探索视频大模型在多种视频下游任务上的性能极限。VideoMAE V2的模型参数量达到了十亿级别,预训练数据增加到百万量级。VideoMAE V2在动作识别、时空动作检测、时序动作检测等多种下游任务上取得了先进的性能。
图像分割是CV的一项核心任务,需要识别图像像素所属对象。2023年,Meta AI提出了通用图像分割模型SAM[43],SAM基于超过10亿个掩模的多样化、高质量大型分割数据集——Segment Anything 1-Billion mask dataset(SA-1B)进行预训练,利用提示工程(Prompt Engineering)处理下游分割任务[44],这使其能够泛化到从未见过的新对象和图像类型,且不需要对下游任务进行微调。SAM分为三部分:图像编码器、提示编码器和掩模解码器,这种结构可以有效地降低计算成本,增强模型灵活性和鲁棒性,实现了具有泛化性和通用性的分割模型。基于大规模预训练和提示工程,SAM学习到了分割对象的一般表示,可以分割任何图像或任何视频中的任何对象。SAM的通用性使其可以覆盖广泛的对象用例,甚至在新图像“域”(如水下照片或显微镜细胞)也能较好地完成分割任务。SAM-Track[45]提出了一种视频分割框架,该框架结合了Grounding-DINO、DeAOT和SAM,以实现跨多种模式的交互式和自动化对象跟踪和分割。该框架在视频第一帧中结合了点击提示、框提示和文本提示等形式的交互式提示来指导SAM的分割过程。随后,在接下来的框架中使用文本提示来进一步细化结果。这种多功能框架可应用于广泛的领域,包括无人机技术、自动驾驶、医学成像、增强现实和生物分析等。
Painter[46]将自然语言中的上下文学习能力迁移到视觉任务中,可以根据输入提示自动切换任务功能,在语义分割、深度估计和姿态估计等任务中均取得了良好的泛化性能。
在国内工业界,大模型发展也十分迅速。2021年4月华为发布了盘古大模型,参数量超过30亿,是当时最大的视觉预训练模型,盘古大模型在ImageNet 1%、10%数据集上的小样本分类精度达到了业界最高水平。百度提出了170亿参数的视觉多任务模型UFO[47],在人脸、人体、车辆、商品和食物细粒度分类等多个CV任务上取得了先进水平。UFO提出了针对视觉多任务的训练方案,解决大模型参数量大、推理能力差的问题。
视觉大模型已成为人工智能领域的一个发展趋势,然而,目前其性能仍然受到特定视觉领域知识的限制,缺少类似于ChatGPT这样一个现象级的模型应用。为了解决这一问题,未来的研究方向应当侧重于整合多样化的数据集,促进不同领域的专有模型融合,扩展模型知识的广度,以充分发挥视觉大模型的潜力。
视觉-语言大模型是指利用视觉和语言数据之间的跨模态交互,学习视觉的一般特征,然后将其转移到下游的分类、检索、目标检测、视频理解、视觉问答、图像描述和图像生成等视觉任务的大模型。在Transformer架构[48]中,最小的特征单元是嵌入向量,这种特性使其非常适合处理多模态数据,因为嵌入层可以将任何模态的输入转换为嵌入向量。
2021年,OpenAI提出视觉-语言大模型CLIP[49],CLIP收集了来自互联网的4亿个图像文本对的海量数据,利用图像和文本之间的关联性,基于对比学习进行弱监督预训练。基于人工设计的提示(prompt),CLIP在下游任务上可以实现零样本预测,并且实现了最先进的少样本预测性能。CLIP展示了大模型学习通用视觉-文本表示的能力,验证了文本-图像结合的大规模弱监督预训练的有效性。在此基础上,许多大型视觉-语言模型,例如Clip4clip[50]、ActionCLIP[51]等得到进一步发展,为通用视觉-文本表示的发展提供了新的见解。
2022年,Salesforce提出BLIP[52],BLIP通过联合训练视觉和语言模型来提升多模态任务的性能。BLIP引入了的多模态混合编码器-解码器结构(Multimodal Mixture of Encoder-Decoder,MED),通过3个损失函数进行多任务联合预训练。BLIP在图像-文本检索、图像标题、视觉问答、视觉推理和视觉对话等多个下游任务上取得了良好的性能。传统的多模态视觉任务(如VQA)中包含文字和图像理解内容,如何将它们结合起来,是一个重要问题。Flamingo[53]提出“以视觉为prompt,输出文本预测”的框架,将多模态任务转化为文本预测任务。Flamingo通过冻结预训练视觉模型和预训练语言模型的参数充分保留单模态的大模型知识,可以处理任意交错的视觉和文本数据序列,无缝使用图像或视频作为输入。Flamingo在多个下游任务上表现出极强的少样本学习能力。BLIP-2[54]提出了更简洁的预训练方法,利用现有的单模态视觉和文本预训练模型,以减少计算成本,避免灾难性遗忘问题。BLIP和BLIP-2是视觉语言-预训练领域取得的重要进展,为多模态任务的研究提供了新的思路和方法。
2023年3月,GPT-4[55]正式发布,它将文本输入扩展到多模态输入。GPT-4解决复杂任务的能力比 GPT-3.5更强,在许多评估任务上表现出较大的性能提升。由于GPT-4未开源,MiniGPT-4[56]基于BLIP-2对GPT-4进行复现。MiniGPT-4采用BLIP-2预训练好的Q-Former作为视觉编码器,Vicuna[28]作为语言编码器,然后通过一个线性层将视觉特征映射到Vicuna的特征空间,MiniGPT-4首先采用图像文本对数据集进行预训练,然后构建了一个高质量的图像文本数据集来进行微调。相较于BLIP-2,MiniGPT-4提升的关键在于采用了更好的LLM,同时采用了高质量数据集进行微调。但MiniGPT-4也存在一定的局限性,比如无法从图像中获取细粒度的信息以及无法识别位置信息。PaLM-E[57]提出具身多模态语言模型,使得模型具备具身推理能力。视觉指令调整(Visual Instruction Tuning)[58]构建了多模态的图文指令数据库,并提升了模型在新任务中的零样本迁移能力。
良好的视觉特征表示对于解决下游视觉任务(图像检索、图像分类、视频理解)至关重要,然而,学习视觉特征表示依然严重依赖于大规模视觉监督数据集。为了解决这个问题,谷歌提出了ALIGN模型[59],使用超过10亿图像文本对的噪声数据集,基于对比学习损失,来学习对齐图像文本对的视觉-语言表示。ALIGN证明了大规模的语料库可以掩盖数据内部存在的噪声,只使用简单的学习方式,模型也能学习到良好的特征表示。
视觉-语言大模型研究方兴未艾,还存在许多挑战和潜在的研究方向。Transformer的出现使得图像和文字可以通过相同的方式进行学习,若采用统一的Transformer架构同时处理图像和文字输入可以有效提升预训练的效率;目前大多数视觉-语言模型仅使用单一语言进行预训练,采用多种语言文本进行预训练可以提高模型在不同语言环境下的泛化性;此外,视觉语言模型的高效轻量化也是值得探索的方向。
2017年,谷歌提出了Transformer架构[48],由于其出色的模型容量和并行能力,Transformer已经成为开发各种大模型的标准骨干模型,基于Transformer架构可以将大模型扩展到数百亿甚至数千亿参数规模。
自注意力(Self Attention,SA)是Transformer中的基本模块。SA通过3个可学习的线性映射矩阵WQ,WK,WV将输入序列投影为一组维度为C的查询Q、键K和值V,然后通过以下公式计算得到自注意力权重:
(3)
通过对输入序列进行线性变换,SA能够捕捉输入序列的语义特征和远距离的依赖关系。多头自注意力(Multi-head Self-Attention,MSA)是自注意力的扩展,由n个自注意力头构成,通过并行实现注意力操作,经过线性投影层后将所有自注意力头的输出进行拼接:
MSA(Q,K,V)=Concat(SA1,SA2,…,SAn)*WO,
(4)
式中:WO表示线性变换矩阵,SAn表示第n个自注意力头的输出。
Transformer的模型架构如图3所示,由多个编码器和解码器叠加构成,每个编码器由2个基本模块组成,即MSA模块和前馈全连接(Feed Forward Network,FFN)模块。MSA模块利用自注意力机制学习输入序列内部的相关关系,FFN模块包含激活函数和2个线性层,MSA模块和FFN模块均使用残差连接和层归一化(Layer Normalization,LN)结构。给定输入序列x0,第k个编码器的输出如下:
(5)
式中:xpos表示位置嵌入,xk表示第k个编码器的输出。解码器与编码器的结构稍有不同,由2个多头自注意力模块和一个前馈全连接模块组成,其中一个MSA模块增加了单向注意力掩码,使得输入嵌入向量只能关注过去的嵌入向量和它本身,确保预测结果只依赖于已生成的输出词元,然后,掩码多头注意力模块的输出和编码器的输出通过第二个MSA模块进行处理。
图3 Transformer架构示意Fig.3 Schematic diagram of Transformer architecture
视觉Transformer的结构与原始的Transformer类似,输入由一维语言嵌入序列改为二维图像块的向量,然后使用线性层将向量投影为图像块嵌入编码,添加位置编码标记图像块的位置。输入嵌入向量中还添加了类别嵌入向量,三者结合共同作为视觉Transformer的输入。
Transformer架构有效解决了长序列输入的长时依赖问题,模型的并行性提高了训练效率,有效缓解了模型过大导致的梯度消失和梯度爆炸问题,在NLP和CV领域的多个任务中取得了良好效果,为大模型的快速发展奠定了基础。
目前,大模型主要基于深层的Transformer架构进行构建,采用和较小的预训练模型类似的预训练目标。然而,大模型表现出较小的预训练模型不具有的特点。本节将讨论大模型的特点并探究背后的机理。
广泛的研究表明,扩展训练数据大小或模型大小可以很大程度上提高大模型的能力[7-8,60]。语言大模型可以更好地根据上下文理解自然语言并生成高质量的文本。视觉大模型可以学习到通用的视觉表示并泛化到新的图像域。大模型这一能力提升可以部分通过扩展定律来描述,即模型性能大致随着模型大小、数据大小和总运算量的增加而提高[60]。GPT-3[8]和PaLM[26]通过将模型大小分别增加到 1 750亿和5 400亿来探索扩展定理的极限。然而,现实中的计算资源通常是有限的,研究者开始探索模型大小、数据大小和模型计算量之间的最佳配置关系[61-62]。Hoffmann等[61]提出了Chinchilla缩放定律,即当可用计算资源增加时,模型大小和数据量大小应当等比例增长。此外,预训练数据的质量极大影响大模型的性能,因此在扩展预训练数据库时,数据收集和清洗策略相当重要。对大模型扩展定理的研究为大模型训练过程提供了较为直观的理解,使得大模型在训练过程中的表现更加有迹可循。
大模型的涌现能力是指在小模型中不存在但在大模型中出现的能力。即当模型规模超过某个阈值后才能被观测到的能力。这是区分大模型与以前的预训练模型最显著的特征之一。模型规模达到一定水平时,模型性能显著提高,类似于物理学中的相变现象,是一种量变引起质变的过程。以下将简单介绍代表性的LLM涌现能力。
上下文学习。上下文学习能力首先出现在GPT-3模型中。通过输入自然语言指令,GPT-3可以以完成输入文本的单词序列预测的方式生成期望的输出,无需额外的训练。
逐步推理。小语言模型通常难以解决涉及多个推理步骤的复杂任务,例如数学问题和代码生成。通过采用“思维链”推理策略[15],LLM可以利用包含中间推理步骤的提示机制解决这类任务,这种能力可能来自于对代码的训练。
合适的任务指令或上下文学习策略可以激发大模型的能力。例如,通过恰当的自然语言描述任务,对LLM进行指令微调,可以提高模型在新任务上的泛化能力;思维链提示有助于模型解决复杂的逻辑推理和数学运算任务。大模型表现出的涌现能力是其解决复杂任务的关键,也是实现通用统一模型的基础。
大模型的快速发展为人工智能的研究和应用带来了新的机遇和方向。然而,大模型研究也面临一些潜在的问题和挑战。本节将介绍大模型所面临的挑战性问题以及未来的发展方向。
大模型采用深度神经网络架构,但其可解释性较差,难以对模型的训练过程和推理结果进行有效的跟踪和解释,在实际应用中面临安全问题,在可靠性要求较高的领域(如自动驾驶、AI医疗)存在巨大风险。此外,研究者对大模型的涌现能力产生机制仍不清楚。因此,关于大模型原理和能力的理论研究是一个重要方向,对大模型的实际应用和下一代大模型的发展至关重要。
随着大模型参数规模的不断增大,由模型规模带来的性能提升出现边际递减效应。此外,更大的模型导致了更高的训练成本,包括算力、数据和更加复杂的训练过程。因此,开发更系统、经济的预训练框架以优化大模型训练过程变得尤为重要。大模型训练过程需要考虑模型有效性、效率优化和训练稳定性等因素。此外,还需要更灵活的硬件支持和资源调度机制,以便更好地组织和利用计算集群中的资源。
大模型训练所需的大数据涉及隐私、伦理问题。例如,训练数据被篡改、破坏、泄露或非法获取,将会对公共安全和个人隐私造成严重损害。此外,训练数据中可能存在粗俗、暴力、色情等内容,导致大模型存在偏见问题。因此,大模型的安全和伦理问题也是一个相当重要的研究方向。
大模型的发展为探索AI应用铺平了道路,揭示了许多前景并迎来了前所未有的机遇。大模型有可能引领未来几年的技术变革,带来新的产业格局。如图4所示,大模型在文本、代码和图像等领域已经得到广泛应用,开始取代文字编辑、记录等简单重复的工作岗位,辅助开发者编写程序,进行AI艺术创作等。在电子信息、生物医学等领域,大模型可以加快研究进程;大模型与传统产业的融合发展可以帮助企业提升智能化水平,推进实体经济智能化发展。
此外,大模型发展还将为具身智能带来变革。具身智能是有身体并支持物理交互的智能体,它能够像人一样与真实物理世界进行互动,并具备自主决策、规划和主动感知等能力。大模型可将多模态知识迁移至具身推理中,使机器人执行特定指令,真正具备具身智能。
图4 大模型的应用前景Fig.4 Application prospect of large model
大模型已成为人工智能领域的一个重要发展方向。从其发展历程来看,先后经历了机器学习模型、深度学习模型、预训练模型和大规模预训练模型 4个阶段。在NLP和CV领域,大模型的发展不断刷新相关任务的性能,随着大模型参数量不断突破新高,研究者发现了大模型区别于普通预训练模型的新能力,称之为大模型的涌现能力,这是大模型能够胜任复杂任务的关键。此外,大模型的发展也面临许多挑战性问题,例如模型可解释性差、训练成本高、存在隐私和伦理风险等。未来的大模型参数规模发展可能进入平台期,研究者将更加关注大模型开发架构的优化以及大模型产业落地的相关研究,以充分发挥大模型的能力。