Datawhale NLP课程 Task5

Transformers解决文本分类任务、超参搜索

微调预训练模型进行文本分类

9个句子级别的分类任务:

  • CoLA (Corpus of Linguistic Acceptability) 鉴别一个句子是否语法正确.
  • MNLI (Multi-Genre Natural Language Inference) 给定一个假设,判断另一个句子与该假设的关系:entails, contradicts 或者 unrelated。
  • MRPC (Microsoft Research Paraphrase Corpus) 判断两个句子是否互为paraphrases.
  • QNLI (Question-answering Natural Language Inference) 判断第2句是否包含第1句问题的答案。
  • QQP (Quora Question Pairs2) 判断两个问句是否语义相同。
  • RTE (Recognizing Textual Entailment)判断一个句子是否与假设成entail关系。
  • SST-2 (Stanford Sentiment Treebank) 判断一个句子的情感正负向.
  • STS-B (Semantic Textual Similarity Benchmark) 判断两个句子的相似性(分数为1-5分)。
  • WNLI (Winograd Natural Language Inference) Determine if a sentence with an anonymous pronoun and a sentence with this pronoun replaced are entailed or not.

加载数据

我们将会使用Datasets库来加载数据和对应的评测方式。数据加载和评测方式加载只需要简单使用load_dataset和load_metric即可。

from datasets import load_dataset, load_metric

数据预处理

在将数据喂入模型之前,我们需要对数据进行预处理。预处理的工具叫Tokenizer。Tokenizer首先对输入进行tokenize,然后将tokens转化为预模型中需要对应的token ID,再转化为模型需要的输入格式。

微调预训练模型

既然数据已经准备好了,现在我们需要下载并加载我们的预训练模型,然后微调预训练模型。既然我们是做seq2seq任务,那么我们需要一个能解决这个任务的模型类。我们使用AutoModelForSequenceClassification 这个类。和tokenizer相似,from_pretrained方法同样可以帮助我们下载并加载模型,同时也会对模型进行缓存,就不会重复下载模型啦。
选定数据集和评价方法后,可以传给Trainer:

trainer = Trainer(
    model,
    args,
    train_dataset=encoded_dataset["train"],
    eval_dataset=encoded_dataset[validation_key],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics
)

超参搜索

Trainer同样支持超参搜索

Reference

https://github.com/datawhalechina/Learn-NLP-with-Transformers

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值