
摘要
尽管随机梯度下降(SGD)算法需要在每个训练周期之间对训练数据进行洗牌,但目前所有的词级语言模型系统均未实现这一点。简单地将训练数据中的所有句子随机打乱将无法让模型学习到句子之间的依赖关系。本文提出了一种在训练周期之间部分洗牌训练数据的方法。该方法使得每个批次的数据都是随机的,同时保留了大部分句子的顺序。此方法在Penn Treebank和WikiText-2数据集上的词级语言模型任务中取得了新的最佳结果。
代码仓库
ofirpress/PartialShuffle
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| language-modelling-on-penn-treebank-word | AWD-LSTM-MoS + Partial Shuffle | Params: 22M Test perplexity: 53.92 Validation perplexity: 55.89 |
| language-modelling-on-penn-treebank-word | AWD-LSTM-DOC + Partial Shuffle | Params: 23M Test perplexity: 52.0 Validation perplexity: 53.79 |
| language-modelling-on-wikitext-2 | AWD-LSTM-MoS + Partial Shuffle | Number of params: 35M Test perplexity: 59.98 Validation perplexity: 62.38 |
| language-modelling-on-wikitext-2 | AWD-LSTM-DOC + Partial Shuffle | Number of params: 37M Test perplexity: 57.85 Validation perplexity: 60.16 |