首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为语言模型细化(BERT通过)设置输入文件的格式?

如何为语言模型细化(BERT通过)设置输入文件的格式?
EN

Stack Overflow用户
提问于 2020-01-31 10:02:31
回答 1查看 5.1K关注 0票数 6

我想把examples/run_lm_finetuning.py中用在一个经过预先训练的伯特模型上。但是,从文档中可以看出,应该如何构造一个语料库文件(除了引用Wiki-2数据集之外)。我试过了

  • 每行一份文件(多句)
  • 每行一句。文档之间用空行分隔(这是我在一些旧的py手电筒-变压器文档中找到的)。

通过查看examples/run_lm_finetuning.py的代码,并不能直接看出下一个句子预测目标的序列对是如何形成的。--line-by-line选项在这里有帮助吗?如果有人能给我一些提示,一个文本文件应该是什么样的,我将不胜感激。

非常感谢和欢呼,

智者

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 10:24:20

首先,我强烈建议在huggingface库中也将此作为一个问题来讨论,因为他们可能最有兴趣回答这个问题,并可能将其视为他们应该更新/澄清他们的文档的一个标志。

但是要回答您的问题,这个特定的示例脚本似乎基本上返回了一个LineByLineTextDataset (如果您将--line_by_line传递给培训),或者返回一个TextDataset,参见11。144-149在剧本中(为了更好的能见度而略为格式化):

代码语言:javascript
复制
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模型都没有使用特定的任务。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60001698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档