使用Python的NLTK或SpaCy等库,可以进行文本tokenize。然后过滤语料,移除过长和过短的句子。随后构建词表,一般限制词表大小在5万以内,对生僻词使用"UNK"表示。...将文本转化为词表索引的序列,统一句子长度为固定值,短句后补PAD,长句截断。为了训练,我们生成输入序列和目标序列,输入SHIFT右移一个位置。这样就得到了Transformer的训练样本。...二、环境配置Transformer依赖较新的深度学习框架,这里我们使用TensorFlow 2.x版本。可以在GPU服务器或笔记本上安装,也可以使用云服务中的GPU资源。...前馈网络通常是两个Dense层的堆叠。最后用Add和LayerNormalization连接起来。在模型编译时,需要准备Mask遮蔽和位置编码层。还要定义自定义的训练损失为稀疏分类交叉熵。...在训练循环中,从tf.data队列中按批次读取数据,采用teacher forcing方式。将模型输出与目标计算交叉熵损失。