本文主要介绍P-tuning-v2论文中的5种任务,分别为Glue任务、NER任务、QA任务、SRL任务、SuperGlue任务,重点介绍了下每种任务使用的数据集。

一.Glue任务

  GLUE(General Language Understanding Evaluation)是纽约大学、华盛顿大学等机构创建了一个多任务的自然语言理解基准和分析平台。GLUE包含九项NLU任务,语言均为英语。GLUE九项任务涉及到自然语言推断、文本蕴含、情感分析、语义相似等多个任务。可分为三大类,分别是单句任务、相似性和释义任务、推理任务。所有任务都是2分类,除了STS-B是一个回归任务,MNLI有3个类别[1][2][3],如下所示:

  P-tuning-v2/tasks/glue/dataset.py文件中的task_to_keys字典如下所示:

task_to_keys = {
    "cola": ("sentence", None),         # 这里的None表示没有第二个句子
    "mnli": ("premise", "hypothesis"),  # 这里的第一个句子是前提,第二个句子是假设
    "mrpc": ("sentence1", "sentence2"), # 这里的第一个句子是句子1,第二个句子是句子2
    "qnli": ("question", "sentence"),   # 这里的第一个句子是问题,第二个句子是句子
    "qqp": ("question1", "question2"),  # 这里的第一个句子是问题1,第二个句子是问题2
    "rte": ("sentence1", "sentence2"),  # 这里的第一个句子是句子1,第二个句子是句子2
    "sst2": ("sentence", None),         # 这里的None表示没有第二个句子
    "stsb": ("sentence1", "sentence2"), # 这里的第一个句子是句子1,第二个句子是句子2
    "wnli": ("sentence1", "sentence2"), # 这里的第一个句子是句子1,第二个句子是句子2
}

1.CoLA(The Corpus of Linguistic Acceptability)

  纽约大学发布的有关语法的数据集,该任务主要是对一个给定句子,判定其是否语法正确,因此CoLA属于单个句子的文本二分类任务。

2.SST(The Stanford Sentiment Treebank)

  斯坦福大学发布的一个情感分析数据集,主要针对电影评论来做情感分类,因此SST属于单个句子的文本分类任务(其中SST-2是二分类,SST-5是五分类,SST-5的情感极性区分的更细致)。

3.MRPC(Microsoft Research Paraphrase Corpus)

  由微软发布,判断两个给定句子,是否具有相同的语义,属于句子对的文本二分类任务。

4.STS-B(Semantic Textual Similarity Benchmark)

  主要是来自于历年SemEval中的一个任务(同时该数据集也包含在了SentEval),具体来说是用1到5的分数来表征两个句子的语义相似性,本质上是一个回归问题,但依然可以用分类的方法做,因此可以归类为句子对的文本五分类任务。

5.QQP(Quora Question Pairs)

  由Quora发布的两个句子是否语义一致的数据集,属于句子对的文本二分类任务。

6.MNLI(Multi-Genre Natural Language Inference)

  同样由纽约大学发布,是一个文本蕴含的任务,在给定前提(Premise)下,需要判断假设(Hypothesis)是否成立,其中因为MNLI主打卖点是集合了许多不同领域风格的文本,因此又分为matched和mismatched两个版本的MNLI数据集,前者指训练集和测试集的数据来源一致,而后者指来源不一致。该任务属于句子对的文本三分类问题。

7.QNLI(Question Natural Language Inference)

  其前身是SQuAD 1.0数据集,给定一个问句,需要判断给定文本中是否包含该问句的正确答案。属于句子对的文本二分类任务。

8.RTE(Recognizing Textual Entailment)

  和MNLI类似,也是一个文本蕴含任务,不同的是MNLI是三分类,RTE只需要判断两个句子是否能够推断或对齐,属于句子对的文本二分类任务。

9.WNLI(Winograd Natural Language Inference)

  一个文本蕴含任务,二分类任务,判断两个句子含义是否一样。

  从官网GLUE Tasks来看,现在又多了一个Diagnostics Main分类任务,如下所示:

二.NER任务

  主要是处理脚本P-tuning-v2/tasks/ner/dataset.py文件。

