我想在预先训练的Bert模型中使用Huggingface Transformers repository中的examples/run_lm_finetuning.py
。但是,从遵循文档的角度来看,语料库文件的结构(除了引用Wiki-2数据集之外)还不清楚。我尝试过
通过查看examples/run_lm_finetuning.py
的代码,无法直接看出如何形成下一句预测目标的序列对。 --line-by-line
选项在这里有帮助吗?如果有人能给我一些提示,文本语料库文件的外观,我将不胜感激。
非常感谢和欢呼,
nminds
答案 0 :(得分:10)
首先,我强烈建议您也将其作为包含在拥抱库中的一个问题,因为他们可能最有兴趣回答此问题,并可能将其视为他们应该更新/阐明其文档的标志。 / p>
但是要回答您的问题,似乎这个特定的示例脚本基本上返回了LineByLineTextDataset
(如果您将--line_by_line
传递给了培训),或者返回了TextDataset
,请参见二。 the script中的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个令牌(默认值)剪切一次文本。
如果我正确记得(似乎与我在the documentation中发现的内容一致),则仅对默认的BERT模型实施Next Sentence Prediction任务,并且不幸的是,它不属于此特定的微调脚本。
据我所知,lm_finetuning
脚本中没有使用的BERT模型使用该特定任务。