使用简单变形金刚微调预训练的语言模型

时间:2020-04-28 14:35:17

标签: python-3.x huggingface-transformers language-model simpletransformers

在他的文章“针对预训练的变压器的语言模型微调”中,蒂尔丽娜·拉贾帕克(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")

然后他添加:

我们假设您已将数据集中的所有文本合并为两个 文本文件train.txt和test.txt可以在数据/中找到 目录。

我有2个问题:

问题1

上面突出显示的句子是否意味着整个语料库将合并为一个文本文件?因此,假设训练语料库由1,000,000个文本文件组成,我们是否应该将它们全部合并为一个具有这样代码的文本文件?

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

问题2

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

1 个答案:

答案 0 :(得分:2)

问题1

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

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

问题2

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

您将找到有关语言模型训练here的更详尽,更新的指南。

来源-我是图书馆的创建者