GPT(GenerativePre-TrainedTransformer)
提到GPT模型,就不得不说众所周知的ChatGPT模型,ChatGPT的发展可以追溯到2018年,当时OpenAI发布了第一代GPT模型,即GPT-1,该模型采用Transformer结构和自注意力机制,能够生成自然流畅的文本。GPT的发展到目前为止,已经经历了多个版本更替,从最早的GPT-1、到GPT-2、GPT-3,再到InstructGPT、GPT-3.5系列、ChatGPT、GPT-4等,整个发展过程中,经历多年的技术迭代和积累,到ChatGPT出来的时候,终于惊艳了大众。
——全文两万多字,建议先收藏,方便后续查阅!
ØGPT-1
初代模型GPT-1是OpenAI基于深度学习领域的研究和开发,以及对于自然语言处理任务的探索和实践。在GPT-1发布之前,OpenAI的研究人员已经探索了不同类型的神经网络结构,如LSTM(长短时记忆)和GRU(门控循环单元)等,来处理自然语言任务。但是,这些模型在处理长文本序列时都会存在一些问题,例如梯度消失和梯度爆炸等问题。
后来OpenAI的研究人员在GPT-1中引入了Transformer模型,这是一种全新的神经网络结构,可以更好地处理长文本序列。Transformer模型由多个“自注意力层”(Self-AttentionLayer)构成,每个自注意力层可以捕捉文本序列中的不同部分之间的关系,从而更好地理解文本的含义,想要了解关于Transformer更加详细的内容,可以前往之前关于Transformer的专题文章。
GPT-1在预训练过程中使用了大量的语料库,从而可以学习到语言中的规律和模式。然后,在具体的自然语言处理任务中,GPT-1可以通过微调(Fine-tuning)来适应不同的任务。
GPT-1的原始论文是“Improving Language Understanding by Generative Pre-Training”(《通过生成式预训练提高语言理解能力》),于2018年发表在《自然》杂志上。该论文由OpenAI的研究人员撰写,其中的作者包括了Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever等人。
GPT-1的出现是基于Transformer模型的深度学习领域与自然语言处理领域的一次研究和开发,通过引入全新的Transformer模型,以及大量预训练和微调的过程,来提高模型对于自然语言处理任务的理解和生成能力。
1、GPT模型的技术原理
1)Transformer架构
Transformer模型是一种革命性的深度学习架构,专为自然语言处理任务而设计。它在2017年由Vaswani等人提出,其突出特点在于完全摒弃了传统循环神经网络(RNN)和卷积神经网络(CNN)的结构,而是采用了一种基于自注意力机制的前馈神经网络架构,以极高的效率实现了文本序列的建模和处理。
Transformer模型的核心结构由编码器和解码器构成,分别用于处理输入文本和生成输出文本。每个编码器和解码器由多个相同的“注意力头”(self-attentionhead)组成,这些头允许模型关注输入序列中不同位置的信息,从而捕获上下文依赖关系。
自注意力机制是Transformer模型的灵魂所在。在自注意力中,输入序列中的每个元素都与其他元素进行关联,以计算出加权的上下文表示。这种机制使得模型能够在不受限于固定窗口大小的情况下,捕捉长距离的依赖关系,从而在处理长文本序列时表现出色。
此外,Transformer还引入了“多头注意力”机制,即在不同注意力头中使用不同的线性变换来学习不同特征表示。这有助于模型更好地捕获不同层次的语义信息。
在模型的训练过程中,输入文本首先经过嵌入层,将词汇映射为实数向量,然后通过多层编码器进行特征提取。解码器同样由多层自注意力和前馈神经网络组成,用于生成目标序列。
Transformer模型通过自注意力机制和多头注意力机制,实现了对文本序列的高效建模和处理。其革新性的结构在机器翻译、文本生成等自然语言处理任务中取得了巨大成功,成为该领域的重要里程碑。想要了解更多关于Transformer的信息,可以翻看之前的专题文章。
2)预训练与微调
当讨论GPT-1的预训练与微调时,我们可以更详细地了解这两个关键步骤,以及它们如何相互配合以构建一个强大的语言模型。
预训练(Pre-training)阶段:预训练是GPT-1的核心,它在大规模无标签文本语料库上进行。这个阶段的目标是使模型学会理解语言的各种层面,包括词汇、句法和语义,以及词汇之间的关联。这是通过自监督学习来实现的,即模型通过自己预测句子中的下一个词来学习。GPT-1的预训练任务可以概括为“掩码语言建模”(MaskedLanguageModeling)。在这个任务中,输入的句子中的某些词汇会被遮蔽,而模型需要预测这些遮蔽词的正确词汇。预训练的步骤如下:
A.嵌入层(EmbeddingLayer):
将输入的词汇转换成向量表示,以便模型可以理解和处理它们。
B.多层Transformer编码器:
这是GPT-1的核心部分。它由多个编码器组成,每个编码器包含多头自注意力机制和前馈神经网络。这些编码器一层一层地对输入进行处理,以获取丰富的上下文信息。
C.遮蔽语言建模任务:
在这个任务中,模型会随机选择句子中的一些词汇并将其遮蔽。然后,模型根据上下文预测被遮蔽的词汇。通过这个任务,模型学会了理解文本中的词汇关系和上下文。
微调(Fine-tuning)阶段:在预训练阶段完成后,GPT-1进入微调阶段,以便在特定任务上表现出色。这个阶段需要有标注的数据,用于训练模型以适应特定的任务,如文本分类、生成等。微调的步骤如下:
A.任务特定数据准备:
收集并准备与特定任务相关的有标注数据。例如,如果要进行情感分析任务,就需要有带有情感标签的文本数据。
B.添加任务特定头部:
在预训练的GPT-1模型之上,添加一个任务特定的头部(task-specifichead)。这个头部是一个额外的神经网络,用于根据任务需求对模型进行微调。
C.微调训练:
使用任务特定的数据,通过反向传播和梯度下降等方法,调整模型的参数,使其在特定任务上表现更好。
通过预训练和微调的结合,GPT-1能够在广泛的自然语言处理任务中表现出色。预训练使得模型具备了通用的语言知识,而微调使其能够根据特定任务的需求进行调整,从而实现高性能的表现。这种预训练和微调的策略也在后续的GPT系列模型中被广泛采用。
3)掩码语言建模
GPT-1(Generative Pre-trained Transformer 1)的掩码语言模型是其预训练阶段中的关键任务之一,用于使模型能够理解和建模文本中的词汇关系、语法结构和上下文信息。掩码语言模型任务是通过对输入文本中的一些词汇进行随机遮蔽,然后要求模型预测这些被遮蔽的词汇,从而训练模型的上下文理解能力。
具体来说,掩码语言模型任务的步骤如下:
A.输入文本编码:
首先,将输入的文本序列(例如一个句子)中的每个词汇都转换成嵌入向量。这些嵌入向量反映了词汇的语义信息,并作为模型的输入。
B.随机遮蔽词汇:
在输入文本中,随机选择一些词汇进行遮蔽。遮蔽通常通过将被选中的词汇替换为一个特殊的标记(通常是 "[MASK]")来实现。这些被遮蔽的词汇将成为模型预测的目标。
C.模型预测:
对于每个被遮蔽的词汇,模型需要根据上下文来预测正确的词汇。模型通过输入其他词汇的嵌入向量,并在遮蔽的位置上输出一个向量。然后,将这个输出向量与词汇表中的所有词汇进行比较,以确定最适合的预测。
D.计算损失:
为了训练模型,需要计算模型预测值与实际被遮蔽词汇之间的差距。通常使用交叉熵损失来衡量预测的准确性。这个损失被用于调整模型的参数,以使模型的预测逐渐逼近实际的被遮蔽词汇。
通过掩码语言模型任务,GPT-1模型在预训练阶段获得了广泛的语言知识。它不仅学会了词汇的语义表示,还理解了词汇之间的关联和上下文信息。这使得GPT-1在接下来的微调阶段和特定任务中能够更好地适应,展现出出色的性能。掩码语言模型任务的设计使得GPT-1能够在自然语言处理领域取得显著的成就。
4)无监督学习
GPT-1(Generative Pre-trained Transformer 1)的核心特点之一是其无监督学习方法,这使得它能够在大规模文本数据上进行自我训练,从而获得丰富的语言知识。无监督学习意味着模型在训练过程中不需要标注的目标,而是从输入数据中自行学习。以下是GPT-1中的无监督学习的详细介绍:
A.自我监督任务:
GPT-1通过设计自我监督任务,让模型在没有明确的标签或目标的情况下进行学习。其中一个主要任务就是掩码语言建模(Masked Language Modeling,MLM)。在这个任务中,GPT-1将输入的文本序列中的一些词汇进行随机遮蔽,并要求模型根据上下文来预测这些被遮蔽的词汇。通过这个任务,模型需要学会理解词汇的语义和上下文关系,以便能够准确地预测被遮蔽的词汇。
B.嵌入层和Transformer结构:
在无监督学习中,GPT-1首先通过嵌入层将输入文本中的词汇转换为向量表示。这些向量表示捕捉了词汇的语义信息。然后,GPT-1使用多层Transformer结构对输入文本进行处理。每个Transformer编码器包括多头自注意力机制和前馈神经网络,允许模型在不同层次捕捉文本的特征和上下文关系。
C.逐层表示:
GPT-1的每一层都会将前一层的输出作为输入,并在此基础上进行进一步的特征提取。这样,模型逐渐在不同层次上理解输入文本的不同特征,从低级的词汇信息到高级的语义信息。
D.无监督预训练和微调:
在无监督学习阶段,GPT-1首先进行大规模的预训练,以获取通用的语言知识。然后,在特定任务上进行微调,以使模型适应特定任务的要求。微调可以是有监督的,但在GPT-1的整个框架中,无监督预训练的阶段对于模型性能的提升起到了重要作用。
通过无监督学习,GPT-1在大量的文本数据中进行自我学习,使其具备了丰富的通用语言知识。这种通用性使得GPT-1能够在各种自然语言处理任务中表现出色,无需在每个任务上重新训练。这种预训练和微调的策略使得GPT-1成为自然语言处理领域的重要突破。
2、GPT模型的结构组成
解码器架构:GPT-1(Generative Pre-trained Transformer 1)是基于Transformer解码器架构的语言模型(Decoder-only),其解码器部分在文本生成和自然语言处理任务中发挥重要作用。解码器是GPT-1的一个核心组成部分,负责将模型学到的语言知识转化为可读的文本输出。
GPT-1的解码器结构如下:
A.多层Transformer解码器:
GPT-1的解码器由多个相同的Transformer解码器层组成,这些层叠在一起,逐层地处理输入的上下文信息。每个解码器层都包含多头自注意力机制和前馈神经网络,这些机制使得模型能够理解输入文本的不同层次的特征和关系。
B.自注意力机制:
每个解码器层中的自注意力机制允许模型关注输入文本中不同位置的信息。这使得模型能够根据上下文准确预测下一个词汇。自注意力机制使模型能够捕获长距离的依赖关系,从而生成连贯的文本。
C.多头注意力机制:
多头注意力机制在解码器中的应用与编码器类似,允许模型在不同的注意力头之间进行选择。每个注意力头可以关注不同层次的特征,从而使模型更好地理解输入文本的不同维度。
D.前馈神经网络:
在每个解码器层中,还有一个前馈神经网络,它用于对自注意力机制的输出进行进一步的处理和变换。前馈神经网络可以捕获更高级的语义信息,有助于模型生成更加准确和流畅的文本。
解码器的基本工作原理是在每个时间步骤生成一个词汇,并使用前面生成的词汇作为上下文来生成下一个词汇。这样逐步生成文本,直到达到所需的文本长度或生成结束符号。
GPT-1的解码器结构通过多层Transformer解码器、自注意力机制和多头注意力机制,以及前馈神经网络,使得模型能够将学到的语言知识转化为连贯、流畅的文本生成。这使得GPT-1在文本生成、对话系统和其他自然语言处理任务中表现出色。
堆叠的注意力层:GPT-1(Generative Pre-trained Transformer 1)中的一个关键组件是堆叠的注意力层,它在Transformer模型的编码器和解码器中都有应用,这里分析其在GPT模型中的应用。注意力层允许模型关注输入序列中不同位置的信息,从而捕捉上下文依赖关系和特征表示。
在GPT-1中,堆叠的注意力层指的是多个相同的注意力机制按顺序叠加在一起。每个注意力层由自注意力机制和前馈神经网络组成。以下是GPT-1中堆叠的注意力层的基本结构:
A.自注意力机制(Self-Attention Mechanism):
自注意力机制允许模型根据输入序列中的不同位置之间的关系来分配权重。在每个注意力头中,模型计算一个加权的上下文表示,这个表示由输入序列中所有位置的嵌入向量组成。在自注意力机制中,每个位置都与其他位置进行交互,从而捕捉了输入序列中的全局信息。
B.多头注意力机制(Multi-Head Attention):
GPT-1中的注意力层通常使用多头注意力机制,它是一种并行处理多个自注意力机制的方法。在多头注意力中,模型通过在不同的注意力头之间学习不同的线性变换来捕获不同特征的表示。这使得模型能够在不同维度上学习到更丰富的信息。
C.前馈神经网络(Feed-Forward Neural Network):
在注意力层的每个注意力头之后,还有一个前馈神经网络。这个网络在特征空间中对注意力头的输出进行进一步的变换和处理。前馈神经网络通过全连接层和激活函数来捕捉更高级的语义和特征表示。
通过堆叠多个注意力层,GPT-1可以在不同层次上捕获输入序列的不同特征和关系。每个注意力层的输出都会作为下一个注意力层的输入,使模型可以逐层地理解文本序列。这种堆叠的注意力层架构使GPT-1能够在预训练阶段获取广泛的语言知识,并在微调阶段在特定任务上展现出色的性能。
位置编码:位置编码主要是帮助GPT模型理解输入序列中单词的相对位置关系。位置编码是为了解决Transformer中无法捕捉序列顺序信息的问题而引入的。
在GPT-1中,序列中的单词是无序的,而Transformer是一种无记忆的架构,不能直接感知单词的位置信息。为了克服这个问题,GPT-1使用位置编码将位置信息嵌入到输入的词嵌入向量中,从而使模型能够区分不同位置的单词。
位置编码的设计如下:
A.正弦和余弦函数:
GPT-1采用了一种相对简单而有效的方法,即通过正弦和余弦函数来计算位置编码。对于每个位置和每个维度,位置编码是一个由正弦和余弦函数组成的固定向量。具体来说,位置 $pos$ 和维度 $i$ 的位置编码计算如下:
$$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i / d_{\text{model}}}}\right)$$
$$PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i / d_{\text{model}}}}\right)$$
其中,$pos$ 是位置,$i$ 是维度索引,$d_{\text{model}}$ 是词嵌入维度。这样,对于每个位置和维度,模型都有一个对应的位置编码。
B.位置编码的融合:
位置编码和词嵌入向量在维度上相加,从而将位置信息嵌入到输入的词嵌入中。这样,模型在处理输入序列时,不仅可以考虑词汇的语义信息,还能感知到不同位置的相对关系。
通过引入位置编码,GPT-1使得模型能够在不同位置对单词的顺序信息进行建模,从而更好地捕捉上下文的关系。位置编码帮助GPT-1在处理输入序列时保持了序列的信息,有助于提高模型在自然语言处理任务中的性能。
残差连接:残差连接是一种重要的网络设计,用于解决深层神经网络中的梯度消失问题,从而帮助模型更好地学习输入数据的特征和关系,目前已经被用于各类网络模型中。
残差连接的主要思想是在神经网络的不同层之间引入直接的跨层连接,使得网络的输出可以通过跳跃连接传递到后续层,从而保留更多的原始信息和梯度。这有助于防止梯度在深层网络中消失或爆炸,使得网络可以更快地收敛和学习。
在GPT-1的Transformer架构中,残差连接的应用如下:
A.残差块:
每个Transformer的编码器和解码器层都由多头自注意力机制、前馈神经网络和残差连接组成的残差块构成。在每个残差块内部,输入经过自注意力机制或前馈神经网络处理后,与原始输入进行相加(残差连接),然后再进行归一化和变换。
B.跳跃连接:
在每个残差块中,输出是通过将输入与经过处理后的输出相加来获得的。这种跳跃连接允许梯度从输出直接传播回输入,而不会受到网络深度的影响。这有助于有效地传递信息和梯度,减少训练过程中的梯度消失问题。
通过在每个残差块中引入残差连接,GPT-1能够更好地训练深层的Transformer模型,从而学习更复杂的特征和关系。这种设计使得模型能够在大规模文本数据上进行自我训练,获得丰富的语言知识,进而在各种自然语言处理任务中表现出色。
3、GPT模型的训练过程
数据预处理:数据预处理是为了准备输入数据,使其适用于模型的训练。数据预处理是非常重要的,因为它影响模型的训练效果和性能。
以下是GPT-1数据预处理的一般步骤:
A.文本清理和标记化:
首先,将原始文本进行清理,去除一些特殊字符、HTML标签、多余的空格等。然后,将文本分割成句子或段落,并对每个句子或段落进行标记化,将其拆分为单词或子词。
B.词汇表构建:
构建一个词汇表,将标记化后的单词或子词映射到唯一的整数ID。词汇表的大小通常是预先定义的,包括一定数量的最常见的单词和子词。不常见的词汇可能会被统一为特殊的"UNK"标记。
C.位置编码:
在标记化的文本中,每个单词或子词都有一个位置。为了保留输入文本的顺序信息,需要为每个位置添加位置编码。这些位置编码是一种特殊的向量,表示该位置在序列中的相对位置。
D.序列截断和填充:
由于GPT-1的模型输入是固定长度的,需要将不同长度的句子或段落截断或填充到相同的长度。常用的填充标记是特殊的"PAD"标记。
E.生成训练样本:
GPT-1使用自监督学习,其中掩码语言模型是主要任务。为了生成训练样本,可以从输入文本中随机选择一些单词或子词,并将它们替换为特殊的"MASK"标记。这些被遮蔽的位置是模型需要预测的目标。
F.数据编码:
最后,将标记化后的文本转换为模型能够理解的数字表示,即使用词汇表将单词或子词映射到对应的ID。同时,也将位置编码加到每个单词或子词的嵌入向量中。
通过这些数据预处理步骤,原始文本被转换成适合GPT-1模型训练的数字表示。这些表示将成为模型的输入,用于预训练和微调阶段。数据预处理的质量和方法直接影响了模型在自然语言处理任务中的性能和效果。
训练阶段:GPT模型的训练阶段是构建其通用语言模型的关键部分,它使模型在大规模无标签文本数据上进行自我训练,从而获得丰富的语言知识。
以下是GPT-1训练阶段的详细介绍:
A.数据收集和清洗:
在训练阶段,首先需要收集大量的无标签文本数据。这些数据可以来自互联网、书籍、文章等各种来源。然后,对数据进行清洗和预处理,去除一些特殊字符、HTML标签、多余的空格等,以及对文本进行标记化。
B.数据预处理:
根据上一步骤得到的清洗后的文本,进行数据预处理。这包括将文本序列标记化并将单词或子词映射到整数ID,添加位置编码以保留顺序信息,以及生成用于掩码语言模型任务的训练样本。
C.构建模型:
在训练阶段,构建GPT-1模型,它由多层的Transformer解码器组成。这些解码器层包含自注意力机制、前馈神经网络和残差连接。模型的参数是随机初始化的。
D.掩码语言模型任务:
GPT-1的主要训练任务之一是掩码语言模型(Masked Language Modeling,MLM)任务。在这个任务中,随机遮蔽输入文本中的一些单词或子词,然后模型需要根据上下文预测这些被遮蔽的部分。这个任务鼓励模型学会捕捉词汇之间的关系、语义信息和上下文依赖关系。
E.无监督学习:
在训练阶段,模型通过自我监督学习进行无监督学习。模型通过最大化预测正确词汇的概率,从输入文本中学习丰富的语言知识,包括词汇、语法和上下文关系。
F.优化和训练:
在训练过程中,通过反向传播和梯度下降等优化算法,调整模型的参数,使得模型在预测掩码位置的词汇时表现得越来越准确。
通过训练阶段,GPT-1模型在大量无标签文本数据上进行了自我训练,积累了广泛的语言知识。这种通用性使得GPT-1在后续的特定任务中能够表现出色,展现出强大的自然语言处理能力。
下游任务:GPT-1(Generative Pre-trained Transformer 1)的训练阶段使其获得了通用的语言知识,但为了使模型在特定任务上表现出色,还需要进行微调。微调是将预训练的模型在特定任务的标注数据上进行有监督的训练,以适应该任务的要求。
以下是GPT-1的微调下游任务的介绍:
A.微调阶段:
在微调阶段,GPT-1的预训练模型被进一步训练以适应特定任务。在这个阶段,使用具有标注标签的数据集来调整模型的参数,使其在特定任务上产生更好的输出。微调的目标是根据任务的特性调整模型,从而使其在特定任务上取得更好的性能。
B.下游任务:
下游任务是指在特定应用领域中使用微调后的模型来解决具体问题。GPT-1通过预训练和微调的策略,能够在多种下游任务中展现出色的性能。以下是一些常见的下游任务,其中GPT-1可以取得显著的成果:
·文本分类:将文本分为不同的类别,如情感分析、新闻分类等。
·命名实体识别:识别文本中的命名实体,如人名、地名、机构名等。
·文本生成:生成与输入文本相关的补充文本,如对话生成、文章摘要等。
·机器翻译:将一种语言的文本翻译成另一种语言。
·问答系统:回答关于给定文本的问题,如阅读理解任务。
·语言模型微调:通过微调进一步提高语言模型的生成能力。
C.微调方法:
在微调阶段,可以采用不同的微调方法,如使用交叉熵损失函数进行有监督训练、调整学习率、使用不同的优化器等。微调的过程通常需要根据具体任务的性质进行调整和优化。
GPT-1的微调阶段是将预训练的通用语言模型适应到特定任务上的关键步骤。通过在不同的下游任务上进行微调,GPT-1能够在各种自然语言处理任务中表现出色,体现出其强大的通用性和泛化能力。
4、GPT模型的评估测试
生成文本质量评估:评估生成文本的质量是自然语言处理领域的一个重要挑战,特别是对于像GPT-1这样的生成模型。生成文本的质量可以从多个角度来考量,包括流畅性、一致性和相关性等。
以下是一些常用的方法和指标来评估生成文本的质量:
A.人工评估:
人工评估是最直接和准确的方法之一,它涉及人类评审员对生成文本进行主观判断。评审员可以根据生成文本的流畅性、一致性、相关性等方面来进行评分。虽然这种方法准确,但需要大量的人力资源和时间,且可能存在主观因素。
B.流畅性评估:
流畅性评估关注生成文本的语法正确性和通顺程度。可以使用语言模型来评估生成文本与预期的文本之间的匹配程度。流畅性可以通过计算生成文本的困惑度(Perplexity)来衡量,困惑度越低表示生成文本越流畅。
C.一致性评估:
一致性评估关注生成文本的内部逻辑和连贯性。检查生成文本中的逻辑错误、自相矛盾等问题。一种方法是将生成文本作为前提,然后使用模型评估生成文本是否与前提一致。
D.相关性评估:
相关性评估关注生成文本与任务或上下文的相关性。可以使用BLEU、ROUGE等指标来评估生成文本与参考文本之间的相似度。另外,可以将生成文本作为输入,进行下游任务评估,如文本分类、机器翻译等。
E.多样性评估:
生成文本的多样性是另一个重要的质量指标。可以使用不同的生成文本之间的重复度、多样性分布等来评估生成文本的多样性。
F.人类感知评估:
除了传统的定量评估方法,还可以进行人类感知评估,通过让人类参与者对生成文本进行主观评价来获取更真实的评估结果。
综合考虑以上方法和指标,通常需要采用多种评估方法来综合判断生成文本的质量。评估生成文本的质量是一个复杂的任务,需要结合主观评价和客观指标,以获得更全面的理解。
样本生成和解码策略:GPT-1(Generative Pre-trained Transformer 1)是一个生成文本的模型,可以通过输入一个前缀文本,生成与之相关的后续文本。在生成样本文本时,需要选择适当的解码策略。
以下是关于GPT-1样本生成和解码策略的介绍:
样本生成过程:
A.输入前缀文本:
要生成样本文本,首先需要提供一个前缀文本,作为模型的输入。这个前缀可以是一段话、一个句子或者更短的文本片段。
B.逐步生成:
模型从输入的前缀开始,逐步生成后续文本。在每个时间步,模型根据之前生成的文本和前缀的上下文,预测下一个可能的词汇。
C.采样策略:
在每个时间步,可以使用不同的采样策略来选择下一个词汇。常见的采样策略包括贪婪采样、随机采样和温度采样等。
解码策略:
A.贪婪解码:
贪婪解码是最简单的解码策略之一。在每个时间步,选择模型预测概率最高的词汇作为下一个词。虽然贪婪解码简单,但可能导致生成文本过于确定性,缺乏多样性。
B.随机采样:
随机采样是一种更随机的解码策略。在每个时间步,根据模型预测的概率分布,以一定的随机性选择下一个词汇。这种方法可以增加生成文本的多样性,但可能导致一些生成文本的不连贯或不合理。
C.束搜索(Beam Search):
束搜索是一种基于概率的解码策略,它在每个时间步选择若干个最有可能的词汇,然后在下一个时间步继续生成,保留概率最高的候选。束搜索可以在一定程度上平衡生成文本的流畅性和多样性。
D.温度采样:
温度采样通过引入温度参数来调整生成文本的随机性。较高的温度会增加选择次高概率词的概率,从而增加多样性。较低的温度则使生成更趋向于贪婪策略。
不同的解码策略在生成样本文本时会产生不同的结果。贪婪解码通常导致确定性结果,随机采样可以增加多样性,而束搜索则可以在一定程度上平衡两者。温度采样可以调整生成文本的随机性程度。在实际应用中,根据任务的要求和生成文本的需求,可以选择适合的解码策略。
5、GPT模型的应用场景
GPT-1(Generative Pre-trained Transformer 1)是一种强大的语言模型,具有广泛的应用场景,涵盖了许多自然语言处理任务。
由于其通用性和语言生成能力,GPT-1可以在以下多个应用场景中发挥作用:
A.文本生成:
GPT-1可以生成连贯、流畅的文本,如文章、故事、对话等。它可以用于自动写作、创作文学作品以及生成广告、描述等。
B.对话系统:
GPT-1可以作为聊天机器人的核心,与用户进行对话。它可以回答问题、提供信息、模拟不同的角色,用于客户服务、社交娱乐等领域。
C.文章摘要:
GPT-1可以自动将长文本压缩成简洁的摘要,用于新闻摘要、论文摘要等应用。
D.翻译:
虽然GPT-1不是专门的翻译模型,但在短文本翻译任务中也能发挥一定作用,将一种语言的文本翻译成另一种语言。
E.情感分析:
GPT-1可以分析文本的情感倾向,对用户评论、社交媒体帖子等进行情感分类。
F.生成代码:
GPT-1可以根据程序的要求生成代码片段,用于编程辅助、自动化代码生成等领域。
G.问题回答:
GPT-1可以回答用户提出的问题,用于问答系统、智能助手等应用。
H.文本纠错:
GPT-1可以根据上下文检测和纠正文本中的拼写错误、语法错误等。
6、GPT模型的相关问题
模型的局限性:尽管GPT-1在自然语言处理领域取得了显著的成就,但它也存在一些局限性。
以下是GPT-1的一些主要局限性:
A.缺乏实际理解能力:
GPT-1生成的文本通常是基于统计模式匹配,缺乏对文本真正理解的能力。它不能理解抽象概念、推理逻辑或跨文本的关系。
B.信息可信性问题:
GPT-1在预训练时从互联网等大量数据中学习,可能会学习到错误、不准确或有偏见的信息,导致生成的内容可能存在错误、虚假或偏见。
C.语境理解限制:
GPT-1的理解是基于局部的上下文,无法保持长期的记忆。在处理较长文本时,可能会忽略重要的语境信息。
D.生成内容的一致性和多样性平衡:
GPT-1在生成内容时,可能出现过于保守的倾向,生成内容相对单调和重复。或者在一些情况下,生成过于离散和不合理的内容。
E.无监督训练风险:
GPT-1是通过无监督训练获得语言知识的,这意味着它可能学习到不合适、有害或攻击性的内容,可能在生成文本时产生不当的言论。
F.任务特异性性能不足:
尽管GPT-1在通用性上表现优越,但在某些特定任务上的性能可能相对较弱,需要更专门的模型或方法。
G.大规模参数和计算需求:
GPT-1的大规模参数数量需要大量的计算资源来训练和推断。这使得部署和使用成本较高,对于资源受限的环境可能不适用。
H.过度自信问题:
GPT-1在生成文本时可能会表现出过度自信的倾向,即使生成的内容是错误的也可能自信地给出答案。
I.无法深入理解语义:
GPT-1的预训练模式无法深入理解文本背后的抽象语义,它只是从大量文本中学习了表面的关系。
数据隐私和伦理:GPT-1及其类似的大型语言模型在数据隐私和伦理问题上引发了一些关注和担忧。
以下是一些与GPT-1相关的数据隐私和伦理问题:
A.隐私泄露:
GPT-1在预训练阶段使用了大量的互联网文本数据,这些数据可能包含个人隐私信息。如果这些信息未经适当处理就被用于训练,可能导致隐私泄露。
B.敏感信息:
GPT-1生成的文本可能包含不合适、敏感、攻击性或歧视性内容。这可能在生成的文本中出现对某些人群或主题的不当言论。
C.知识产权问题:
GPT-1可能在其预训练数据中包含受版权保护的文本,这可能引发知识产权问题。另外,生成的文本也可能违反某些版权或知识产权规定。
D.数据偏见和歧视:
由于GPT-1的预训练数据来自互联网,其中可能存在偏见、歧视和不平衡的内容。模型可能从这些数据中学习到不合适的态度、偏见和刻板印象。
E.风险传播:
如果GPT-1生成不准确的信息或虚假的内容,这些内容可能被传播并影响公众,特别是当生成的内容被误认为是真实的信息时。
F.滥用和欺诈:
GPT-1的能力使其可以用于制作虚假信息、虚假评论、钓鱼攻击等,这可能导致欺诈行为。
G.人工智能劳动问题:
GPT-1等大型模型的使用可能影响到某些文本创作者、写手和编辑的工作机会,因为它们可以生成大量的文本内容。
H.人工与机器边界:
使用GPT-1生成的内容时,可能很难区分出生成文本的作者是人还是机器,这可能引发信任和透明度问题。
针对这些问题,研究人员、开发者和决策者需要认真考虑和解决。合适的数据处理、内容过滤、审查机制、透明度措施和伦理规范是确保GPT-1的使用不引发潜在问题的重要手段。同时,也需要关注社会、法律和道德层面的影响,并制定相关政策来指导和规范这些技术的使用。
模型的进化:GPT-1是大型语言模型的起始点,随后推出了一系列版本,包括GPT-2和GPT-3、GPT3.5、ChatGPT、GPT-4等等,以及其他一些类似的大型语言模型。这些版本在模型规模、性能和应用领域上都有不同程度的改进和变化。
随着时间的推移,研究人员和开发者对大型语言模型进行了多方面的改进和变体。这些改进包括使用更大的模型规模、更有效的训练技术、更准确的预训练任务、更精细的微调方法等。同时,还有研究在模型中引入额外的知识、推理能力和逻辑判断,以提升模型在真实世界任务中的表现。
ØGPT-2
GPT-2是OpenAI在2019年2月发布的模型。该模型包含15亿个参数。与GPT-1相比,GPT-2在模型设计和训练方法上进行了改进和扩展。
在模型设计方面,GPT-2使用了更深层数的Transformer模型架构,增加了更多的参数和更大的语料库,从而可以更好地理解和生成自然语言文本。此外,GPT-2还引入了一些新的技术,如“残差连接”(ResidualConnection)和“层归一化”(LayerNormalization)等,来提高模型的性能和稳定性。
在训练方法方面,GPT-2使用了“自我注意力和上下文注意力的混合”(MixtureofSelfandContextualAttention)技术,以及“预训练和微调”(Pre-trainingandFine-tuning)方法,来提高模型对于长文本序列的理解和生成能力。
GPT-2的原始论文是“ Language Models are Unsupervised Multitask Learners”(《语言模型是无监督的多任务学习者》),于2019年发表在《自然》杂志上。该论文由OpenAI的研究人员撰写,作者与GPT-1是同一批人。
GPT-2模型是基于GPT-1模型的迭代发展,通过增加更多的参数和更大的语料库,引入新的技术,以及改进训练方法,来提高模型的性能和稳定性,使其可以更好地理解和生成自然语言文本。与GPT-1相比,GPT-2在生成文本方面表现更加出色,可以生成新闻、故事、诗歌等不同类型的文本,同时在不同语言之间进行翻译的能力也得到了提升。此外,GPT-2还可以用于问答系统,回答各种自然语言问题。
关于GPT-2更详细的介绍和源码解析、训练实操等在工信部教考中心的《人工智能算法工程师》职业能力证书中有专题课程,从基本的理论到代码实操、模型训练使用,包括了完整的代码资料。
对GPT-1做完详细的介绍之后,本文已经超过一万多字,由于篇幅有限,本文后面的GPT版本暂时先做一个简要介绍,关于GPT-3、InstructGPT、ChatGPT等GPT-3.5系列模型,和LLaMA、ChatGLM模型的详细介绍将会在后续的文章和课程中持续更新。
ØGPT-3
2020年5月28日,OpenAI发布新模型GPT-3。GPT-3被设计用来回答各种自然语言问题,并提供相关的知识和信息。同年6月11日,OpenAI将GPT-3以API的方式向学术机构、商业公司和个人开发者提供了一些需要申请的体验资格,并在同年9月将GPT-3授权给微软公司。
对于所有任务,通过纯文本来指定任务和少量样本,GPT-3可以在无需任何梯度更新或微调的情况下被使用。对于GPT-3生成的新闻文章,评估员甚至无法区分其与人类撰写的新闻文章。
GPT-3在GPT-2的基础上进行了改进和扩展。它使用了更强大的Transformer模型架构,同时增加了更多的参数和更大的语料库,具有超过1750亿个参数,相比GPT-2,GPT-3在语言理解、生成和推理等方面表现更加出色,能够进行更加复杂的自然语言处理任务。此外,GPT-3还引入了一些新的技术,如“蒸馏”(Distillation)技术等,来提高模型的性能和稳定性。
GPT-3的原始论文是“Language Models are Few-Shot Learners”(《语言模型是一次性学习者》),于2020年发表在《自然》杂志上。该论文由OpenAI的研究人员撰写,其中包括Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan等作者。
GPT-3在各种自然语言处理任务中都表现出色,例如文本分类、命名实体识别、机器翻译、语言生成等。它也可以被用来解决很多人工智能的挑战,例如问答、自然语言对话、智能客服等。此外,GPT-3还可以进行零样本学习,即在没有任何样本数据的情况下学习并执行任务,这使得它在自然语言处理领域引起了极大的关注和兴趣。
ØInstructGPT
InstructGPT模型是由OpenAI在2022年3月发布的。该模型是基于GPT-3模型的改进版,被设计用来根据用户的指令生成自然语言文本,例如根据用户的描述生成文章、故事或诗歌等。
在GPT-3模型发布后,OpenAI的研究人员开始探索如何让模型更加符合人类的意图和语言规范。他们通过引入一种称为“指令重要性”(InstructionImportance)的新的损失函数,来更加注重模型对于人类指令的响应和生成。此外,他们还引入了一种称为“人工标注”(HumanFeedback)的数据集,用于训练模型对于人类意图的识别和理解。
GPT-3虽然在各大NLP任务以及文本生成的能力上令人惊艳,但是他仍然还是会生成一些带有偏见的,不真实的,有害的造成负面社会影响的信息,而且很多时候,他并不按人类喜欢的表达方式去说话。在这个背景下,OpenAI提出了一个概念“Alignment”,意思是模型输出与人类真实意图对齐,符合人类偏好。因此,为了让模型输出与用户意图更加“align”,就有了InstructGPT这个模型。
InstructGPT模型使用了一种称为“GPT-3Lite”的简化版模型架构,相比于GPT-3模型,它具有更少的参数和计算量。此外,该模型还引入了一种新的训练方法,通过结合自回归模型和生成式对话模型的特点,来提高模型的对话质量和效率。关于InstructGPT的技术方案,原文分为了三个步骤:有监督微调,奖励模型训练,强化学习训练;实际上可以把它拆分成两种技术方案,一个是有监督微调(SFT),一个是基于人类反馈的强化学习(RLHF)
GPT-3中的few-shot对于同一个下游任务,通常采用固定的任务描述方式,而且需要人去探索哪一种任务表述方式更好。显然这种模式与真实场景下用户的使用方式存在较大的gap,用户在向GPT-3提问时才不会采用某种固定的任务表述,而是随心所欲地以自己的说话习惯去表达某个需求。InstructGPT在SFT中标注的数据,正是为了消除这种模型预测与用户表达习惯之间的gap。在标注过程中,他们从GPT-3的用户真实请求中采样大量下游任务的描述,然后让标注人员对任务描述进行续写,从而得到该问题的高质量回答。这里用户真实请求又被称为某个任务的指令,即InstructGPT的核心思想“基于人类反馈的指令微调”。
InstructGPT模型的原始论文是“Training language models to follow instructions with human feedback”(《训练语言模型遵循人类反馈的指示》),InstructGPT的论文发布于2022年3月,不过OpenAI早在1月份就发布了相关博客。当时,OpenAI明确提到,InstructGPT利用了人类反馈的强化学习方法(RLHF)对GPT-3进行微调,使得该模型的输出更加符合人类偏好,这点在ChatGPT的训练中得到了延续。其中包括LongOuyang、JeffWu、XuJiang、DiogoAlmeida、CarrollL.Wainwright等作者。
InstructGPT模型的发展是基于GPT系列的研究和开发,通过引入新的损失函数、新的数据集和新的训练方法,来提高模型的对话质量和效率,使其更加符合人类的意图和语言规范。
ØGPT-3.5
GPT-3.5系列模型是GPT-3的微调版本,从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列:
lcode-davinci-002 是一个基础模型,非常适合纯代码完成任务
ltext-davinci-002 是一个基于 code-davinci-002 的 InstructGPT 模型
ltext-davinci-003 是对 text-davinci-002 的改进
lgpt-3.5-turbo-0301 是对 text-davinci-003 的改进,针对聊天进行了优化
GPT-3.5的发展路线是基于GPT系列的研究和开发。在GPT-3模型发布后,OpenAI的研究人员开始探索如何让模型更加符合人类的意图和语言规范。他们通过引入一种称为“指令重要性”(InstructionImportance)的新的损失函数,来更加注重模型对于人类指令的响应和生成。此外,他们还引入了一种称为“人工标注”(HumanFeedback)的数据集,用于训练模型对于人类意图的识别和理解。
GPT-3.5的相关论文是“Augmenting Reinforcement Learning with Human Feedback”(《利用人类反馈增强强化学习》),GPT3.5与 GPT-3 的主要区别在于,新加入了被称为 RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习)。这一训练范式增强了人类对模型输出结果的调节,并且对结果进行了更具理解性的排序。
GPT-3.5的发展是基于GPT系列的研究和开发,通过引入新的损失函数、新的数据集和新的训练方法,来提高模型的对话质量和效率,使其更加符合人类的意图和语言规范。GPT-3.5模型相比于GPT-3模型,它具有更少的参数和计算量。此外,该模型还引入了一种新的训练方法,通过结合自回归模型和生成式对话模型的特点,来提高模型的对话质量和效率。
与GPT-3相比,GPT-3.5在模型结构和训练方法上都有所创新。在模型结构方面,GPT-3.5增加了更多的层数和参数,从而使模型的表示能力更强,能够更好地处理复杂的自然语言任务。在训练方法方面,GPT-3.5采用了更加先进的自监督学习方法,能够更好地利用大量的未标注数据进行训练,从而提高模型的泛化能力。目前OpenAI官网免费开放使用的版本也是GPT3.5。
ØChatGPT
ChatGPT是在2022年初完成训练的GPT-3.5系列的基础上进行微调的。ChatGPT和GPT 3.5在Azure AI超级计算基础设施上进行了训练。ChatGPT具备强大的自然语言处理能力,可以像人类一样进行对话,并根据对话内容进行智能回复。与传统的聊天机器人不同,它们的设计目的、模型规模、应用场景等方面都有所不同。ChatGPT的回答更加自然、流畅,可以模拟人类的对话风格。
根据OpenAI官网的介绍,ChatGPT是InstructGPT的兄弟模型,后者经过训练,可以遵循提示中的指示并提供详细的响应。OpenAI使用来自人类反馈的强化学习(RLHF)训练ChatGPT模型,使用与InstructGPT相同的方法,但在数据收集设置上略有不同。首先使用监督微调训练了一个初始模型:人类人工智能训练师提供对话,他们在其中扮演双方——用户和人工智能助手。然后提供模型撰写的建议,以帮助撰写回答。我们将这个新的对话数据集与 InstructGPT 数据集混合,并将其转换为对话格式。
为了创建强化学习的奖励模型,需要收集比较数据,其中包括两个或多个按质量排名的模型响应。为了收集这些数据,工程师进行了人工智能培训师与聊天机器人的对话。然后随机选择了一个模型编写的消息,抽样了几个轮次完成,并让AI培训师对它们进行排名。使用这些奖励模型,可以通过以下方式微调模型近端策略优化.我们执行了此过程的多次迭代。
ChatGPT 有时会给出似是而非但不正确或荒谬的答案。解决此问题具有挑战性,因为:
l在 RL 培训期间,目前没有事实来源;
l训练模型更加谨慎,导致它拒绝可以正确回答的问题;
l监督训练误导了模型,因为理想的答案取决于模型知道什么,而非人类演示者所知道的。
ChatGPT 对调整输入措辞或多次尝试相同的提示很敏感。例如,给定一个问题的措辞,模型可以声称不知道答案,但稍微改写提示一下,就可以正确回答,这也是源于ChatGPT的prompting机制。
理想情况下,当用户提供不明确的查询时,模型会提出澄清问题。实际目前的模型通常会猜测用户的意图。
虽然使用者可以使模型拒绝不适当的请求,但它有时还是会响应有害指令或表现出有偏见的行为。目前OpenAI正在使用审核接口警告或阻止某些类型的不安全内容,但目前任然有一些漏报和误报。
下面是ChatGPT 相关的论文:
1、《Interactively Shaping Agents via Human Reinforcement》:ChatGPT 中的 TAMER(Training an Agent Manually via Evaluative Reinforcement,评估式强化人工训练代理)框架,将人类标记者引入到 Agents 的学习循环中,可以通过人类向 Agents 提供奖励反馈(即指导 Agents 进行训练),从而快速达到训练任务目标。
2、《Proximal Policy Optimization Algorithms》:PPO(Proximal Policy Optimization,近端策略优化)强化学习模型,是 ChatGPT 训练的第三阶段。
3、《Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers:What learning algorithm is in-context learning? Investigations with linear models》
4、《What learning algorithm is in-context learning? Investigations with linear models》:ChatGPT 训练时的输入使用的是 Prompt,Prompt 是研究者们为了下游任务设计出来的一种输入形式或模板,它能够帮助预训练模型“回忆”起自己在预训练时“学习”到的东西。
ØGPT-4
GPT-4是OpenAI在2023年3月14日正式发布的新模型,根据OpenAI官方博客的介绍,GPT-4在许多方面都表现得比ChatGPT更加优秀,包括更强的创造力、更准确的对话理解、更丰富的多任务能力和更全面的性能提升。
与ChatGPT 相比,GPT-4采用了更复杂的模型架构和更多的参数,以应对自然语言处理任务的日益复杂性和多样性。此外,GPT-4还采用了更广泛的数据集和更多的训练数据,以增加模型的泛化和适应能力。另外,GPT-4还引入了强化学习和其他先进的技术,以进一步优化模型的性能和对话质量。
GPT-4是在GPT系列模型的基础上不断发展和迭代而来的,其发展路线包括不断增加模型参数、改进模型结构、采用更多的训练数据和引入先进的技术等。随着技术的不断进步和发展,相信GPT-4将会在未来的自然语言处理领域发挥更加重要的作用。
GPT4是一个大型的多模态模型,虽然在许多现实世界场景中的能力不如人类,但在各种专业和学术基准上表现出人类水平的表现。例如,它通过模拟律师考试,分数在应试者的前 10% 左右;相比之下,GPT-3.5 的得分在倒数 10% 左右。OpenAI花了 6 个月的时间,使用对抗性测试程序和 ChatGPT 的经验教训迭代调整 GPT-4,从而在真实性、可控性和拒绝超出回答边界方面取得了有史以来最好的结果(尽管远非完美)。
GPT-4是一个基于transformer的预训练模型,用于预测文档中的下一个标记。训练后的调整过程会提高对事实的衡量和对期望行为的坚持。这个项目的一个核心组成部分是开发基础设施和优化方法,这些方法可以在大范围内预测行为。GPT4目前是收费使用。
GPT-4和GPT-3.5对比来看,有以下几个区别:
l在处理复杂任务上,GPT-4更可靠、更有创意,并且能够处理更细微的指令。
l各种奥林匹克竞赛、GRE考试、代码考试、统一律师考试等测试上,GPT-4都基本完胜GPT-3.5。
l在机器学习的一些基准测试集上,也表现更加突出,达到了SOTA的水准,比大部分的语言模型效果要好。
GPT-4到目前为止并没有发布过多的技术细节,以下是相关的报告和论文:
1、《GPT-4 Technical Report》:本报告主要介绍GPT-4的功能、限制和安全特性。GPT-4是一个transformer风格的模型预训练,用于预测文档中的下一个令牌,使用公开可用数据(如互联网数据)和第三方提供商授权的数据。然后使用来自人类反馈的强化学习(RLHF)对模型进行微调。考虑到竞争格局和大型模型(如GPT-4)的安全影响,本报告没有包含有关架构(包括模型大小)、硬件、训练计算、数据集构造、训练方法或类似内容的进一步细节。
2、《Sparks of Artificial General Intelligence: Early experiments with GPT-4》 :3月22日,微软发布了一篇长达154页的论文《Sparks of Artificial General Intelligence: Early experiments with GPT-4》,公布对GPT-4展开的全面能力测试结果。在涉及语言、数学、编码、视觉、医学、法律、心理学等跨领域任务中,不需要任何特别提示,GPT-4就能完成任务。
“GPT-4语言模型可以被视为AGI(Artificial General Intelligence,通用人工智能)的早期版本。”微软研究院的研究人员在论文结尾说。
ØLLaMA
LLaMA(Large Language Model Meta AI),由 Meta AI 发布的一个开放且高效的大型基础语言模型,共有7B、13B、33B、65B(650 亿)四种版本。其数据集来源都是公开数据集,无任何定制数据集,保证了其工作与开源兼容和可复现,整个训练数据集在 token 化之后大约包含 1.4T 的 token。
关于模型性能,LLaMA 的性能非常优异:具有 130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过GPT-3( 参数量达 1750 亿),而且可以在单块 V100 GPU 上运行;而最大的 650 亿参数的 LLaMA 模型可以媲美谷歌的 Chinchilla-70B 和 PaLM-540B。
关于训练集,其来源都是公开数据集,无任何定制数据集,保证了其工作与开源兼容和可复现。整个训练数据集在 token 化之后大约包含 1.4T 的 token。其中,LLaMA-65B 和 LLaMA-33B 是在 1.4万亿个token 上训练的,而最小的模型 LLaMA-7B 是在 1万亿个 token 上训练的。
随着Meta开源的7B——65B LLaMA大模型的发展,激发了各大AI企业打造类ChatGPT的热情,并由此衍生出Alpaca、Vicuna、ColossalChat等微调项目。
但LLaMA只开源了模型权重且限制商业使用,微调能够提升和注入的知识与能力也相对有限。对于真正投身大模型浪潮的企业来说,仍必须预训练自己的核心大模型。
为此,开源社区也做了诸多努力:
RedPajama:开源可商用类LLaMA数据集,无训练代码和模型
OpenLLaMA:开源可商用类LLaMA 7B, 13B模型,使用EasyLM基于JAX和TPU训练
Falcon:开源可商用类LLaMA 7B, 40B模型,无训练代码
继LLaMA开源后,Meta今天联手微软高调开源Llama 2,一共有7B、13B、70B三个版本。Llama 2接受了2万亿个token训练,上下文长度4k,是Llama 1的2倍。微调模型已在超100万个人类标注中进行了训练。
Llama 2的表现更是秒杀许多开源语言模型,在推理、编码、能力和知识测试上取得了SOTA。
据说Llama 2不仅可以研究,甚至能免费商用!
Llama-2相比Llama-1有不少技术层面的改进,从而带来了模型性能、推理效率以及安全性等方面的有效提升。具体而言,重要的改进有以下几点:
Llama 2 模型接受了 2 万亿个标记的训练,上下文长度是 Llama 1 的两倍。Llama-2-chat 模型还接受了超过 100 万个新的人类注释的训练。
Llama 2训练语料相比LLaMA多出40%,上下文长度是由之前的2048升级到4096,可以理解和生成更长的文本。
从人类反馈中强化学习,除了Llama 2版本,还发布了LLaMA-2-chat ,使用来自人类反馈的强化学习来确保安全性和帮助性。
LLaMA系列论文:
1、《LLaMA: Open and Efficient Foundation Language Models》
2、《LLaMA 2: Open Foundation and Fine-Tuned Chat Models》
ØChatGLM
ChatGLM 是由清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型 ,它采用了深度学习技术,能够对自然语言文本进行建模,并且具备语言生成和对话的能力。
ChatGLM 是一个基于千亿基座模型 GLM-130B 开发的对话机器人,具有问答、多轮对话和代码生成功能。目前,ChatGLM有两个版本:千亿参数的 ChatGLM(内测版)和 62 亿参数的 ChatGLM-6B(开源版)。ChatGLM-6B 是在2023年3月14日正式开源的,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM 的技术基础是 GLM-130B,这是一个包含多目标函数的自回归预训练模型,同时支持中文和英文,并且在多个自然语言处理任务上优于其他千亿规模的模型。
ChatGLM 的性能表现也十分出色。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。而千亿参数的 ChatGLM 则更进一步,在问答和对话方面具有更强大的能力。例如,ChatGLM 可以根据用户提供的主题和语言来生成不同风格和内容的文本,也可以根据用户提供的代码需求来生成相应的代码片段。此外,在开源社区作者的加持下,基于ChatGLM-6B的变种项目还可以处理图像输入,实现图像理解和多模态对话。
ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型ChatGLM,ChatGLM2-6B的推理速度提升了42%,上下文长度由2K扩展到了32K,在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升。ChatGLM2对学术研究完全开放,允许申请商用授权。
除此之外,ChatGLM2-6B能够生成更长的上下文,基于 FlashAttention 技术,将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。以及实现了更高效的推理,基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用,在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
ChatGLM系列论文:《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》
Ø其他
关于AIGC领域的大模型、以及GPT系列的开源模型还有很多,比如谷歌已经发布的多模态模型PaLM1、PaLM2,和谷歌旗下DeepMind团队正紧锣密鼓在准备的Gemini模型,据说近期即将发布,Gemini模型将合并AlphaGo和GPT-4等大模型的语言功能,旨在赋予系统新的能力,如规划或解决问题,并力求超越OpenAI的GPT-4模型,听着都很激动。DeepMind前创始人之一也发布了自己新公司的Inflection模型,该模型是由Google人工智能实验室DeepMind的创始人之一的Mustafa Suleyman创办,公司仅仅成立一年多的时间,就形成如此局面,足以看出Inflection强劲实力。而且Inflection已自OpenAI、DeepMind和Google找来许多过去曾协助打造语言模型的AI专家,目前的团队已达到35人,科研团队实力强劲。还有阿联酋阿布扎比的技术创新研究所(TII)近期刚发布的具有1800多亿参数的Falcon模型,通过3.5万亿token训练,性能远超Llama2,堪比GPT4。最大的模型是40B,在AWS上384个GPU上训练了两个月,中东土豪真的是不缺钱啊。最后这个模型还直接免费给大家商用了,不得不说这格局打开了就是不一样啊。
除了以上的通用大模型之外,还有一些专用大模型也发展迅速,比如专攻数学方向的MathGPT;专攻医疗方向的MedGPT;还有专攻代码方向的CodeGPT、CodeLlama模型,以及其他各领域的专用模型。想必未来专用大模型的发展和应用会远超通用大模型,不要问为什么,想一想人类的发展就清楚了,没有人会是完全的通才,模型的发展也一样,MathGPT做数学肯定比ChatGPT强,CodeGPT写代码也肯定比ChatGPT强。未来ChatGPT的这类通用模型在实际应用中的比例将会逐渐下降,会被各类专用模型替代,想要在一个领域发展的更好,就需要专才,而非通才。
本文只对常见的一些模型做了简单介绍,梳理了一下GPT的发展路线和各个版本的区别,至于更加详细的技术内容,我们将会在后期的文章和课程中持续更新,欢迎大家关注!