MLM

Masked Language Model (MLM) 是 BERT 预训练的过程。已经证明,在您自己的数据上继续 MLM 可以提高性能(参见 Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks)。在我们的 TSDAE-论文 中,我们也表明 MLM 是学习句子嵌入的强大预训练策略。当您在某些特定领域工作时尤其如此。

注意: 仅运行 MLM 不会产生良好的句子嵌入。但是您可以首先使用 MLM 在您的特定领域数据上调整您喜欢的 transformer 模型。然后,您可以使用您拥有的标记数据或使用其他数据集(如 NLIParaphrasesSTS)来微调模型。

MLM working

运行 MLM

train_mlm.py 脚本提供了一个在您的数据上运行 MLM 的简单选项。您可以通过以下方式运行此脚本

python train_mlm.py distilbert-base path/train.txt

您还可以提供可选的 dev 数据集

python train_mlm.py distilbert-base path/train.txt path/dev.txt

train.txt / dev.txt 中的每一行都被解释为 transformer 网络的单个输入,即一个句子或段落。

有关如何使用 huggingface transformers 运行 MLM 的更多信息,请参阅 语言模型训练示例