在微调屏蔽语言建模中使用的所有指标以及使用Pytorch Trainer API的验证数据



我正在使用Pytorch Trainer API训练MLM模型。这是我的初始代码。

data_collator = DataCollatorForWholeWordMask(tokenizer=tokenizer, mlm=True, mlm_probability=0.15)

class SEDataset(torch.utils.data.Dataset):
def __init__(self, encodings):
self.encodings = encodings

def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
return item
def __len__(self):
return len(self.encodings["attention_mask"])
train_data = SEDataset(train_encodings)
print("train_data prepared")

training_args = tr.TrainingArguments(
output_dir='results_mlm_mmt2'
,logging_dir='logs_mlm_mmt2'        # directory for storing logs
,save_strategy="epoch"
,learning_rate=2e-5
,logging_steps=40000
,overwrite_output_dir=True
,num_train_epochs=10
,per_device_train_batch_size=32
,prediction_loss_only=True
,gradient_accumulation_steps=2
,fp16=True
)

trainer = tr.Trainer(
model=model,
args=training_args,
data_collator=data_collator,
train_dataset=train_data
)

上面的代码工作得很好,但我想包括一些东西:

  1. 如何将validation text data包含在其中以及以何种格式包含?做我还需要为验证集传递标签?

  2. 我如何包括一些与传销相关的指标以便在之后打印每#步?

  1. Trainer类以eval_dataset为参数,允许您传递验证数据。它应该是一个Dataset对象,就像您的train_data对象一样。

  2. 它还将compute_metrics作为参数,这是一个可以覆盖的函数,用于手动定义要显示的度量(例如,请参阅此处(。

相关内容

  • 没有找到相关文章

最新更新