一文彻底搞懂Transformer - Input(输入)

admin2024-07-03  14

一、输入嵌入(Input Embedding)

        词嵌入(Word Embedding):词嵌入是最基本的嵌入形式,它将词汇表中的每个单词映射到一个固定大小的向量上。这个向量通常是通过训练得到的,能够捕捉单词之间的语义关系。

        在Transformer中,词嵌入层通常是一个可学习的参数矩阵,其中每一行对应词汇表中的一个单词的嵌入向量。

        假设词汇表大小为12288,嵌入向量的维度为128,则嵌入层会将输入文本中的每个单词映射到一个128维的向量上。

一文彻底搞懂Transformer - Input(输入),第1张

                                                (12288,128)嵌入矩阵

二、位置编码(Positional Encoding

        位置编码(Positional Encoding):Transformer模型完全基于注意力机制,它本身并不包含循环或卷积结构,无法直接理解输入序列中单词的顺序信息。为了弥补这一缺陷,Transformer引入了位置编码来为模型提供单词在序列中的位置信息。

一文彻底搞懂Transformer - Input(输入),第2张

                                                                        位置编码

        位置编码通过一组正弦和余弦函数来实现,这些函数的频率和相位随着位置的不同而变化。位置编码的维度与嵌入向量的维度相同,可以将它们直接相加到嵌入向量上。

一文彻底搞懂Transformer - Input(输入),第3张

        假设嵌入向量的维度为128,输入序列的最大长度为12288,则可以生成一个形状为(12888, 128)的位置编码矩阵。对于序列中的每个位置,都会有一个对应的128维向量来表示其位置信息。

一文彻底搞懂Transformer - Input(输入),第4张

                                                (12288,128)位置编码矩阵

三、Transformer输入处理流程

        Transformer输入处理流程:将预处理后的文本通过分词转换为Token,再将这些Token通过词嵌入转换为高维向量,并添加位置编码以保留顺序信息,最后作为输入传递给Transformer编码器。

  • 文本预处理:将输入的文本数据进行预处理,包括分词(将文本拆分成单词或子词单元)、转换为小写、去除停用词等。这一步通常由分词器(Tokenizer)完成。

  • 一文彻底搞懂Transformer - Input(输入),第5张

  • 构建嵌入向量:将预处理后的文本数据通过词嵌入层转换为嵌入向量。这一步是将文本数据转换为模型可以处理的数值形式的关键步骤。

  • 一文彻底搞懂Transformer - Input(输入),第6张

  • 添加位置编码:为每个嵌入向量添加位置编码,以提供单词在序列中的位置信息。这通常是通过将位置编码向量与嵌入向量相加来实现的。

  • 一文彻底搞懂Transformer - Input(输入),第7张

  • 输入到Transformer模型:将添加了位置编码的嵌入向量作为输入传递给Transformer模型的编码器部分。编码器会利用自注意力机制和其他组件对输入序列进行处理,并生成输出序列的表示。

  • 一文彻底搞懂Transformer - Input(输入),第8张

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!