1 数据预处理
在数据喂入模型之前,需要对数据进行预处理,预处理的工具叫Tokenizer。Tokenizer首先对输入进行tokenize,然后将tokens转化为预模型中需要对应的token ID,再转化为模型需要的输入格式。
为了达到数据预处理的目的,我们使用AutoTokenizer.from_pretrained方法实例化我们的tokenizer,这样可以确保:
- 我们得到一个与预训练模型一一对应的tokenizer
- 使用指定的模型checkpoint对应的tokenizer的时候,我们也下载了模型需要的词表库vocabulary,准确来说是tokens vocabulary。
这个被下载的tokens vocabulary会被缓存起来,从而再次使用的时候不会重新下载。
2 微调预训练模型
当数据准备好了,需要下载并加载我们的预训练模型,然后微调预训练模型。由于微调的任务是文本分类任务,而加载的是预训练的预研模型,所以会提示我们加载模型时扔掉一些不匹配的神经网络参数。
3 超参数搜索
Trainer同样支持超参搜索,使用optuna 或者Ray Tune代码库,超参搜索时,Trainer将会返回多个训练好的模型,所以需要传入一个定义好的模型从而让Trainer可以不断重新初始化该传入的模型。调用方法hpyerparameter_search。注意这个过程可能很久,我们可以先用部分数据集进行超参搜索,再进行全量训练。hyperparameter_search会返回效果最好的模型相关的参数,找到对应参数后,将其放置到Trainer中,进行训练。