我使用“简单转换器”库预训练了新数据的RoBERTa模型:
from simpletransformers.classification import ClassificationModel
OUTPUT_DIR = 'roberta_output/'
model = ClassificationModel('roberta', 'roberta-base',use_cuda=False, num_labels=22,
args={'overwrite_output_dir':True, 'output_dir':OUTPUT_DIR})
model.train_model(train_df)
result, model_outputs, wrong_predictions = model.eval_model(test_df) # model evaluation on test data其中‘train_df是一个熊猫数据文件,包含两个列的许多样本(=行):第一列是文本数据输入;第二列是类别(=label)输出。
我需要像上面一样创建相同的模型并对其进行预训练,但是使用‘PyTorch库,而不是使用’简单转换器库。有什么方法可以使它像上面的代码那样简单吗?
我已经加载了预先训练过的模型,如它所说的这里:
import torch
roberta = torch.hub.load('pytorch/fairseq', 'roberta.large', pretrained=True)
roberta.eval() # disable dropout (or leave in train mode to finetune)我还更改了在最后一层中预测的标签数量:
roberta.register_classification_head('new_task', num_classes=22)但是,我无法找到如何使用“train”对分类器进行预训练。到目前为止,我发现的唯一方法是在这里中使用一个PyTorch工具包‘ fairseq 和fairseq对RoBERTa模型进行预训练。这是唯一的选择,还是可以做得更简单?
发布于 2022-11-03 19:41:55
我最近一直在努力解决这类问题。我遵循并修改了来自HuggingFace的HuggingFace教程(因为它使用的是较旧版本的转换器),因此现在不再推荐它了。最后的结果是这里。希望你觉得这有帮助。
https://datascience.stackexchange.com/questions/111231
复制相似问题