主持人:
杨 磊 天津市第五中学
嘉 宾:
邱元阳 河南省安阳县职业中专
刘宗凡 广东省四会市四会中学
金 琦 浙江师范大学附属中学
倪俊杰 浙江省桐乡市凤鸣高中
应用沙龙
编者按:大型神经网络模型具备庞大的参数数量和计算量,被称为大模型,可解决自然语言处理、图像识别和语音识别等各类任务。训练大模型通常需要高性能计算设备和大规模数据集。由于Transformer可以处理大规模文本数据并构建更复杂的语言模型,因此它被广泛应用于大模型中。本期我们将继续介绍Transformer在深度学习领域中的应用。
模型、大模型与超大模型
杨磊:随着技术的不断发展和迭代,越来越多的大模型和超大模型被应用于各种领域,并取得了显著的成果。那么,如何界定模型、大模型和超大模型?
刘宗凡:模型是机器学习的核心概念,是从数据中映射出规律和模式的函数,它的本质是对现实世界中数据和规律的描述和抽象。机器学习是一种人工智能技术,其目的是通过计算机算法从现有数据中学习和发现应用模式,以便预测或做出决策。在机器学习中,模型是一个重要的概念,因为其扮演了学习和预测的核心角色。简而言之,模型就是从给定数据的输入中预测出对应输出的函数,其核心任务是利用给定的数据集训练模型并调节其参数,使其能够更好地拟合数据进行预测。模型的本质是对真实世界中的数据和规律进行抽象和描述,对现实世界的复杂性进行简化。例如,对于一个简单的二分类问题,模型可以是一个样本点的一堆数学表达式的组合,但这些表达式背后的数学原理、公式和变量,却是对整个问题的描述和抽象。因此,模型在机器学习中是无可替代的,其得出的结果决定了训练模型的准确性和泛化能力。在机器学习中,模型可以是线性、非线性、简单或复杂的。其中,最常用的模型是线性模型和随机森林模型。线性模型是最简单的模型之一,它利用线性方程对数据进行建模,如单一变量、多元线性回归等。线性模型受限于其简洁性,需要根据实际情况加以改进。
大规模深度神经网络模型已成为机器学习和人工智能领域的一个热门话题,尤其是在处理具有挑战性的问题方面,这类模型可以通过在大规模的数据集中进行训练和调整来达到极高的精度。在这些模型中,大模型和超大模型是最常见的两种,虽然两者在参数数量和规模上存在一定的差异,但它们的作用和意义都是一样的。
大模型通常指的是那些具有大量参数,需要大规模数据集和计算资源以进行训练和调整的深度神经网络模型。这样的网络可以被用于各种任务,如语音识别、图像识别、自然语言翻译等。在这些任务中,网络需要学习从输入中抽取出有用的特征,并输出相应的结果。例如,输入一张图片并输出它所代表的物体类别。对于这种模型,训练所需的计算资源是一个重要的限制因素。因为计算资源越多,网络就可以拥有更多的层和参数,而这些层和参数是用来捕捉输入数据中更多的信息。由于训练速度的限制,大型网络的训练可能需要花费数天、数周乃至数月的时间。此外,大规模数据集也需要足够多的数据以减少过度拟合的情况,如ImageNet数据集就包括了超过一千万张图片以及超过一千个物体类别。虽然大型神经网络的计算和训练需求巨大,但这样的网络结构已经成为许多领域中最先进的解决方案,在计算机视觉和语音处理领域也表现出了很好的应用效果。这意味着,在未来,大模型仍然会继续发挥重要的作用,并且可能会变得更加精细和复杂。
随着大型网络在深度学习中的成功,研究者们开始考虑是否可以创建更大的神经网络模型以解决更加困难的问题。在这样的情况下,超大模型便应运而生。超大模型拥有数万亿到数千万亿的参数,是目前计算机科学领域中最大的网络模型之一。这种超大的神经网络模型需要大量的计算资源和训练数据。例如,OpenAI在训练超大模型GPT-3时使用了3200个V100 GPU和1750亿个参数。虽然这些超大模型的训练成本极高,但是对于具有挑战性的任务,如自然语言处理、语音合成和音乐生成等,这些模型通常要比小型的模型能够产生更好的性能。
倪俊杰:超大模型有着广泛的应用前景。例如,在自然语言处理方面,超大模型可以通过学习大量的文本语料库来构建语言模型,在文本生成、文本分类和命名实体识别等任务方面表现出色。在图像识别和计算机视觉领域,通过使用超大模型,可以更好地捕捉图像中的细节和上下文,并减少类似于过度拟合的问题。
超大模型的发展在一定程度上受到计算资源限制。如果没有大量的计算资源,研究者和开发者们就无法训练和优化這些模型。除此之外,超大模型还面临着缺少分类和其他领域的支持数据,因此,研究者需要重新思考如何更好地挖掘这些极值模型的价值。
大模型和超大模型对未来人工智能的发展具有深远的影响。在机器学习、深度学习领域以及解决大型复杂问题的算法研究中,这些模型可以在数据处理和计算能力方面提高模型的表现并产生新的应用。未来,我们可能会看到更加复杂并高效的大型和超大型模型的出现,这些模型将推动人工智能领域的飞速发展。
谷歌的BERT和OpenAI的GPT
杨磊:BERT和GPT都是基于Transformer架构的预训练模型,用于自然语言处理任务。那么从预训练的角度看,它们之间有什么区别呢?
邱元阳:自然语言处理是一项日益重要的任务,需要将人类语言转换为计算机可处理的形式,从而使计算机能够理解和处理文本数据。在这个领域中,预训练模型在最近几年中引起了人们极大的兴趣。其中,使用Transformer架构的预训练模型(如BERT、GPT等)已经成为自然语言处理领域的顶尖解决方案。
BERT(Bidirectional Encoder Representations from Transformers)是一种双向语言模型,由Google在2018年提出。它通过预训练和微调的方式,可以用于文本分类、问答等任务。在预训练阶段,BERT利用大规模无标注数据进行训练,学习到自然语言的语义和语法信息。BERT采用了双向语言模型,即利用上下文信息来预测当前词语,主要方法有两种:Masked Language Model(MLM)和Next Sentence Prediction(NSP)。MLM方法首先会在输入文本序列中随机选择一定比例的词语,并将这些被选中的词语随机替换成一个特殊的标记,称为[MASK]。其次,模型会尝试预测这些被覆盖的[MASK]标记的正确词语。预测的方式是利用模型对整个输入序列的理解实现上下文感知的预测。对于预训练过程中提供的输入文本序列中未被替换的词语,模型则可以从上下文中准确地学习它们的表示。而NSP方法是为了让模型具有理解文本上下文之间关系的能力。具体来说,NSP的预训练任务是从一大堆文本中提供两个句子。在这两个句子之间随机选取一个标志,在输入中把这个标志插入第一个句子和第二个句子之间,然后将文本输入BERT模型中,生成一个表示两个句子连接的向量。预训练任务的目标是让模型学会理解两个句子之间是否有联系,并预测下一个句子是什么。采用这个方法的目的是教会模型理解和处理不同的文本任务(如问答、命名实体识别、情感分析等),因为许多任务都需要模型理解文本上下文之间的关系。通过训练模型推断下一个句子,模型能够在各种自然语言处理任务中更好地理解文本的含义和结构。这两种方法通过语言模型和推断两个方面来预训练模型,使BERT能够理解上下文关系并将其应用于各种自然语言处理任务中。在微调阶段,BERT利用有标注数据进行微调,以适应具体任务的需求,即将已经经过大规模预训练的语言模型微调到特定的自然语言处理任务上。在微调之前,首先需要在大规模的语料库上进行预训练,得到语言模型的参数。在微调时,BERT模型需要通过微调进一步调整模型参数以适应具体的任务,而通常只需要微调较少的参数就可以达到良好的效果。BERT的微调方式可以有效地提高模型在具体任务中的准确率,尤其适用于需要理解上下文信息的任务。
GPT(Generative Pre-training Transformer)是一种单向语言模型,由OpenAI在2018年提出。它主要用于生成文本,如自动写作、对话生成等任务。现在大红大紫的ChatGPT并不是横空出世的变革性产物,它及其近亲GPT-1/2/3在模型本质上没有重大改变。GPT的预训练过程只包括MLM任务,它采用了“预训练—微调”的训练方式。在预训练阶段,GPT利用大规模无标注数据进行训练,学习到自然语言的语义和语法信息。GPT的预训练方法主要是基于单向语言模型,即利用上文信息来预测当前词语。预训练阶段主要是学习文本的表示,使得模型在微调阶段能够更好地适应具体任务的需求。与BERT不同,GPT通过提示词(Prompt)的方式进行微调,通过在一个较大的语言模型上进行迭代训练,根据给定的Prompt生成相应的输出。Prompt是指为生成语言任务提供的一些提示,如前面一小段文本或一些关键词等。GPT将Prompt的输入与训练后的语言模型结合,生成与Prompt相关的输出结果。GPT的提示词方式使得模型在针对特定任务时能够更好地基于一些提示信息生成相应的文本输出,适用于需要生成自然语言文本的任务。
无论是BERT还是GPT,它们都证明了Transformer架构在自然语言处理领域的优秀性能,并且为自然语言处理任务的解决提供了强大的工具。
Transformer在视觉领域的发展
杨磊:众所周知,Transformer已经在自然语言处理领域大放异彩,那么在视觉领域,如图像分类和视频生成等表现如何呢?
金琦:在视觉领域,Transformer模型也被应用于图像分类和视频生成等任务,但是相对于自然语言处理领域,它的表现可能并不那么出色。这主要是因为Transformer模型在自然语言处理领域中的优势在于其能够处理序列数据,而图像和视频数据则是二维和三维的数据结构,与序列数据有很大的区别。目前,已经有一些基于Transformer的视觉模型被提出,如Vision Transformer(ViT)和Swin Transformer等。
ViT最初由Google Brain团队在2020年提出,它是一种基于Transformer的图像分类模型,采用了将图像划分为若干个小块,然后利用Transformer进行编码的方式,实现对整个图像的理解,模型原理如下页图1所示。
使用大规模数据集对ViT进行预训练,然后对小型下游任务进行微调。为此,删除预训练的预测头,添加一个用0初始化的D*K前馈层,其中K是下游任务的类别数。对于高分辨率任务,微调通常很有帮助。ViT能够处理任意长度的序列,但预训练的位置嵌入可能不再适用。因此,根据预训练位置嵌入在原始图像中的位置,对它们进行2D插值操作。需要注意的是,这种分辨率调整和块的抽象只有在手动注入到视觉Transformer的2D结构的归纳偏置的情况下才有效。在中等规模数据集上,这种模型可以产生适中的结果,其精度比ResNets低几个百分点。由于Transformer缺乏CNN固有的归纳偏置,因此,在训练不足的数据集上可能不能很好地泛化。然而,如果在大规模数据集上进行训练,则可以获得出色的结果。在JFT-300M数据集上预训练的ViT在许多图像训练基准上准确率可以达到或超越最先进的结果——ImageNet(88.36%)、CIFAR-10(90.50%)、CIFAR-100(94.55%)以及VTAB的19个任务(77.16%),这在一定程度上挑战了传统卷积神经网络的地位。
邱元阳:随着ViT的提出,越来越多的研究者开始关注基于Transformer的视觉模型。虽然ViT在图像分类领域表现出色,但由于其编码器输入固定为16×16的图像块,因此无法适用于需要更细致视觉细节的密集视觉任务,如目标检测和语义分割。这些任务的图像通常比图像分类数据集中的图像更大,使用较小的图像块将增加自注意力层必须处理的块数,导致注意力机制计算复杂度随着图像块数量的增加而增加。在2021年,微软发布了一款新的视觉Transformer,称之为Swin Transformer。它可用作计算机视觉任务(如图像分类、物体检测和语义分割)的骨干。Swin代表着Shifted windows,为Transformer提供了分层视觉,使用4×4的块大小在高分辨率图像上表现更为优秀,因为ViT的全局注意力方法不适合进行语义分割。因此,我们需要更细致的像素级预测,同时需要考虑注意机制的计算复杂度的改进和优化方法,Swin Transformer采用了分层的策略,将图像分为多个子区域进行编码,从而实现对全局信息的建模,并采用了窗口交换策略,将相邻子区域之间的信息进行交换,从而实现了不同子区域之间的信息交互,具有更好的信息传递能力。Swin Transformer通过从小的patch开始逐渐合并深层Transformer层中的相邻patch来构建分层特征映射。例如,Swin Transformer从不重叠的16(4×4)个本地窗口开始(图2(a)中底部的红色正方形),每个本地窗口都有16(4×4)个图像patch。随着自注意力層在每个本地窗口内计算,它们只处理16个图像patch之间的关系。与此相反,ViT的注意力层适用于整个图像patch(如图2(b))。如果它使用相同的较小的patch尺寸,则注意力层需要处理256个patch。由于ViT是一个图像分类模型,因此使用较大的patch(粗略特征)是可以的。然而,Swin Transformer需要细粗特征。在层次结构的下一级中,Swin Transformer合并相邻patch以形成4(2×2)个本地窗口,同样,自注意力层在每个本地窗口内计算。因此,这些层只处理16个特征patch。换句话说,在任何级别上,每个窗口中的patch数量都是相同的。最终,一个本地窗口覆盖整个图像,并包含16个特征patch。因此,计算复杂度与输入图像大小成线性关系。下面以4×4的patch尺寸处理各种图像大小来说明这一点。合并相邻patch会减小图像大小,同时增加每个patch的感受野,就像ResNet的卷积和最大池层减小特征映射大小,同时增加感受野一样。
与自然语言领域的发展相比较,Transformer在视觉领域的发展还处于起步阶段,但已经展现出了不少有趣的应用,前景十分乐观。随着深度学习技术的不断发展,这种模型将有更广泛的应用,也许未来可以更好地发挥这种模型的潜力。
结语
杨磊:Transformer和大模型技术的不断发展,在给我们带来便利的同时,也增加了我们学习人工智能的难度。因此,我们只有不断地学习、实践和创新,才能更好地掌握这些技术,应对人工智能领域的变化和挑战,发挥潜力和创造力,创造更多的价值。希望本期讨论可以让读者了解Transformer在深度学习领域的应用,以更好地应对大模型时代的机遇和挑战。