1.2 认识大模型

近年来,BERT、GPT-3等大规模预训练模型走进大众的视野。随着大众对ChatGPT(Chat Generative Pre-trained Transformer)的不断了解,大模型逐渐成为人们研究和关注的焦点。

1.2.1 大模型基础

大模型是大规模语言模型(Large-scale Language Model,LLM)的简称。语言模型是一种AI模型,它被训练成可以理解和生成人类语言。确切地说,语言模型是一种用统计方法来预测句子或文档中一系列单词出现的可能性的机器学习模型。因此,语言模型本质上是要模拟人类学习语言的过程。从数学上看,它是一个概率分布模型,目标是评估语言中的任意一个字符串的生成概率。

1.大模型概述

大模型本质上就是大的深度神经网络,它通过学习大量的文本数据,理解和生成人类语言,大模型的特点是层数深、参数量大、训练数据量大。因此,大模型通常能够学习到更细微的模式和规律,具有更强的泛化能力和表达能力。例如,GPT之所以如此特殊,是因为它是首批使用Transformer架构的语言模型之一。Transformer是一种能够很好地理解文本数据中的长距离依赖关系的神经网络架构,使得GPT模型能够生成高度连贯和上下文相关的语言输出。拥有上亿个参数的GPT模型对自然语言处理领域产生了重大影响。

大模型的优点如下。

(1)上下文理解能力强

大模型具有很强的上下文理解能力,能够理解复杂的语义和语境。这使得它们能够产生更准确、更连贯的回答。

(2)语言生成能力强

大模型可以生成更自然、更流利的语言,减少生成输出时的错误。

(3)学习能力强

大模型可以从大量的数据中学习,并利用学到的知识和模式来提供更精准的答案和预测。这使得它们在解决复杂问题和应对新的场景时表现更加出色。

2.大模型预训练过程

大模型主要用于处理和生成类似于人类产出的文本。这些模型可以理解语言结构、语法、上下文和语义联系,因为它们已经在大量的文本数据上进行了训练。大模型一般使用Transformer架构等深度学习方法来发现文本数据中的统计关系和模式。

值得注意的是,大模型常常是在大量文本语料库,如书籍、文章、网页上进行预训练的。预训练是指将大量低成本收集的训练数据放在一起,经过某种方法去学习数据中的共性,然后将其中的共性“移植”到特定任务的模型中,再使用相关特定领域的少量标注数据进行微调。例如,预训练可以教模型预测文本字符串中的下一个单词,捕捉语言用法和语义的复杂性。

因此,预训练可以帮助机器学习模型解决数据稀缺性、先验知识和迁移学习等问题,从而提高模型的性能和可解释性,同时降低训练成本。下面以BERT为例讲解大模型的预训练过程。BERT是一种基于Transformer架构的大模型,它在2018年由谷歌提出,是目前自然语言处理领域最流行和最成功的模型之一。

(1)掩码语言模型

掩码(Mask)语言模型是一种基于神经网络的语言模型,它可以在预训练阶段使用海量的未标注语料库进行训练,然后在有监督的任务中进行微调,如文本分类、序列标注等。掩码语言模型的主要特点是通过对输入序列中的一部分标记进行掩码标记,使得模型在训练过程中能够学习到文本的全局上下文。掩码语言模型的核心思想就是在输入序列中随机选取部分序列,将其替换成特殊的掩码标记。在模型训练过程中,模型需要根据前面的标记来预测被掩码标记的实际内容,这种训练方式能让模型学习到句子的全局表征,进而提升性能。

掩码语言模型的训练过程类似于完形填空,预训练任务直接将输入文本中的部分单词遮住,并通过Transformer架构还原单词,从而避免了双向大语言模型可能导致的信息泄露问题,迫使模型使用被遮住的词的上下文信息进行预测。

例如有这样一段文本:我爱吃饭。用掩码标记Mask去遮盖后的效果可能是“我爱Mask饭”。Mask机制打破原文本信息,在做预训练时,让模型去做文本重建,模型从上下文中获取各种信息,从而预测出被Mask遮盖的词汇。

