Прежде всего, я настоятельно рекомендую также открыть это как проблему в библиотеке huggingface, так как они, вероятно, имеют наибольший интерес, чтобы ответить на этот вопрос, и могут воспринимать это как знак того, что они должны обновить / уточнить свою документацию.
Но, чтобы ответить на ваш вопрос, похоже, что этот конкретный c пример сценария в основном возвращает либо LineByLineTextDataset
(если вы передаете --line_by_line
обучению), либо в противном случае TextDataset
, см. , 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)
A TextDataset
просто разбивает текст на последовательные «блоки» определенной (токеновой) длины, например , он будет обрезать ваш текст каждые 512 токенов (значение по умолчанию). #
Задача «Предсказание следующего предложения» будет реализована только для модели BERT по умолчанию, если я правильно об этом вспомню (кажется, соответствует тому, что я нашел в документация ), и, к сожалению, не входит в этот специфицирующий c скрипт окончательной настройки. Насколько я вижу, ни одна из используемых моделей BERT в сценарии lm_finetuning
не использует эту конкретную задачу.