本次我们实战的内容是微调RoBERTa并对新的数据集进行文本分类任务。

首先这里我们简单讲解一下什么是文本分类任务:

这里有一句话Sentence1:“我喜欢你。”我们可以很容易地判断出来这句话是积极的。同理,对于句子Sentence2:“我讨厌你。”我们也可以知道这句话是消极的。

像上面这样把句子归到不同类别里面的做法就是文本分类。

在本次实战中,我们将用10k条外卖数据对RoBERTa模型进行微调,并最终用自己新生成的一系列数据基于训练好的模型进行推理。

数据来源放在这里:https://github.com/SophonPlus/ChineseNlpCorpus

步骤一:加载相关第三方库和数据

步骤二:创建Dataset

这里我们继承Pytorch的Dataset类并创建自己的MyDataset类,于此同时我们还要改写两个方法,一个是__len__,另一个是__getitem__。

步骤三:对数据集进行划分

这里我们按照0.8和0.2的比例对数据集进行划分,将80%的数据作为训练集,20%的数据作为测试集。

步骤四:创建DataLoader

这里我们根据刚才创建的Dataset去创建DataLoader,其中训练集和验证集的Batch_size都设置为64。但在这里我们实现了一个collate_func函数,这个函数的作用是对我们数据集的文本信息进行操作,将其tokenize化之后变成tensor向量。

步骤五:创建优化器和模型

这里我们创建的优化器为Adam,模型是从hugging face上记载预训练好的RoBERTa模型。

步骤六:训练和验证代码

这里我们先展示验证的代码,之后再展示训练的代码。

步骤七:训练模型

步骤八:模型推理

Logo

更多推荐