在输入BERT之前,单词序列中有15%的单词被Mask标记替换。然后,该模型将尝试预测被屏蔽词的可能值。

掩码语言模型在自然语言处理领域已经取得了显著的进展,在文本分类、序列标注等任务中表现尤其突出。通过在预训练阶段使用未标注的语料进行训练,掩码语言模型能够捕捉到文字、词汇和句法等不同层面的语言规律,并在有监督的任务中取得更好的表现。

(2)下一个句子预测

下一个句子预测(Next Sentence Prediction,NSP)是一个常见的自然语言处理任务,这个任务是指给定两个句子AB,让模型判断B是否是A的下一个句子。这个任务可以让模型学习到语言中的句子关系和连贯性。

在预训练任务中,掩码语言模型能够根据上下文还原掩码部分的词,从而学习上下文敏感的文本表示。然而,对阅读理解等需要输入两段文本的任务来说,仅依靠掩码语言模型无法显式地学习两段文本之间的关联。下一个句子预测任务是用来构建两段文本之间的关系的预训练任务。

BERT使用TB数量级甚至PB数量级的数据集来进行预训练,如英文维基百科、书籍语料库等。同时,BERT使用具有数千甚至数万个图形处理单元(Graphics Processing Unit,GPU)或张量处理单元(Tensor Processing Unit,TPU)的高性能计算设备来进行并行计算和优化。BERT在预训练后得到一个通用的编码器模型,它可以将任意长度的文本转换为固定长度的向量。BERT使用了一种简单而有效的微调方法,即在预训练好的编码器模型上添加一个简单的输出层,然后根据不同的任务和场景来调整输出层的结构和参数。例如,在文本分类任务中,输出层可以是一个全连接层或一个softmax层;在文本生成任务中,输出层可以是一个解码器或一个线性层。

BERT利用“大规模预训练+微调”的范式,在预训练阶段学习到通用的知识和能力,在微调阶段适应特定的任务和场景,这种范式在各种领域和场景中都能够展现出良好的效果。事实上,BERT不仅在文本分类任务中表现优异,还在文本生成、文本摘要、机器翻译、问答系统等任务中刷新了多项纪录,成为自然语言处理领域的一个里程碑模型。

3.Token与大模型

Token是指文本中一个有意义的单位,可以是单词、数字或者标点符号。在自然语言处理领域中,机器学习模型通常以Token作为其输入单位,Token可以被理解为文本中的最小单位。在英文中,一个Token可以是一个单词,也可以是一个标点符号。例如,“I love you”这个句子可以被分割成3个Token:“I”“love”“you”。对模型而言,Token是一种数字化的表示形式。每个Token都与一个唯一的数字ID相关联,模型通过这些数字ID来区分不同的Token。在训练过程中,模型学习将文本映射到这些数字ID的方法,以便对新的文本进行编码和解码。例如,对于英文单词,一个词汇表中可能包含诸如“hello”“world”“chat”等单词,每个单词对应一个唯一的数字ID。当输入文本被拆分成多个Token之后,模型会查找每个Token在词汇表中的对应ID,并用这些ID来表示输入文本。

常见的大模型是一种基于概率的自回归语言模型(AR模型)。AR模型通过预测文本序列中的下一个Token来生成文本,在训练过程中,模型会逐个处理输入序列中的Token,并预测下一个Token的概率分布;在生成过程中,模型会根据上下文和已生成的Token逐步生成新的Token,直到处理完整个文本序列。

例如,如果我们要将句子“the dog sat on the mat”转换为Token,我们可以这样做:将每个单词转换为Token,得到“the”“dog”“sat”“on”“the”“mat”。

值得注意的是,除了单词之外,还有一些其他的符号也可以被视为Token,比如标点符号、数字、表情符号等。这些符号可以传递一些信息或者情感。例如,“I love you!”和“I love you?”就不同于“I love you”,因为感叹号和问号表达了不同的语气和态度。

表1-1所示为Token中的常见术语及说明。

