机器问答模型
加载数据集
和前面一样,使用函数load_dataset和load_metric来下载数据并得到需要的评测指标。
Preprocessing the training data
在将数据喂入模型之前,我们需要对数据进行预处理。预处理的工具叫Tokenizer。Tokenizer首先对输入进行tokenize,然后将tokens转化为预模型中需要对应的token ID,再转化为模型需要的输入格式。 tokenizer既可以对单个文本进行预处理,也可以对一对文本进行预处理,tokenizer预处理后得到的数据满足预训练模型输入格式。
Fine-tuning微调模型
目前,我们已经预处理好了训练/微调需要的数据,现在我们下载预训练的模型。由于我们要做的是机器问答任务,于是我们使用这个类AutoModelForQuestionAnswering。和tokenizer相似,model也是使用from_pretrained方法进行加载。
Evaluation评估
模型的输出是一个像dict的数据结构,包含了loss(因为提供了label,所有有loss),answer start和end的logits。我们在输出预测结果的时候不需要看loss,直接看logits就好了。每个feature里的每个token都会有一个logit。预测answer最简单的方法就是选择start的logits里最大的下标最为answer其实位置,end的logits里最大下标作为answer的结束位置。
Reference
https://github.com/datawhalechina/Learn-NLP-with-Transformers
|