1.conll2003数据集

(1)简介

  Conll-2003数据集是由欧洲计算语言学学会(CoNLL)于2003年发布的一个英语命名实体识别数据集。该数据集包含了英语新闻文本中的实体类别和实体位置信息。其中,实体类别包括人名、地名、组织名和其他实体。实体位置信息以标注的方式呈现,即以实体开始和结束的字符索引表示。Conll-2003数据集由训练集、开发集和测试集组成,用于训练和评估命名实体识别模型。

(2)下载地址

  链接:https://www.cnts.ua.ac.be/conll2002/ner/

2.conll2004数据集

(1)简介

  CoNLL04数据集由《华尔街日报》和美联社的新闻文章组成。CoNLL04定义了4种实体类型,包括位置(Loc)、组织(Org)、人(Peop)和其他(Other),以及5种关系类别,即坐落在(Locate_In)、基于组织的在(OrgBased_In)、住在(Live_In)、杀死(Kill)和工作在(Work_For)。

(2)下载地址

  链接:https://www.clips.uantwerpen.be/conll2003/ner/

3.ontonotes数据集

(1)简介

  OntoNotes 5.0是OntoNotes项目的最后一个版本,是BBN Technologies、科罗拉多大学、宾夕法尼亚大学和南加州大学信息科学研究所之间的合作项目。该项目的目标是对一个大型语料库进行注释,该语料库由三种语言(英语、汉语和阿拉伯语)的各种类型的文本(新闻、电话对话、网络日志、usenet新闻组、广播、脱口秀)组成,包含结构信息(语法和谓词论证结构)和浅层语义(与本体和核心参考相关联的词义)。

(2)下载地址

  链接:OntoNotes Release 4.0:https://catalog.ldc.upenn.edu/LDC2011T03;OntoNotes Release 5.0:https://catalog.ldc.upenn.edu/LDC2013T19

三.QA任务

  主要是处理脚本P-tuning-v2/tasks/qa/dataset.py文件。

1.SQuAD 1.1数据集

  SQuAD是由Rajpurkar等人提出的一个抽取式QA数据集。该数据集包含10万个(问题,原文,答案)三元组,原文来自于536篇维基百科文章。对于每个文章的问题(<=5),有很多标注人员标注答案,且答案出现在原文中。https://huggingface.co/datasets/squad

  训练集数据如下所示:


  验证集数据如下所示:


2.SQuAD 2.0数据集

  相较SQuAD 1.1中的10万问答,SQuAD 2.0又新增了5万个人类撰写的问题——而且问题不一定有对应答案。https://huggingface.co/datasets/squad_v2

  训练集数据如下所示:


  验证集数据如下所示:

四.SRL任务

  主要是处理脚本P-tuning-v2/tasks/srl/dataset.py文件。语义角色标注(Semantic Role Labeling)的目标主要是识别出句子中Who did What to Whom, When and Where。英文数据集主要有CoNLL-2005和CoNLL-2012提供的标注数据集,其中CoNLL-2005的数据集来源于Penn Tree Bank,CoNLL-2012的数据集来源于OntoNotes v5.0。

1.conll2005数据集

链接:https://github.com/strubell/preprocess-conll05

2.conll2012数据集

链接:https://cemantix.org/conll/2012/data.html

五.SuperGlue任务

  主要是处理脚本P-tuning-v2/tasks/superglue/dataset.py文件。SuperGLUE(General Language Understanding Evaluation)是一个广泛用于测试自然语言理解模型性能的基准测试集合,由斯坦福大学等机构联合开发。它是自然语言理解领域最具挑战性的测试集之一,旨在推动自然语言处理技术的发展。SuperGLUE中包含BoolQ、CB、COPA、MultiRC、ReCoRD、RTE、WiC、WSC 8个子数据集。详情可参考论文:https://w4ngatang.github.io/static/papers/superglue.pdf。