表1-1 Token中的常见术语及说明

Token的概念在自然语言处理中非常重要,因为它能够帮助机器理解自然语言。在传统的计算机编程中,我们通常会对输入的数据进行格式化处理,以便让计算机能够更好地处理它们。但是在自然语言处理中,语言的结构和规则是更为复杂和多样化的,因此我们需要用Token来帮助机器识别和理解语言的这些结构和规则。在大语言模型中,Token的应用场景非常广泛。例如,在文本生成任务中,机器可以通过对输入的Token进行操作生成符合语法和语义规则的新文本;在语音识别任务中,机器也可以使用Token将语音信号转换为可读的文本;在机器翻译任务中,Token可以帮助机器将一种语言的文本转化为另一种语言的文本。

1.2.2 深度学习

深度学习受到仿生学的启发,通过模仿神经元、神经网络的结构以及传输和接收信号的方式,达到学习人类思维方式的目的。深度学习通过学习数据的内在规律和表示,使计算机能够有像人一样的分析能力,让机器能够更准确、更有效地处理复杂任务。从发展前景来看,AI将以深度学习为重要基础,持续影响人们的生活,在未来甚至可以实现科幻电影中的人机交互场景。

1.深度学习概述

深度学习以神经网络为主要模型,一开始被用来解决机器学习中的表示学习问题,但是由于其强大的能力,深度学习越来越多地被用来解决一些通用AI问题,比如推理、决策等。目前,深度学习在学术界和工业界取得了大量的成果,并受到高度重视,掀起了新一轮的AI热潮。

前馈神经网络是一种简单的深度学习模型,各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈。前馈神经网络是目前应用最广泛、发展最迅速的人工神经网络之一,其结构如图1-4所示。

图1-4 前馈神经网络的结构

在这个结构中,最左边的一层被称为输入层,用input表示,其中的神经元被称为输入神经元。最右边的一层即输出层,用output表示,其中包含输出神经元。在这个例子中,只有一个输出神经元,但一般情况下输出层也会有多个神经元。中间层被称为隐藏层,用hidden表示,因为里面的神经元既不是输入也不是输出。

神经网络的学习也被称为训练,指的是通过神经网络所在环境的刺激作用调整神经网络的自由参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。神经网络最大的特点是能够从环境中学习,并在学习中提高自身性能。神经网络的整个学习过程首先使用结构指定网络中的变量和它们的拓扑关系,例如,神经网络中的变量可以是神经元连接的权重(Weight)和神经元的激励值(Activities of the Neuron);其次使用激励函数(Activity Function)来定义神经元如何根据其他神经元的活动来改变自己的激励值,一般激励函数依赖于网络中的参数;最后是训练学习规则(Learning Rule),学习规则指定了网络中的参数权重如何随着时间推进而调整。一般情况下,学习规则依赖于神经元的激励值,它也可能依赖于监督者提供的目标值和当前权重的值。总的来说,通过神经网络结构指定变量和拓扑关系,使用激励函数进行训练,再加上最后的学习规则的训练,即可完成神经网络的整个学习过程。

2.深度学习中的常见模型

深度学习主要包含以下几种模型。

(1)卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)的提出,是为了降低对图像数据预处理的要求,以避免烦琐的特征工程。卷积神经网络由输入层、输出层以及多个隐藏层组成。

卷积神经网络是多层感知机的一种变体,参考生物视觉神经系统中神经元的局部响应特性设计,采用局部连接和权值共享的方式降低模型的复杂度,极大地减少了训练参数数量,提高了训练速度,也在一定程度上提高了模型的泛化能力。有关卷积神经网络的研究是目前多种神经网络模型研究中最为活跃的一种。一个典型的卷积神经网络的隐藏层主要由卷积层(Convolutional Layer)、池化层(Pooling Layer)、全连接层(Fully-Connected Layer)构成。卷积神经网络的结构如图1-5所示,其中卷积层与池化层可组成多个卷积组,逐层提取特征。

图1-5 卷积神经网络的结构

