摘要:随着人工智能技术的迅猛发展,大规模预训练模型(通常被称为“大模型”)如GPT、BERT等在自然语言处理、计算机视觉等领域展现了极其强大的能力。但对于很多人来说,一个常见的疑问是:大模型的训练,到底训练的是什么?
随着人工智能技术的迅猛发展,大规模预训练模型(通常被称为“大模型”)如GPT、BERT等在自然语言处理、计算机视觉等领域展现了极其强大的能力。但对于很多人来说,一个常见的疑问是:大模型的训练,到底训练的是什么?
在这篇文章中,我们将深入探讨大模型训练的核心机制,重点分析它们如何通过训练来“学习”并存储知识,以及这些模型训练过程中数学和计算细节。
大模型的训练从词嵌入(Word Embeddings)开始,词嵌入是将文本中的每个token(如单词、子词、字符等)映射到一个高维向量空间中。这个向量称为嵌入向量。
文本指的是所有用于训练的数据,包括来自书籍、文章、新闻、社交媒体、维基百科等不同来源的海量文本。
训练前,这些向量通常是随机初始化的,模型需要通过训练来逐步调整这些向量的值,使得它们能够反映语义和上下文关系。
训练的开始并不意味着每个token的向量都能完美地代表它的语义,而是模型通过训练数据学习如何调整这些向量,以使它们能够反映更多的语言规律和语义特征。在大多数现代深度学习模型中,每个token(例如一个单词、子词或字符)都会被映射到一个高维向量。这个向量通常有几百到几千维。
维度(Dimensions)指的是向量中数值的数量。比如,向量 [0.1,0.3,−0.4,1.2][0.1, 0.3, -0.4, 1.2][0.1,0.3,−0.4,1.2] 是一个4维向量,它有4个数值。但在实际的预训练模型中,嵌入向量的维度通常会更高。例如:BERT-base的嵌入维度是768维。BERT-large的嵌入维度是1024维。GPT-2的嵌入维度也是768维。GPT-3的嵌入维度达到12288维。大模型如GPT、BERT等通常使用自注意力机制(Self-Attention)来捕捉词语之间的上下文关系。自注意力机制的目标是通过计算每个token与其他token之间的关系来调整每个token的表示,从而使得模型能够理解每个词的上下文信息。
训练过程中的自注意力机制:
在训练过程中,自注意力机制的主要作用是计算每个token与其他tokens之间的关系,并根据这些关系调整每个token的表示。模型通过反向传播和梯度下降来优化模型的权重(包括自注意力机制中的权重),使得模型能够更好地捕捉语义关系和上下文信息。
训练时,自注意力机制帮助模型决定如何“关注”输入序列中的不同部分,基于上下文调整每个token的表示。通过多个注意力头,模型能够捕捉到不同的上下文信息和语义特征,最终使得每个token的表示能够反映出更准确的语义。使用过程中的自注意力机制:
在模型使用过程中(也就是推理或预测阶段),自注意力机制仍然会使用,但是不再进行梯度更新和权重优化。模型使用在训练过程中学到的权重和嵌入向量,通过自注意力机制计算每个token与其他tokens的关系,生成适应当前输入的表示。
推理时,模型会利用训练好的权重和自注意力机制,依据给定的输入(比如一个句子或段落),计算上下文之间的相互关系,并基于这些关系动态调整每个token的表示。例如,在生成文本时,模型会根据前面生成的单词(tokens)来计算接下来最合适的单词。多头注意力机制(Multi-Head Attention)是自注意力的一种扩展,它通过并行计算多个注意力头,捕捉不同的语义特征。在每个注意力头中,模型会学习不同的语义方向,从而使得每个token的表示能够从多个角度理解。
例如,一个注意力头可能专注于捕捉名词之间的关系,而另一个可能专注于动词与名词之间的关系。最终,多个注意力头的输出会被合并,从而形成一个更全面的token表示。
此外,多层Transformer结构让模型能够逐层处理数据。每一层的输出都会作为下一层的输入,在不断深层的处理过程中,模型能够逐步抽象出更复杂、更高级的语义信息。
在传统的循环神经网络(RNN)中,序列顺序是通过网络的递归结构来编码的。而Transformer模型(如GPT、BERT)没有这种递归结构,因此需要位置编码(Positional Encoding)来引入词语的顺序信息。
位置编码是一个与输入嵌入向量相加的向量,它通过不同的方式(例如正弦函数)生成,旨在给每个token的嵌入向量加入一个表示顺序的额外信息。这使得模型能够理解序列中的单词是按什么顺序排列的,从而更好地捕捉到词语的顺序依赖性。
训练一个大模型的核心是反向传播(Backpropagation)和梯度下降(Gradient Descent)算法。在每次前向传播后,模型会计算预测结果与实际目标之间的误差,这个误差将通过反向传播算法传递到模型的每一层,更新所有层的权重。
权重的更新过程是通过梯度下降实现的。梯度下降通过计算每个权重的梯度(即误差相对于权重的导数),告诉模型每个权重需要调整的方向和幅度。通过反复计算误差和更新权重,模型逐渐优化这些权重,使得它们能够更好地拟合数据,从而提升预测性能。
在大模型的训练过程中,模型学习到的知识和语义信息通过权重存储。每个权重矩阵中的值代表了词与词之间的关系、上下文信息以及其他复杂的语言规律。权重会在整个训练过程中不断更新,最终通过权重矩阵的具体数值“记住”语言的规律和模式。
这些权重被存储在模型的各层网络中,尤其是嵌入层、注意力层和前馈神经网络中。在训练结束后,这些权重会被保存到文件中,以便后续的推理或再训练。
大模型的训练实际上是通过大量数据反复调整权重,以使模型能够学习到语言的结构和语义。训练过程中,模型学习到的并不仅仅是单个词的词向量,而是如何通过权重和网络结构捕捉到词与词之间的关系、语法结构、上下文依赖以及复杂的语言特征。通过自注意力机制和多层次的表示,模型能够根据上下文动态地调整每个词的表示,并最终存储所有的知识和语义信息。
这些知识和语义信息通过模型的权重进行存储,最终帮助模型生成连贯、相关的文本并进行有效的推理与决策。因此,模型的训练过程可以视为一种不断学习、调整和优化权重的过程,以便最终能够在实际任务中做出精准的预测和生成。
来源:老胡科学