Transformer 动画讲解:数据处理的四大关键步骤

65 篇文章 2 订阅
12 篇文章 2 订阅

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

汇总合集

《大模型面试宝典》(2024版) 发布!
《大模型实战宝典》(2024版) 发布!


Transformer 大模型,一种基于自注意力机制的神经网络架构,已被广泛应用于各种自然语言处理任务,比如:机器翻译、文本摘要、生成问答等。

图片

从端到端的角度来看,Transformer 大模型中数据的处理流程主要包括四个阶段:首先是嵌入阶段(Embedding),随后是注意力机制阶段(Attention),然后是通过多层感知机(MLPs)进行处理,最后是从模型的表示转换到最终输出的解嵌入阶段(Unembedding),如下图所示:

图片

图:Embedding -> Attention -> MLPs -> Unembedding

下面是对这四个阶段的简要介绍。

Embedding(嵌入)阶段

大模型的输入通常由离散的词汇或符号组成(比如:在英文文本中,每个单词或标点符号都是一个单独的符号)。嵌入层的作用是将这些离散的符号转换成连续的、具有固定维度的向量(通常称为词嵌入)。这些向量能够捕获符号的语义以及上下文信息。

图片

在Transformer 大模型中,无论是编码器(Encoder)还是解码器(Decoder),都包含一个嵌入层。此外,在解码器中,还会添加一个位置嵌入(Positional Embedding)层,用于记录序列中单词的位置信息,这是因为 Transformer 大模型不通过 RNN 或 CNN 等传统结构来直接捕捉序列的顺序信息。

图片

Attention (注意力机制)阶段

注意力机制构成了 Transformer 大模型的基石,它使得大模型能够在产生当前输出时聚焦于输入序列中的各个部分。Transformer 大模型采用了多种类型的注意力机制,其中包括自注意力(Self-Attention)、编码器-解码器注意力(Encoder-Decoder Attention)以及掩码多头注意力(Masked Multi-Head Attention)。

图片

自注意力机制使得大模型能够识别序列内不同位置之间的相互关系,进而把握序列的内在结构。编码器-解码器注意力机制则使得大模型在输出生成过程中能够针对输入序列的特定部分给予关注。在注意力机制的运算过程中,会生成一个注意力权重矩阵,该矩阵揭示了输入序列中每个位置对于当前位置的贡献程度。

图片

MLPs(多层感知机,也称为前馈神经网络)阶段

在注意力机制处理之后,大模型会利用一个或多个全连接层(也称为前馈网络或 MLPs)来进行更深层次的变换和特征提取。

图片

这些全连接层能够捕捉输入数据中的非线性关系,并辅助模型识别更复杂的模式。在 Transformer 大模型中,MLPs 一般被置于自注意力层和归一化层之间,共同构成了所谓的“编码器块”或“解码器块”。

图片

Unembedding(从模型表示到最终输出)阶段

这一过程可以被视作从大模型的内部表示到最终输出格式的转换。

在文本生成任务中,比如:机器翻译,解码器的输出将通过一个线性层和一个 Softmax 函数,以产生一个概率分布,该分布反映了下一个输出词(token)的概率。

图片

而在其他类型的任务中,比如:文本分类,解码器的输出可能直接用于损失函数的计算(比如:交叉熵损失),或者通过其他方法转换成最终的预测结果。

图片

技术交流

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗面试与技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2040,备注:技术交流+CSDN

用通俗易懂的方式讲解系列

  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Transformer 模型在自然语言处理任务中广泛应用,数据处理是构建 Transformer 模型的重要步骤之一。下面是一些常见的 Transformer 数据处理方法: 1. 分词(Tokenization):将输入文本切分成单个的词或者子词(subwords)。常用的分词工具有 spaCy、NLTK 和 Hugging Face 的 tokenizers 库。 2. 生成词汇表(Vocabulary Generation):根据训练数据生成词汇表或者子词表。可以使用库中的工具实现,例如 Hugging Face 的 tokenizers 库提供了 `train_tokenizer` 函数来生成子词表。 3. 编码(Encoding):将分词后的文本转换为模型可以处理的张量形式。通常使用整数编码或者单词嵌入(word embedding)来表示每个词或子词。可以使用库中的工具实现,例如 TensorFlow 和 PyTorch 提供了相应的 API。 4. 填充(Padding):由于输入序列的长度不一致,需要进行填充操作使得输入序列具有相同的长度。常用的填充方式是在较短的序列后面添加特殊的填充标记。 5. 生成样本对:在训练过程中,Transformer 模型通常需要输入和输出对应的样本对。例如,在翻译任务中,一个样本对包括源语言句子和目标语言句子。 6. 批处理(Batching):为了高效地进行训练,可以将多个样本对组成一个批次进行并行计算。通常使用数据加载器(data loader)来管理批处理过程。 7. 数据增强(Data Augmentation):为了增加训练数据的多样性,可以通过对原始数据进行随机扰动或变换来生成新的训练样本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值