卷积神经网络的特点是在单个图像上应用多个滤波器,每个滤波器都会被设计为捕捉图像中不同的特征或模式。卷积神经网络通过应用不同的滤波器在图像上滑动(或卷积),在局部区域内提取特征,进而在整个图像上构建一个完整的特征映射。每个滤波器与图像的卷积操作会产生一个特征图,该特征图可视化了图像中相应特征的空间分布,也就是显示每个特征出现的地方。通过学习特征空间的不同部分,卷积神经网络实现了轻松扩展和健壮的特征工程。

卷积神经网络可以输出输入图像的特征,实现过程如图1-6所示。

图1-6 卷积神经网络的实现过程

卷积神经网络是目前深度学习技术领域中非常具有代表性的神经网络之一,在图像分析和处理领域取得了众多突破性的进展。目前在学术领域,基于卷积神经网络的研究取得了很多成果,包括图像特征提取分类、场景识别等。

(2)循环神经网络

循环神经网络(Recurrent Neural Network,RNN)是深度学习中一类特殊的内部存在自连接的神经网络,可以学习复杂的矢量到矢量的映射。杰夫·埃尔曼(Jeff Elman)于1990年提出的循环神经网络框架,被称为简单循环网络(Simple Recurrent Network,SRN),是目前广泛流行的循环神经网络的基础版本,之后不断出现的更加复杂的结构均可认为是其变体或者扩展。目前循环神经网络已经被广泛用于各种与时间序列相关的工作任务中。

图1-7所示为循环神经网络的结构。循环神经网络层级结构比卷积神经网络简单,它主要由输入层、隐藏层和输出层组成。隐藏层用一个箭头表示数据的循环更新,这个就是实现时间记忆功能的方法,即闭合回路连接。

图1-7 循环神经网络的结构

闭合回路连接是循环神经网络的核心部分。循环神经网络对序列中每个元素都执行相同的任务,其输出依赖于之前结果的计算结果,因此循环神经网络具有记忆功能,这种记忆能力使得循环神经网络可以捕获已经计算过的信息,对于处理序列数据非常有效。循环神经网络在语音识别、自然语言处理等领域有着重要的应用。在实际应用中,人们会遇到很多序列数据,序列数据是按照一定顺序排列的数据集合,如图1-8所示。

图1-8 序列数据

在自然语言处理问题中,x1可以看作是第1个单词的向量,x2可以看作是第2个单词的向量。序列数据可以认为是一串信号,比如一段文本“您吃了吗?”,其中x1可以表示“您”,x2表示“吃”,x3表示“了”,依次类推。

简单的神经网络不能考虑一串信号中每个信号的顺序关系,这时候就可以用RNN来处理序列数据。从循环神经网络的结构可知,循环神经网络下一时刻的输出值是由前面多个时刻的输入值共同决定的。假设有一个输入“我会说普通”,那么应该通过“会”“说”“普通”这几个前序输入来预测下一个词最有可能是什么,通过分析预测,出现“话”的概率比较大。

(3)生成对抗网络

生成网络是一种无监督学习的模型,它可以根据一些随机噪声或者潜在变量,生成与真实数据相似的新数据。生成网络的一个典型应用是生成图像,例如人脸、风景、动物等。

生成对抗网络(Generative Adversarial Networks,GAN)是一种深度神经网络架构,由一个生成网络和一个判别网络组成。生成网络产生假数据,并试图欺骗判别网络;判别网络对生成的数据进行真伪鉴别,试图正确识别所有假数据。在训练迭代的过程中,两个网络持续地进化和对抗,直到达到平衡状态,当判别网络无法再识别假数据时,训练结束。

生成对抗网络模型如图1-9所示,该模型主要包含一个生成模型和一个判别模型。生成对抗网络主要解决的问题是如何从训练样本中学习新样本,其中判别模型用于判断输入样本是真实数据还是训练生成的假数据。

图1-9 生成对抗网络模型

生成对抗网络的生成模型和判别模型的网络结构有多种选择,但一般都是基于卷积神经网络或反卷积神经网络(Deconvolutional Neural Network,DeCNN)来构建。