task_to_keys = {
    "boolq": ("question", "passage"),            # boolq数据集:包含问题和段落,预测段落是否包含答案
    "cb": ("premise", "hypothesis"),             # cb数据集:包含前提和假设,预测假设是否为前提的蕴含
    "rte": ("premise", "hypothesis"),            # rte数据集:包含前提和假设,预测假设是否为前提的蕴含
    "wic": ("processed_sentence1", None),        # wic数据集:包含2个句子和1个多义词,预测2个句子中的单词含义是否相同
    "wsc": ("span2_word_text", "span1_text"),    # wsc数据集:包含1个句子和2个名词短语,预测哪个名词短语更符合句子中的指代关系
    "copa": (None, None),                        # copa数据:包含1个问题和2个候选答案,预测哪个答案更符合问题的语境
    "record": (None, None),                      # record数据集:包含1篇新闻文章和1个关于文章的完形填空式问题,预测问题的被屏蔽的实体
    "multirc": ("paragraph", "question_answer")  # multirc数据集:示例由上下文段落、问题和可能答案列表组成,预测答案是否正确
}

1.BoolQ数据集

  BoolQ(Boolean Questions)是一项QA任务,预测段落是否包含答案。

2.CB数据集

  CB(CommitmentBank)是一个短文本语料库,根据给定的前提和假设,判断假设是否为前提的蕴含。

3.RTE数据集

  RTE(Recognizing Textual Entailment)数据集来自一系列关于文本蕴涵的年度竞赛,判断给定的两个句子是否具有蕴含关系。

4.WiC数据集

  WiC(Word-in-Context)是一个词义消歧任务,作为句子对的二元分类。给定两个文本片段和一个出现在两个句子中的多义词,任务是确定该词在两个句子中是否以相同的含义使用。

5.WSC数据集

  WSC(Winograd Schema Challenge)在GLUE中以NLI任务出现,给定一个句子和两个名词短语,判断哪个名词短语更符合句子中的指代关系。

6.COPA数据集

  COPA(Choice of Plausible Alternatives)是一项因果推理任务,给定一个问题和两个候选答案,判断哪个答案更符合问题的语境。

7.ReCoRD数据集

  ReCoRD(Reading Comprehension with Commonsense Reasoning Dataset)是一项多项选择的QA任务,每个示例都包含一篇新闻文章和一个关于文章的完形填空式问题,文章中的一个实体被屏蔽掉了,模型需要从提供的段落中给定的可能实体列表中预测被屏蔽的实体。

8.MultiRC数据集

  MultiRC(Multi-Sentence Reading Comprehension)是一项QA任务,其中每个示例由上下文段落、关于该段落的问题和可能答案列表组成,由模型预测哪些答案是正确的,哪些是错误的。

参考文献:

