在他的文章“针对预训练的变压器的语言模型微调”中,蒂尔丽娜·拉贾帕克(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
。正确吗?
答案 0 :(得分:2)
是的,train_model()
和eval_model()
方法的输入必须是单个文件。
将来可能会支持从多个文件动态加载
是的,您可以使用bert-base-multilingual-cased
模型。
您将找到有关语言模型训练here的更详尽,更新的指南。
来源-我是图书馆的创建者