Transformer模型-Input Embedding 嵌入层的简明介绍

今天介绍transformer模型的Input Embedding 嵌入层。

背景

嵌入层的目标是使模型能够更多地了解单词、标记或其他输入之间的关系。

从头开始嵌入Embeddings from Scratch

嵌入序列需要分词器tokenizer、词汇表和索引,以及词汇表中每个单词的三维嵌入。Embedding a sequence requires a tokenizer, a vocabulary of words and their indices, and a three-dimensional embedding for each word in the vocabulary. 

  1. 分词器将序列分割为其标记tokens。
  2. 创建分词器后,可以为示例创建词汇表vocabulary 。词汇表包含构成数据的唯一单词列表。现在可以使用该词汇表将任何标记序列转换为其整数表示形式。
  3. 下一步是创建嵌入层,它只不过是一个大小为(vocab_size, d_model)的随机值矩阵。这些值可以使用torch.rand生成。
  4. 创建嵌入后,可以使用索引序列为每个标记选择适当的嵌入。


使用 PyTorch 模块实现嵌入

 PyTorch 来实现变压器,可以使用nn.Embedding模块。

Embedding — PyTorch 2.2 documentation

理解(batch_size、seq_length、d_model):

  • batch_size:一次提供的序列总数。
  • seq_length:标记化后每个序列中的单词或标记的总数。
  • d_model:嵌入每个标记后模型的大小。

如需代码实现,请参看原文链接:

https://medium.com/@hunter-j-phillips/the-embedding-layer-27d9c980d124

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ankie(资深技术项目经理)

打赏就是赞赏,感谢你的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值