首页 > 其他分享 >Langchain-Chatchat项目:4.2-P-Tuning v2使用的数据集

Langchain-Chatchat项目:4.2-P-Tuning v2使用的数据集

时间:2023-11-03 23:23:12浏览次数:40  
标签:Tuning 4.2 分类 Langchain 任务 https 文本 数据 句子

  本文主要介绍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

标签:Tuning,4.2,分类,Langchain,任务,https,文本,数据,句子
From: https://www.cnblogs.com/shengshengwang/p/17808720.html

相关文章

  • 试题4.2
        ......
  • tdc++.so.6: version `GLIBCXX_3.4.29' not found
     001、python程序报错如下: 002、问题分析a、调用的是python程序b、libstdc++.so.6是c++标准库执行python程序时,需要调用c++标准库,libstdc++.so.6(lib=glib,6表示第6版),版本不匹配报错,无法找到:GLIBCXX_3.4.29。 003、确认调用的哪里的python程序(base)[b20223040......
  • LangChain实战
    1.概述最近,在研究LangChain时,发现一些比较有意思的点,今天笔者将给大家分享关于LangChain的一些内容。2.内容2.1什么是LangChain?LangChain是一项旨在赋能开发人员利用语言模型构建端到端应用程序的强大框架。它的设计理念在于简化和加速利用大型语言模型(LLM)和对话模型构建应用......
  • 大语言模型Fine-tuning踩坑经验之谈
    前言 由于ChatGPT和GPT4兴起,如何让人人都用上这种大模型,是目前AI领域最活跃的事情。当下开源的LLM(Largelanguagemodel)非常多,可谓是百模大战。面对诸多开源本地模型,根据自己的需求,选择适合自己的基座模型和参数量很重要。选择完后需要对训练数据进行预处理,往往这一步就难......
  • Langchain语言模型提问请求,提问使用非标准的sse请求获取流式数据,java后台版解决方式
    问题描述:请求后接收的数据流,不走EventSourceListener的onEvent事件,但onOpenonClosed都是正常走的。 问题原因:默认的接口返回是StreamingResponse不是EventSourceResponse,无法走标准sse协议的onEvent()方法 目标需求:在不改动模型方面接口的情况下,接收到流式数据并通过sse协......
  • 使用langchain与你自己的数据对话(一):文档加载与切割
    LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的Python框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型(LLM)和聊天模型提供支持的应用程序的过程。LangChain可以轻松管理与语言模型的交互,将多个组件链接在一起,以便在不同的应用程序中使用......
  • 4.2-数据清洗
    4.2-数据清洗 In [ ]:importpandasaspd In [ ]:#4.2.1数据导入、预览:read_csv、headdata=pd.read_csv("WA_Fn-UseC_-Telco-Customer-Churn.csv")data Out[ ]:  customerIDgenderSeniorCitizenPart......
  • langchain中的LLM模型使用介绍
    简介构建在大语言模型基础上的应用通常有两种,第一种叫做textcompletion,也就是一问一答的模式,输入是text,输出也是text。这种模型下应用并不会记忆之前的问题内容,每一个问题都是最新的。通常用来做知识库。还有一种是类似聊天机器人这种会话模式,也叫Chatmodels。这种模式下输入是......
  • 基于LangChain的LLM应用开发3——记忆
    此情可待成追忆,只是当时已惘然。我们人类会有很多或美好或痛苦的回忆,有的回忆会渐渐模糊,有的回忆午夜梦醒,会浮上心头。然而现在的大语言模型都是没有记忆的,都是无状态的,大语言模型自身不会记住和你对话之间的历史消息。根本用不着“时时勤拂拭”,天然就是“本来无一物”。每一次的请......
  • 基于LangChain的LLM应用开发3——记忆
    此情可待成追忆,只是当时已惘然。我们人类会有很多或美好或痛苦的回忆,有的回忆会渐渐模糊,有的回忆午夜梦醒,会浮上心头。然而现在的大语言模型都是没有记忆的,都是无状态的,大语言模型自身不会记住和你对话之间的历史消息。根本用不着“时时勤拂拭”,天然就是“本来无一物”。每一次的......