微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

转换器管道中的填充掩码使用

如何解决转换器管道中的填充掩码使用

我微调了一个 gpt2 语言模型,并使用以下代码行根据我的模型生成文本:

generator = pipeline('text-generation',tokenizer='gpt2',model='data/out') print(generator('从前',max_length=40)[0]['generated_text'])

现在我只想用概率来预测下一个单词。我知道我们可以通过使用“fill-mask”来做到这一点,但我不知道该怎么做。当我将“填充掩码”代替“文本生成”时,出现此错误

"无法识别的配置类 用于这种 AutoModel:AutoModelForMaskedLM。 模型类型应该是 BigBirdConfig、Wav2Vec2Config、ConvBertConfig、LayoutLMConfigdistilBertConfig、AlbertConfig、BartConfig、MBartConfig、CamembertConfig、XLMRobertaConfig、LongformerConfig、RobertaConfig、SqueezeBertConfig、BertConfig、MobileBertConfig、FlaubertConfig、Config、TapConfig、MPFunNetas、FunNetas 之一DebertaConfig、DebertaV2Config、IBertConfig。”。

generator = pipeline('fill-mask',model='data/out') // 这一行给了我上面提到的错误

请告诉我如何解决此问题。任何形式的帮助将不胜感激。 提前致谢。

为了更好的理解,整个代码

从变压器进口( GPT2Tokenizer, DataCollat​​orForLanguageModeling,文本数据集, GPT2LMHeadModel, 训练参数, 培训师, 管道)

train_path = 'parsed_data.txt' test_path = 'parsed_data.txt'

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

data_collat​​or = DataCollat​​orForLanguageModeling(tokenizer=tokenizer,mlm=False)

train_dataset = TextDataset(tokenizer=tokenizer,file_path=train_path,block_size=128) test_dataset = TextDataset(tokenizer=tokenizer,file_path=test_path,block_size=128)

model = GPT2LMHeadModel.from_pretrained('gpt2')

training_args = TrainingArguments(output_dir = 'data/out',overwrite_output_dir = True,per_device_train_batch_size = 32,per_device_eval_batch_size = 32,learning_rate = 5e-5,num_train_epochs = 3,)

trainer = Trainer(model = model,args = training_args,data_collat​​or=data_collat​​or,train_dataset = train_dataset,eval_dataset = test_dataset)

trainer.train()

trainer.save_model() generator = pipeline('fill-mask',model='data/out')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。