(4)注意力机制

注意力机制(Attention Mechanism)是一种深度学习中常用的技术,它允许模型在处理输入数据时集中“注意力”于相关的部分。这种机制通过模仿人类视觉和认知系统的关注方式,帮助神经网络选择性地关注并自动学习输入的重要信息,以提高模型的性能和泛化能力。具体来说,注意力机制就是将人集中注意的行为应用在机器上,让机器学会去感知数据中重要的部分。例如,当我们观察一张图片时,我们通常会优先注意到图片中的主体,比如小猫的面部以及小猫吐出的舌头,然后才会把我们的注意力转移到图片的其他部分。同样,当机器学习模型需要完成某个任务,如图像识别或机器翻译时,注意力机制会使模型的“注意力”集中在输入中需要注意的部分,例如动物的面部特征,包括耳朵、眼睛、鼻子、嘴巴等重要信息。因此,注意力机制的核心目的在于使机器能在很多的信息中注意到对当前任务来说更关键的信息,而对于其他的非关键信息不需要过于关注。

此外,注意力机制也常被应用于序列数据(如文本、语音或图像等序列数据)的处理,其目标是从众多信息中选出对当前任务目标来说更加关键的信息。这种借鉴了人类集中注意力方式的注意力机制已经在深度学习领域显示出显著提高模型性能的效果。

深度学习与传统机器学习的不同之处在于,深度学习能够在分析大型数据集时进行自我学习和改进,能应用在许多不同的领域。深度学习模仿的是人类大脑运行的方式——从经验中学习。众所周知,人类的大脑中包含了数十亿个神经元,正因为这些神经元,人类才能进行很多复杂的行为。一个一岁的小孩子也可以解决复杂的问题,但对于超级计算机来说可能是很难解决的。

3.深度学习的应用

目前,深度学习在各种任务中都有良好的表现,无论是文本生成、时间序列分析还是计算机视觉识别。大数据的可用性的增强和计算机计算能力的提升使得深度学习的表现远远优于经典的机器学习算法。深度学习的常见应用如下。

(1)图像识别

图像识别是深度学习应用最早的领域之一,其本质是图像分类问题。早在神经网络刚刚出现的时候,美国学者就实现了利用神经网络对手写数字进行识别,并进行了商业化。图像识别的核心任务是对输入的图像进行分类,将其归类到特定的类别,并输出每个类别的概率值。例如输入一只狗的图片,人们期望输出显示属于狗这个类别的概率值最大,这样就可以认为这张图片中的图像是一只狗。

(2)机器翻译

传统的机器翻译模型采用的是基于统计分析的算法模型,对于处理复杂的语言表达逻辑,其效果并不好。而基于深度学习的机器翻译模型翻译出来的结果更加接近于人类的表达逻辑,翻译正确率得到了大大的提高。

(3)机器人

借助深度学习的力量,机器人可以在真实、复杂的环境中代替人类执行一些特殊任务,如人员跟踪、排爆等,这在过去是完全不可能的事。目前在机器人研发领域做得较好的要数美国波士顿动力公司,其开发的机器人在复杂地形行走、肢体协调等方面取得了巨大的成果。

(4)自动驾驶

现在很多大型公司都在自动驾驶领域投入了大量的资源,如百度、谷歌等。自动驾驶技术的开发过程应用了大量的深度学习技术,如马路线与路标的检测、周边行驶车辆的三维信息的获取等。

1.2.3 自然语言处理

自然语言处理是指利用计算机对人类特有的语言信息(包括形、音、义等)进行处理,即对字、词、句、篇章进行识别、分析、理解、生成等的操作并建立人-机-人系统。它是计算机科学领域和AI领域的一个重要的研究方向,研究如何用计算机来处理、理解以及运用人类语言,以实现人与计算机之间的有效通信。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

语言是人类特有的用来表达意思、交流思想的工具。音素构成音节,音节构成单词,单词组成短语和句子,无限的句子就构成了一门语言。

