gpt4 book ai didi

huggingface-transformers - 如何使用拥抱面部转换器为翻译任务训练编码器-解码器模型?

转载 作者:行者123 更新时间:2023-12-03 14:42:18 25 4
gpt4 key购买 nike

我想为翻译任务训练如下配置的编码器解码器模型。有人可以指导我如何为这样的模型设置训练管道吗?任何链接或代码片段将不胜感激理解。

from transformers import BertConfig, EncoderDecoderConfig, EncoderDecoderModel

# Initializing a BERT bert-base-uncased style configuration
config_encoder = BertConfig()
config_decoder = BertConfig()

config = EncoderDecoderConfig.from_encoder_decoder_configs(config_encoder, config_decoder)

# Initializing a Bert2Bert model from the bert-base-uncased style configurations
model = EncoderDecoderModel(config=config)

最佳答案

编码器-解码器模型的使用方式与 Transformers 中的任何其他模型相同。它接受成批标记化文本作为词汇索引(即,您需要一个适合您的序列到序列任务的标记器)。当您为模型提供输入 ( input_ids ) 和所需的输出 ( decoder_input_idslabels ) 时,您将获得可以在训练期间优化的损失值。请注意,如果批次中的句子长度不同,您也需要进行屏蔽。这是 EncoderDecoderModel 的最小示例文档:

from transformers import EncoderDecoderModel, BertTokenizer
import torch

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = EncoderDecoderModel.from_encoder_decoder_pretrained(
'bert-base-uncased', 'bert-base-uncased')
input_ids = torch.tensor(
tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(0)
outputs = model(
input_ids=input_ids, decoder_input_ids=input_ids, labels=input_ids,
return_dict=True)
loss = outputs.loss
如果您不想自己编写训练循环,可以使用来自 Transformers 的数据集处理 ( DataCollatorForSeq2Seq ) 和训练 ( Seq2SeqTrainer ) 实用程序。您可以关注 Seq2Seq example on GitHub .

关于huggingface-transformers - 如何使用拥抱面部转换器为翻译任务训练编码器-解码器模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62446827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com