使用 Simple Transformers 微调预训练语言模型

Fine tuning a pretrained language model with Simple Transformers

在他的文章中 'Language Model Fine-Tuning For Pre-Trained Transformers' Thilina Rajapakse (https://medium.com/skilai/language-model-fine-tuning-for-pre-trained-transformers-b7262774a7ee) 提供以下代码片段,用于使用库 simpletransformers:

微调预训练模型
from simpletransformers.language_modeling import LanguageModelingModel
import logging


logging.basicConfig(level=logging.INFO)
transformers_logger = logging.getLogger("transformers")
transformers_logger.setLevel(logging.WARNING)

train_args = {
    "reprocess_input_data": True,
    "overwrite_output_dir": True,
}

model = LanguageModelingModel('bert', 'bert-base-cased', args=train_args)

model.train_model("data/train.txt", eval_file="data/text.txt")

model.eval_model("data/test.txt")

然后他补充道:

We assume that you have combined all the text in your dataset into two text files train.txt and test.txt which can be found in the data/ directory.

我有两个问题:

问题 1

上面突出显示的句子是否暗示整个语料库将合并到一个文本文件中?所以假设训练语料库由 1,000,000 个文本文件组成,我们是否应该使用这样的代码将它们全部合并到一个文本文件中?

import fileinput
with open(outfilename, 'w') as fout, fileinput.input(filenames) as fin:
    for line in fin:
        fout.write(line)

问题二

我想我可以使用预训练模型:bert-base-multilingual-cased。正确吗?

问题 1

是的,train_model()eval_model() 方法的输入需要是单个文件。

将来可能会支持从多个文件动态加载

问题 2

是的,您可以使用 bert-base-multilingual-cased 模型。

您会找到更详细、更新的语言模型训练指南here

来源-我是库的创建者