实现人机间的信息交流,是计算机科学界和语言学界共同关注的重要课题。在一般情况下,用户可能不熟悉机器语言,自然语言处理技术可以帮助用户根据自身需要使用自然语言同计算机进行交流。从建模的角度看,为方便计算机处理,自然语言可以被定义为一组规则或符号的集合,计算机通过输出组合集合中的符号就可以传递各种信息。自然语言处理技术通过建立计算机的算法框架来实现某个语言模型,并对模型进行完善、评估,最终被用于设计各种实用的自然语言应用系统。

自然语言处理主要原理如下。

(1)词法分析

词法分析是理解单词的基础,其目的是从句子中切分出单词,找出词汇的各个词素,再从中获得单词的语言学信息和词义。例如,单词unchangeable是由un、change、able构成的,其词义也是由这3个部分构成的。不同的语言对词法分析有不同的要求,英语和汉语就有较大的不同。在英语中,单词之间通常是以空格自然分开的,因此切分出一个单词很容易。但是由于英语单词有词性、单/复数、时态等变化,要找出各个词素就复杂得多,需要对词尾或词头进行分析。如单词importable,它可以是im、port、able或import、able,这是因为im、port、able这3个都是词素。

词法分析可以从词素中获得许多有用的语言学信息。如英语中构成词尾的词素“s”通常表示名词复数或动词第三人称单数,“ly”通常是副词的后缀,而动词加上“ed”通常是动词的过去式或过去分词等,这些信息对于句法分析非常有用。一个词可有许多种派生、变形,如work可变化出works、worked、working、worker、workable等。为了避免数据量过于庞大,自然语言理解系统通常只存储词根,并支持词素分析,这样可以大大压缩数据量的规模。

下面是一个适用于英语词法分析的算法,它可以对那些按英语语法规则变化的英语单词进行分析。

repeat
look for study in dictionary
  if not found
  then modify the study
Until study is found no further modification possible

其中“study”是一个变量,其初始值就是需要分析的单词。

使用此算法可以对一些单词进行词法分析,以单词catches、studies为例。

catches studies 数据库中查不到

catche studie 修改1:去掉“s”

catch studi 修改2:去掉“e”

    study 修改3:把“i”变成“y”

在修改2的阶段,就可以在数据库找到“catch”,在修改3的阶段,就可以在数据库找到“study”。

英语词法分析的难度在于词义判断,因为单词往往有多种解释,仅仅依靠查词典常常无法判断。例如,单词“diamond”有3种中文解释:菱形,边长均相等的四边形;棒球场;钻石。要判定单词的词义只能依靠对句子中其他相关单词和词组的分析进行推断。例如句子“John saw Slisan's diamond shining from across the room.”中,“diamond”的词义必定是钻石,因为只有钻石才能闪光,而菱形和棒球场是不闪光的。

作为对照,汉语中的每个字就是一个词素,所以在汉语词法分析中,要找出各个词素相当容易,但要切分出各个词语就非常困难。这不仅需要构词的知识,还需要解决可能遇到的切分歧义问题。如“下雨天留客天留我不留”,可以是“下雨天留客,天留我不留”,也可以是“下雨天,留客天,留我不,留”。

(2)句法分析

句法分析是自然语言处理的核心,是对语言进行深层次理解的基础。在自然语言处理领域中,机器翻译是其中一个重要的研究方向,也是自然语言处理应用的主要领域之一。在机器翻译中,句法分析扮演着核心的角色,为翻译过程提供关键的数据结构信息和语言结构信息。

句法分析主要有以下两个作用。

① 对句子或短语结构进行分析,以确定构成句子的各个词、短语之间的关系以及各自在句子中的作用等,并将这些关系用层次结构进行表示。

② 对句法结构进行规范化。在对一个句子进行分析的过程中,如果把分析句子各成分之间的关系用树形图表示出来,那么这种图称为句法分析树形图。句法分析使用专门设计的句法分析器,其分析过程就是构造句法分析树的过程,将每个输入的合法语句转换为一棵句法分析树。

