首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RoBERTa库对具有新数据的RoBERTa模型进行预处理

用RoBERTa库对具有新数据的RoBERTa模型进行预处理
EN

Data Science用户
提问于 2022-05-23 11:26:22
回答 1查看 293关注 0票数 0

我使用“简单转换器”库预训练了新数据的RoBERTa模型:

代码语言:javascript
复制
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库,而不是使用’简单转换器库。有什么方法可以使它像上面的代码那样简单吗?

我已经加载了预先训练过的模型,如它所说的这里

代码语言:javascript
复制
import torch
roberta = torch.hub.load('pytorch/fairseq', 'roberta.large', pretrained=True)
roberta.eval()  # disable dropout (or leave in train mode to finetune)

我还更改了在最后一层中预测的标签数量:

代码语言:javascript
复制
roberta.register_classification_head('new_task', num_classes=22)

但是,我无法找到如何使用“train”对分类器进行预训练。到目前为止,我发现的唯一方法是在这里中使用一个PyTorch工具包‘ fairseq 和fairseq对RoBERTa模型进行预训练。这是唯一的选择,还是可以做得更简单?

EN

回答 1

Data Science用户

发布于 2022-11-03 19:41:55

我最近一直在努力解决这类问题。我遵循并修改了来自HuggingFace的HuggingFace教程(因为它使用的是较旧版本的转换器),因此现在不再推荐它了。最后的结果是这里。希望你觉得这有帮助。

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

https://datascience.stackexchange.com/questions/111231

复制
相关文章

相似问题

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