使用PyTorch对Sequence模型进行排序
该存储库包含PyTorch中的Sequence to Sequence(Seq2Seq)模型的实现
目前它有以下实现:
* Vanilla Sequence to Sequence models
* Attention based Sequence to Sequence models from https://arxiv.org/abs/1409.0473 and https://arxiv.org/abs/1508.04025
* Faster attention mechanisms using dot products between the **final** encoder and decoder hidden states
* Sequence to Sequence autoencoders (experimental)
序列到序列模型
在https://arxiv.org/abs/1409.3215,https://arxiv.org/abs/1406.1078中提供的序列模型的香草序列使用诸如LSTM(http://dl.acm)之类的递归神经网络。 .org / citation.cfm?id = 1246450)或GRU(https://arxiv.org/abs/1412.3555)将源语言中的单词或字符序列编码为固定长度的矢量表示,然后从该表示中解码使用目标语言中的另一个RNN 。
在https://arxiv.org/abs/1409.0473中提供了序列扩展到包含注意机制的序列模型,该序列使用来自deocder RNN中每个时间步骤的源语言中RNN隐藏状态的信息。这种注意机制显着提高了机器翻译等任务的性能。https://arxiv.org/abs/1508.04025中介绍了机器翻译任务的注意模型的一些变体。
存储库还包含一种更简单,更快速的注意机制变体,它不会在deocder的每个时间步骤中参与编码器的隐藏状态。相反,它在解码器处理了目标中的所有输入之后计算解码器和编码器的所有隐藏状态之间的单个批处理点积。然而,这在模型性能方面的成本很小。该模型的一个优点是可以在基于注意力的解码器中使用cuDNN LSTM,因为在通过解码器中的所有输入之后计算注意力。
英语 - 法语WMT14的结果
下面介绍了在WMT14英语 - 法语数据集上进行培训时获得的模型体系结构和结果。训练数据是来自Europral-v7的英语 - 法语双文。验证数据集是newstest2011
通过以下配置训练模型
* Source and target word embedding dimensions - 512
* Source and target LSTM hidden dimensions - 1024
* Encoder - 2 Layer Bidirectional LSTM
* Decoder - 1 Layer LSTM
* Optimization - ADAM with a learning rate of 0.0001 and batch size of 80
* Decoding - Greedy decoding (argmax)
| 型号| BLEU | 每个时期的列车时间| | ------------- | ------------- | ------------- | | Seq2Seq | 11.82 | 2小时50分钟| | Seq2Seq FastAttention | 18.89 | 3小时45分钟| | Seq2Seq注意| 22.60 | 4小时47分钟|
据报道,时报报道使用的是Pre 2016 Nvidia GeForce Titan X.
运行
要运行,请编辑配置文件并执行python nmt.py --config
注意:目前仅在GPU上运行。