句法分析器是实现句法分析过程的工具。句法分析的种类很多,根据其侧重目标将其分为完全句法分析和局部句法分析两种。两者的差别在于,完全句法分析是以获取整个句子的句法结构为目的;而局部句法分析只关注句子局部的成分,例如,常用的依存句法分析就是一种局部句法分析方法。

句法分析所用的方法主要分为两类:基于规则的方法和基于统计的方法。基于规则的方法在处理大规模真实文本时,会存在语法规则覆盖有限、系统可迁移性差等缺陷。随着大规模标注树库的建立,基于统计学习模型的句法分析方法开始兴起,句法分析器的性能不断提高。最典型的句法分析方法就是概率上下文无关文法(Probabilistic Context Free Grammar,PCFG),它在句法分析领域得到了极为广泛的应用,也是现在句法分析常用的方法。统计句法分析法也是常用的方法之一,本质上是一种面向候选句法树的评价方法,它会给正确的句法树赋予一个较高的分值,而给不合理的句法树赋予一个较低的分值,这样就可以通过候选句法树的分值来消除歧义。图1-10所示是一个典型的句法树。

图1-10 句法树

目前使用最多的英语句法树库是由美国宾夕法尼亚大学语言学家和计算机科学家联合开发的宾州树库(Penn TreeBank,PTB)。PTB的前身为空中旅行信息系统(Air Travel Information System,ATIS)树库和华尔街日报(Wall Street Journal,WSJ)树库,PTB具有较好的一致性和较高的标注准确率。中文树库建设较晚,比较著名的有中文宾州树库(Chinese TreeBank,CTB)、清华汉语树库(Tsinghua Chinese TreeBank,TCT)。其中CTB是由宾夕法尼亚大学标注的汉语句法树库,也是目前绝大多数中文句法分析研究的基准语料句法树库。TCT是清华大学学者从汉语平衡语料库中提取出百万规模的汉字语料文本,经过自动句法分析和人工校对,形成的高质量的标注有完整句法结构的中文句法树库。

不同的句法树库有不同的标记体系,切忌使用某一种句法树库的句法分析器,但用其他树库的标记体系来解释。由于树库众多,这里不具体讲解每一种句法树库的标记规范,感兴趣的读者可上网搜索自行查阅。表1-2所示为清华汉语树库的部分标记集。

表1-2 清华汉语树库的部分标记集

(3)语义分析

完成句法分析不等于已经理解了该语句,还需要对语句的语义进行分析。语义分析的任务是把句法分析得到的句法成分与应用领域中的目标表示相关联,从而确定语句所表达的真正含义,即弄清楚干了什么,谁干的,这个行为的原因和结果是什么以及这个行为发生的时间、地点及其所用的工具或方法等。相比句法分析,语义分析侧重于语义而非语法,它包括:

① 词义消歧。确定一个词在语境中的含义,而不是简单的词性;

② 语义角色标注。标注句子中的谓语与其他成分的关系;

③ 语义依存分析。分析句子中词语之间的语义关系。

以下方的句子为例:

What is SHIP-PROPERTY of SHIP?

在这个句子中,约束关系指明“What is”必须与SHIP-PROPERTY结合起来构成疑问句,这种约束关系表示了语义信息。用语义分析语句的方法与普通的句法分析类似。

需要注意的是,对计算机来说,文本仅仅是一个字符序列。为了使计算机能够理解文本,可以建立一个基于递归神经网络的模型。该模型逐词或逐字符处理输入,待整个文本处理完毕后,提供一个输出。

自然语言处理的具体表现形式包括机器翻译、文本摘要、文本分类、文本校对、信息抽取、语音合成、语音识别等。近些年,自然语言处理研究已经取得了巨大的进步,并逐渐发展成为一门独立的学科。

自然语言处理的发展历程可大致分为3个阶段:20世纪80年代之前,AI技术开始萌芽,基于规则的语言系统占据AI技术发展的主导地位;20世纪80年代至2017年,机器学习的兴起和神经网络的引入,推动了自然语言处理的快速发展和商业化进程;2017年至今,基于注意力机制构建的Transformer模型开启了大语言模型时代。

