我想把examples/run_lm_finetuning.py从库中用在一个经过预先训练的伯特模型上。但是,从文档中可以看出,应该如何构造一个语料库文件(除了引用Wiki-2数据集之外)。我试过了
通过查看examples/run_lm_finetuning.py的代码,并不能直接看出下一个句子预测目标的序列对是如何形成的。--line-by-line选项在这里有帮助吗?如果有人能给我一些提示,一个文本文件应该是什么样的,我将不胜感激。
非常感谢和欢呼,
智者
发布于 2020-01-31 10:24:20
首先,我强烈建议在huggingface库中也将此作为一个问题来讨论,因为他们可能最有兴趣回答这个问题,并可能将其视为他们应该更新/澄清他们的文档的一个标志。
但是要回答您的问题,这个特定的示例脚本似乎基本上返回了一个LineByLineTextDataset (如果您将--line_by_line传递给培训),或者返回一个TextDataset,参见11。144-149在剧本中(为了更好的能见度而略为格式化):
def load_and_cache_examples(args, tokenizer, evaluate=False):
file_path = args.eval_data_file if evaluate else args.train_data_file
if args.line_by_line:
return LineByLineTextDataset(tokenizer, args,
file_path=file_path, block_size=args.block_size)
else:
return TextDataset(tokenizer, args,
file_path=file_path, block_size=args.block_size)一个TextDataset简单地将文本分割成连续的特定(令牌)长度的“块”,例如,它将每512个标记削减文本(默认值)。
下一个句子预测任务只为默认的BERT模型实现,如果我正确地回忆起这一点(似乎与我在文献资料中发现的内容一致),不幸的是,它不是这个特定的finetuning脚本的一部分。据我所见,lm_finetuning脚本中使用的任何一个BERT模型都没有使用特定的任务。
https://stackoverflow.com/questions/60001698
复制相似问题