首先,我强烈建议也将其作为一个问题在 huggingface 库中打开,因为他们可能最有兴趣回答这个问题,并且可能会将其视为他们应该更新/澄清他们的文档的标志。
但是要回答您的问题,似乎这个特定的示例脚本基本上是返回 a LineByLineTextDataset
(如果您通过--line_by_line
培训),否则返回 a TextDataset
,请参阅 ll。脚本中的 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)
ATextDataset
简单地将文本拆分为具有特定(令牌)长度的连续“块”,例如,它会每隔 512 个令牌(默认值)剪切您的文本。
Next Sentence Prediction 任务仅针对默认的 BERT 模型实现,如果我没记错的话(似乎与我在文档中找到的一致),不幸的是它不是这个特定微调脚本的一部分。lm_finetuning
据我所知,脚本中使用的BERT 模型都没有使用该特定任务。