第一阶段:基于规则的语言系统。

早在20世纪50年代前后,AI就已经诞生。1956年,达特茅斯会议召开,会上首次正式提出了“人工智能”的概念。1980年,自然语言处理技术分为了两大阵营,分别为基于语言规则的符号派和基于概率统计的随机派,而当时符号派的势头明显强于随机派的势头,因此当时大多数自然语言处理系统都使用复杂的逻辑规则,能够处理如字符匹配、词频统计等一些简单的任务。同一时期,也产生了一些机器翻译以及语言对话的初级产品,比较著名的是1966年MIT开发的世界上第一台聊天机器人Eliza,Eliza能够遵循简单的语法规则与人进行交流。但总体来看,这一时期自然语言处理领域所取得的成果还无法商业化,机器翻译的成本也远高于人工翻译,无法真正实现机器与人之间的基本对话。

第二阶段:机器学习和神经网络。

1980年,卡内基梅隆大学召开了第一届机器学习国际研讨会,这标志着机器学习在全世界兴起。20世纪90年代以后,神经网络模型被引入自然语言处理领域,其中最著名的两个神经网络模型是循环神经网络和卷积神经网络,循环神经网络因其处理序列数据的特性,成为大部分自然语言处理模型的主流选择。2000年后,Multi-task learning、Word Embedding、Seq2seq等层出不穷的新技术推动了自然语言处理技术的快速进步,使得自然语言处理逐步实现了商业化,机器翻译、文本处理等商业化产品开始大量出现。

第三阶段:基于注意力机制构建的Transformer模型开启了大语言模型的时代。

2017年,谷歌机器翻译团队发表了著名论文Attention is All You Need,提出了基于注意力机制构建的Transformer模型,这也成为自然语言处理历史上的一个标志性事件。相较于传统的神经网络,基于注意力机制构建的Transformer模型不仅提升了语言模型运行的效率,同时能够更好地捕捉语言长距离依赖的信息。2018年,OpenAI公司推出的GPT以及谷歌公司推出的BERT均是基于注意力机制构建的Transformer模型,而自然语言处理也正式进入大语言模型的全新阶段。

1.2.4 大语言模型发展现状

目前,大语言模型的生态已初具规模。大语言模型通常在大规模无标记数据上进行训练,以学习某种特征和规则。基于大语言模型开发应用时,可以对大语言模型的模型结构进行微调,有时不进行微调也可以完成多个应用场景的任务;更重要的是,大语言模型具有自监督学习能力,不需要或需要很少人工标注数据即可训练,这样可以降低训练成本,从而可以加快AI产业化进程,降低AI应用门槛。

例如,ChatGPT的背后就是大语言模型生成领域的新训练范式:RLHF(Reinforcement Learning from Human Feedback),即基于人类反馈的强化学习来优化语言模型。

RLHF是一个涉及多个模型和不同训练阶段的复杂概念,有以下3个训练步骤。

(1)预训练一个语言模型(Language Model,LM);

(2)聚合问答数据并训练一个奖励模型(Reward Model,RM);

(3)用强化学习(Reinforcement Learning,RL)方式微调语言模型。

ChatGPT使用的大语言模型根据概率分布,计算出下一个最有可能的词,因此它不管事实逻辑上的合理性,也没有所谓的意识,所以有时会生成看似正确的错误内容。RLHF用生成文本的人工反馈作为性能衡量标准,并使用该反馈作为奖励来优化模型,这样做是为了在一般文本数据语料库上训练的语言模型能和人类复杂的语言系统对齐。

大语言模型的设计和训练旨在提供更强大的模型性能,以应对更复杂的任务或更庞大的数据集。大语言模型通常能够学习到更细微的模式和规律,具有更强的泛化能力和表达能力。因此,用大数据和算法进行训练的模型能够捕捉到大规模数据中的复杂模式和规律,从而做出更加准确的预测。