NMT 模型上异常高的 BLEU 分数

数据挖掘 nlp 机器翻译
2022-02-17 09:57:02

这是关于英语/爱尔兰语对的神经机器翻译项目。过去一个月左右,我一直在尝试训练一个好的基线来进行“实验”。我有一个大约 850k 句子的语料库(不幸的是,爱尔兰语非常有限)。当我训练它并用 BLEU 评估它时,我得到了 65.02 的分数,这显然是不正确的。这些是我的 Fairseq-train 设置:

!CUDA_VISIBLE_DEVICES=0 fairseq-train data-bin-full_corp/MayNMT \
  --lr 5e-4 --lr-scheduler inverse_sqrt --optimizer adam\
  --clip-norm 0.1 --dropout 0.2 --max-tokens 4096 \
  --arch transformer --save-dir checkpoints/full-tran

我知道不是每个人都在 NLP 中使用 Fairseq,但我希望这些争论是不言自明的。

我对数据集进行了重复数据删除(转换为set()只接受唯一条目的 Python),所以我认为问题不在于 dev/valid 并且测试集包含重复的条目,但我不确定还有什么原因导致这种情况。一些人认为过度拟合可能是一个原因,但我认为只有在开发集共享训练条目时才会影响 BLEU。我自己也试过找问题,但是涉及NMT的地方并不多,更别说BLEU了。

1个回答

根据最近的出版物,在英语→爱尔兰语中获得与您一样高的 BLEU 分数并非不可能。然而,在没有任何其他知识的情况下,它们肯定看起来太高了。

从命令行参数来看,似乎没有任何明显的问题。

正如您已经指出的那样,最可能的解释是验证/测试和训练之间的数据泄漏。请注意,虽然您删除了完全相同的重复项,但您可能会得到部分匹配项而未被注意到。您可能想研究不同的相似性指标。最直接的是Jaccard Similarity