[1]GLUE的论文:GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding(https://aclanthology.org/W18-5446/)

[2]GLUE的官网:https://gluebenchmark.com/

[3]NLP常见任务介绍:https://www.cnblogs.com/guozw/p/13369757.html

[4]NER常用数据集汇总:https://zhuanlan.zhihu.com/p/606788093

[5]SUPER_GLUE数据集:https://www.modelscope.cn/datasets/modelscope/super_glue/summary

Langchain-Chatchat项目:4.2-P-Tuning v2使用的数据集的更多相关文章

  1. 已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容

    已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容 NU1202: 包 System.Run ...

  2. Restful.Data v2.0发布,谢谢你们的支持和鼓励

    v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新 ...

  3. 【多端应用开发系列1.1.1 —— Android:使用新浪API V2】服务器Json数据处理——Json数据概述

    [前白] 一些基础的东西本系列中就不再详述了,争取尽量写些必不可少的技术要点. 由于本系列把Web Service 构建放到了第二部分,Android项目就采用新浪微博API v2作为服务器端. [原 ...

  4. Ionic项目中如何使用Native Camera

    本文介绍如何在ionic项目中使用设备的camera. Ionic版本:v3.2.0 / 2017-05-10 / MIT Licensed / Release Notes ============= ...

  5. ionic2项目创建回顾 及 react-native 报错处理

    ionic2: 1.创建项目: ionic start MyIonic2Project tutorial --v2 (下载 tutorial 模板来初始化项目) ionic start MyIonic ...

  6. 一起了解 .Net Foundation 项目 No.4

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. BenchmarkDotN ...

  7. .NET 6 中外部引用项目NU1105异常问题解决

    .NET 6 Project中,添加了其他解决方案的工程后,本地能编译通过,代码签入后,其他同事下载代码,编译报错: 错误 NU1105 找不到"E:\Teld\01Code\TTP_CTP ...

  8. 找了几个 Solon 的商业落地项目案例!

    Solon 是啥?是一个高效的 Java 应用开发框架:更快.更小.更简单.(代码仓库:https://gitee.com/noear/solon) 提倡: 克制.简洁.开放.生态 启动快 5 - 1 ...

  9. 顶级项目孵化的故事系列——Kylin的心路历程【转】

    现在已经名满天下的 Apache Kylin,是 Hadoop 大数据生态系统不可或缺的一部分,要知道在 Kylin 项目早期,可是以华人为主的开源团队,一路披荆斩棘经过几年的奋斗,才在 Apache ...

  10. Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门

    前文我们曾经描述过,微软把Silverlight控件大致分为三类: 第一类: Layout Controls(布局控件) 第二类: Item Controls (项目控件) 第三类: User Int ...

随机推荐

  1. MASABlazor在移动端点击保持出现悬停样式

    提出问题 最近在学习MAUIBlazor,用的MASA Blazor,发现在移动端(触屏设备)上,点击会一直显示悬停样式,如下图所示,简单研究了一下,发现这是移动端的通病. 解决问题 MASABlaz ...

  2. python 打包模块:nuitka

    该模块可以将python编译成C++级的可执行文件,是解决python图形化界面启动慢的神器. 1.环境配置 配置c/c++编译器:MinGW64 ,最低使用8.1版本,该资源自行下载. 百度网盘链接 ...

  3. [selenium]浏览器基本操作

    前言 版本: python:3.9 selenium:4.1.5 浏览器:firefox 创建浏览器对象 from selenium import webdriver driver = webdriv ...

  4. Day11:KMP、字典树、AC自动机、后缀数组、manacher

    KMP算法 前言 KMP算法是一个著名的字符串匹配算法,效率很高,但是确实有点复杂. 简介 KMP 算法是 D.E.Knuth.J,H,Morris 和 V.R.Pratt 三位神人共同提出的,称之为 ...

  5. vivo 容器集群监控系统优化之道

    作者:vivo 互联网容器团队 - Han Rucheng 本文介绍了vivo容器团队基于 Prometheus等云原生监控生态来构建的容器集群监控体系,在业务接入容器监控的过程中遇到的挑战.困难,并 ...

  6. 通过WinSW部署JAR包为windows服务

    通过WinSW部署JAR包为windows服务 背景 使用 Java 编写了一些有用的工具,因为不方便部署到服务器上,所以需要把 Java 生成的 jar 包在本地 Windows 上部署. 查阅了几 ...

  7. O2OA(翱途)开发平台 V8.1正式发布

    尊敬的O2OA(翱途)平台合作伙伴.用户以及亲爱的开发小伙伴们,平台 V8.1版本已正式发布.正值8月的最后一周,我们以更安全.更高效.更好用的崭新面貌迎接9月的到来. O2OA开发平台v8.1版本更 ...

  8. 手机用户的开源福音「GitHub 热点速览」

    不知道多少用安卓机的小伙伴,被开屏广告烦过.相比有些克制的 iOS 机,安卓机是个应用基本上都有开屏广告,少则 3s 多则 10s,本周获得 1k+ star 的 Android-Touch-Help ...

  9. QA|如何给我们的自动化测试代码增加日志记录?|Loguru

    这里我们用的是loguru,logging虽然是自带的,但确实使用起来比较繁琐,loguru在Logging基础上增加了很多个性化功能,使用起来也比较简单,所以就使用loguru 代码如下: 1 # ...

  10. QA|如何实现一个函数读取1-9按钮?|网页计算器自动化测试实战

    如何实现一个函数读取1-9按钮? 如何实现一个根据我们Json存的数字,自动选取对应按钮点击,并且点击对应算法? 首先我们肯定不能给每个元素都写一个函数吧,毕竟挺多,而且如果这样写了,那加减乘除都要分 ...