information extraction—SeqGPT(用于开放域序列理解的大型语言模型),细节理解与原文阅读:SeqGPT: An Out-of-the-box Large Language

SeqGPT: An Out-of-the-box Large Language Model for Open Domain Sequence Understanding

SeqGPT: 用于开放域序列理解的开箱即用大型语言模型

paper:

GitHub:https://github.com/Alibaba-NLP/SeqGPT

1.背景动机

LLM用于NLU的问题缺陷:

直接应用 LLMs 也有明显的缺点:

  1. GPT-3有175B 个参数,这会导致相当大的推理成本和定制挑战。
  2. 要实现良好的性能并确保符合输出格式标准,提示的工程设计至关重要。然而,它具有很强的经验性,模型可能无法始终如一地遵守它

中等模型在NLU任务中的优势:

继续训练中等规模的基础模型,这些模型不仅提高了计算友好性,还提供了有竞争力的能力,以统一各种任务的方式。额外的训练使中等规模的模型在各种 NLU 基准中的zero-shot性能超过了大规模模型。

本文提出的模型优势:

seqGPT收集并统一了11个NLU任务的152个数据集,其中不仅包括常见的信息提取(IE)任务,如NER,还包括之前工作中忽略的任务,如自然语言推理(NLI)和基于提取的机器阅读理解(MRC)。此外,为了弥补实际场景与现有近域 NLU 数据之间的差异,seqGPT从各种来源生成了一个大规模的开放域数据集。与早期自动生成 NLU 数据的研究不同,seqGPT指示 ChatGPT 为每个样本生成适当的标签并识别相应的答案,因为 ChatGPT 擅长总结和生成人类水平的注释。生成的数据集包含 80 多万个不同的合理标签,比以前的数据集丰富得多。

SeqGPT介绍:

利用这两个数据集,seqGPT训练了基于 BLOOMZ 的Sequence 理解增强型GPT,简称 SeqGPT,这是一个经过指令调整的语言模型系列。seqGPT的训练过程包括两个阶段:

  1. 首先是使用 ChatGPT 生成的各种数据(尽管有噪声)进行预训练,
  2. 然后使用收集的真实 NLU 数据集进行微调。

之所以采取这种策略,是因为我们希望首先通过使用不同的数据来增强泛化能力,然后再根据人类的偏好来完善模型。我们的实验表明,SeqGPT 在zero-shot NLU 基准上一直远远超过 ChatGPT。

2.Model

提出的统一结构,即统一输入输出:

为了解决新颖的开放域任务,语言模型需要一个连续的输入,其中包括句子和任务所需的知识,并输出相应的答案。为了用单一模型和一致的输入输出格式解决不同的 NLU 任务,seqGPT考虑采用一种统一的方法,将它们转化为两个原子任务:

  • 提取 (EXT): 这项任务可识别每个查询的所有相关跨度。查询可以是一个单词、一个短语(如传统的提取任务)或一段自然语言描述(如机器阅读理解和指令跟踪)。
  • 分类(CLS):这项任务的目的是将整个输入与给定标签的一个合适子集联系起来,从而实现多类和多标签分类。

提示模板的构造:

对于每个原子任务,seqGPT都设计了一个简单的提示模板,其中包括:

  1. 一些表示输入不同部分的控制tokens;
  2. 要分析的特定文本;
  3. 感兴趣的查询或标签列表。

输出方式构造:

在输出方面,根据原子任务的类型,答案被格式化为固定且易于解析的形式。特别是在提取任务中,答案会逐行列出。每一行都包含一个用户键入的查询,然后是一个短语列表作为相应的答案。对于分类任务,答案的格式为单行列表,其中包含从提供的标签集中提取的答案标签。

通过查询或标签来表示特定任务—可以推广到新任务:

模型可以推广到新的任务和领域,而不需要人类费力去精心设计新的任务描述。虽然这种方法可能会因为在推理时注入不灵活的先验知识而限制其性能,但实验表明,在对大量 NLU 任务进行持续训练后,模型学会了如何解决 NLU 任务以及如何进行泛化,从而消除了在推理时对额外信息的需求,从而实现了效率和效果之间的平衡

预训练数据:

seqGPT构建了一个大规模预训练(PT)数据集,该数据集具有极其多样的标签集和多个源领域,包括维基百科、新闻和医学。为了涵盖这两个原子任务,考虑了三个任务:分类、实体键入和 NER,其注释是通过提示 ChatGPT 为每个样本创建适当的标签并在开放域设置中识别相应的答案来创建的。最后,PT 数据集包含 1,146,271 个实例和 817,075 个不同的标签。

负标签构造:

ChatGPT 生成的 PT 数据不能直接用于训练,因为其中缺少负标签,即没有答案的标签。seqGPT采用了一种简单的策略:从相应的 PT 任务(即 CLS、ET 和 NER)中出现的所有标签集中随机抽取标签来增强 PT 数据中的样本。由于该集合数量庞大,这些抽样标签很可能与输入句子无关,因此可以放心地假设没有相应的答案。

高质量微调数据集:

为了进一步校准模型以执行 NLU 任务,并消除 PT 数据集中的错误所造成的影响,seqGPT收集了来自不同领域的大量高质量 NLU 数据集进行微调。微调(FT)数据集由 110 个 NLU 数据集组成,涵盖中英文两种语言和 10 个任务,包括 NER、RE 和 EE 等 IE 任务,以及 NLI 和 MRC 等可翻译成这两个原子任务的其他任务。除了任务覆盖面广,数据的多样性还得益于不同的源领域,包括医学、新闻和人工智能助手对话,以及不同粒度的标签或查询。每个任务都被转化为原子任务的组合,从而产生了 139 个分类原子任务和 94 个提取原子任务。

数据平衡问题:

FT 数据收集了大量数据集,以确保数据的多样性,但与此同时,这也带来了数据的不平衡。在seqGPT的实施过程中,将收集到的数据和样本数据统一、随机地结合在一起。这种不平衡可能会导致样本量大的任务拟合不足,或者在小数据集上过度采样。因此,为每个数据集-标签对设置了一个配额,用于平衡数据。对于实例数量少于配额的数据集-标签对,使用整套实例,而不进行向上采样。

两阶段训练:

以 BLOOMZ为基础训练SeqGPT,它是 BLOOM的指令调整变体,采用两阶段训练策略,包括预训练和微调,即使用不同的训练数据。另外,使用简单的 PT 和 FT 混合数据进行训练。

3.原文阅读

Abstract

大型语言模型(LLM)在开放域 NLP 任务中表现出了令人印象深刻的能力。然而,对于输出和输入格式总是受到限制的自然语言理解(NLU)任务来说,大型语言模型有时过于自由。它们在 NLU 任务中的表现与提示或演示有很大关系,而且在执行几项有代表性的 NLU 任务(如事件提取和实体键入)时表现不佳。为此,我们提出了 SeqGPT,这是一个开源自回归模型,专门针对开放域自然语言理解进行了增强。我们用两个原子任务来表达所有的 NLU 任务,这两个任务定义了固定的指令来限制输入和输出格式,但仍然 "开放 "给任意变化的标签集。该模型首先使用 ChatGPT 合成的极细粒度标签数据,然后通过来自不同领域 152 个数据集的 233 个不同原子任务进一步微调。实验结果表明,SeqGPT 具有良好的分类和提取能力,并能在未见过的领域执行语言理解任务。我们还对数据和模型规模的扩展以及任务间的转移进行了实证研究。我们的模型可在 https://github.com/Alibaba-NLP/SeqGPT上查阅。

1 Introduction

指出LLM用于NLU的问题缺陷:

大型语言模型(LLMs)的最新进展表明,它们在各种 NLP 任务中的能力令人印象深刻。在自然语言理解(NLU)任务方面,尽管语言模型采用的下一个词预测方法对特定任务的输出结构(如命名实体识别(NER)中的跨词和关系提取(RE)中的三连词)几乎没有影响,但都曾尝试过这种方法。通过应用提示工程将 LLMs 应用于开放域 NLU 任务,这主要归功于 LLMs 卓越的泛化和指令遵循能力(图 1)。然而,直接应用 LLMs 也有明显的缺点。例如

  1. GPT-3有 175B 个参数,这会导致相当大的推理成本和定制化挑战。
  2. 要实现良好的性能并确保符合输出格式标准,提示的工程设计至关重要。然而,它具有很强的经验性,模型可能无法始终如一地遵守它
    在这里插入图片描述

指出中等模型在NLU任务中的优势:

为了更有效地执行 NLU 任务,一些研究人员专注于继续训练中等规模的基础模型(约 10B 参数,如 BLOOM-7B),这些模型不仅提高了计算友好性,还提供了有竞争力的能力,以统一各种任务的方式。训练过程中消耗的数据既可以来自现有近域数据集的聚合,也可以来自开放域但有噪声的数据集,这些数据集是通过弱监督和与 LLMs 交互等方法生成的。据称,额外的训练使中等规模的模型在各种 NLU 基准中的zero-shot性能超过了大规模模型。这些经过调整的模型还能提供稳定的标准输出接口,方便评估和下游应用。

本文提出的模型优势:

我们的研究与通过训练提高语言学家的无逻辑单元能力的研究方向一致,但与之前的研究相比,我们的研究涉及更广泛的无逻辑单元任务,并纳入了更多样化的开放域数据。这是最近的指令调整研究促成的,这些研究强调了增强任务多样性而非简单增加数据量的优势。具体来说,我们收集并统一了11个NLU任务的152个数据集,其中不仅包括常见的信息提取(IE)任务,如NER,还包括之前工作中忽略的任务,如自然语言推理(NLI)和基于提取的机器阅读理解(MRC)。此外,为了弥补实际场景与现有近域 NLU 数据之间的差异,我们从各种来源生成了一个大规模的开放域数据集。与早期自动生成 NLU 数据的研究(通常依赖于单一领域来源(如维基百科),并根据预定义的知识库分配标签)不同,我们指示 ChatGPT 为每个样本生成适当的标签并识别相应的答案,因为 ChatGPT 擅长总结和生成人类水平的注释。生成的数据集包含 80 多万个不同的合理标签,比以前的数据集丰富得多,但经过我们的人工检查,仍然保持了很高的质量。

SeqGPT介绍:

利用这两个数据集,我们训练了基于 BLOOMZ 的Sequence 理解增强型GPT,简称 SeqGPT,这是一个经过指令调整的语言模型系列。我们的训练过程包括两个阶段**:**

  1. 首先是使用 ChatGPT 生成的各种数据(尽管有噪声)进行预训练,
  2. 然后使用收集的真实 NLU 数据集进行微调。

之所以采取这种策略,是因为我们希望首先通过使用不同的数据来增强泛化能力,然后再根据人类的偏好来完善模型。我们的实验表明,SeqGPT 在zero-shot NLU 基准上一直远远超过 ChatGPT。我们研究的主要发现可总结如下:

  • 扩大模型规模可提高性能。
  • 然而,仅仅扩大数据规模而不考虑多样性并不能持续提高性能。
  • 增加任务多样性可以提高性能,尽管这种提高与任务数量呈对数关系。
  • 较大的模型能够跨语言和跨任务泛化。

2 Method

2.1.Unified Approach

提出的统一方法,即统一输入输出:

为了解决新颖的开放域任务,语言模型需要一个连续的输入,其中包括句子和任务所需的知识,并输出相应的答案。为了用单一模型和一致的输入输出格式解决不同的 NLU 任务,我们考虑采用一种统一的方法,将它们转化为两个原子任务:

  • 提取 (EXT): 这项任务可识别每个查询的所有相关跨度。查询可以是一个单词、一个短语(如传统的提取任务)或一段自然语言描述(如机器阅读理解和指令跟踪)。
  • 分类(CLS):这项任务的目的是将整个输入与给定标签的一个合适子集联系起来,从而实现多类和多标签分类。

提示模板:

对于每个原子任务,我们都设计了一个简单的提示模板,其中包括:

  1. 一些表示输入不同部分的控制tokens;
  2. 要分析的特定文本;
  3. 感兴趣的查询或标签列表。

输出方式:

在输出方面,根据原子任务的类型,答案被格式化为固定且易于解析的形式。特别是在提取任务中,答案会逐行列出。每一行都包含一个用户键入的查询,然后是一个短语列表作为相应的答案。我们不要求模型提供从这些短语中提取的位置,因为基于transformer的模型并不精通标记计数。对于分类任务,答案的格式为单行列表,其中包含从提供的标签集中提取的答案标签。

涉及多个原子的任务:

通常情况下,大多数任务只涉及其中一个原子任务。NLI 和 NER 就是仅依赖于分类或提取的任务。不过,有些任务需要分解成多个原子任务。例如,关系抽取(RE)首先要识别跨度,然后进行分类以辨别每个跨度对之间的关系。此外,我们还进行了必要的提示设计,以处理特定任务的输入。例如,NLI 涉及两个句子(即前提和假设)。我们用分隔符将它们连接起来。图 2 是一个简要说明。

在这里插入图片描述

通过查询或标签来表示特定任务—可以推广到新任务:

与以往需要花费大量精力来设计任务描述的指令调整研究相反,我们通过信息查询或标签为我们的模型注入了特定任务的信息。因此,模型可以推广到新的任务和领域,而不需要人类费力去精心设计新的任务描述。虽然这种方法可能会因为在推理时注入不灵活的先验知识而限制其性能,但我们的实验表明,在对大量 NLU 任务进行持续训练后,模型学会了如何解决 NLU 任务以及如何进行泛化,从而消除了在推理时对额外信息的需求,从而实现了效率和效果之间的平衡

由于提示是实现高性能的关键,我们研究了各种设计可能性,如使用特定语言模板或语言无关模板。

2.2.Pre-training Data

最近有证据表明,数据多样性的扩展有利于模型在未见数据上的泛化能力,受此启发,我们构建了一个大规模预训练(PT)数据集,该数据集具有极其多样的标签集和多个源领域,包括维基百科、新闻和医学。为了涵盖这两个原子任务,我们考虑了三个任务:分类、实体键入和 NER,其注释是通过提示 ChatGPT 为每个样本创建适当的标签并在开放域设置中识别相应的答案来创建的。最后,PT 数据集包含 1,146,271 个实例和 817,075 个不同的标签。

2.2.1 Negative Label Generation

负标签构造:

ChatGPT 生成的 PT 数据不能直接用于训练,因为其中缺少负标签,即没有答案的标签。我们采用了一种简单的策略:从相应的 PT 任务(即 CLS、ET 和 NER)中出现的所有标签集中随机抽取标签来增强 PT 数据中的样本。由于该集合数量庞大,这些抽样标签很可能与输入句子无关,因此可以放心地假设没有相应的答案。

2.3.Fine-tuning Data

高质量数据集:

在这里插入图片描述

为了进一步校准模型以执行 NLU 任务,并消除 PT 数据集中的错误所造成的影响,我们收集了来自不同领域的大量高质量 NLU 数据集进行微调。如图 3 所示,我们的微调(FT)数据集由 110 个 NLU 数据集组成,涵盖中英文两种语言和 10 个任务,包括 NER、RE 和 EE 等 IE 任务,以及 NLI 和 MRC 等可翻译成这两个原子任务的其他任务。除了任务覆盖面广,数据的多样性还得益于不同的源领域,包括医学、新闻和人工智能助手对话,以及不同粒度的标签或查询。每个任务都被转化为原子任务的组合,从而产生了 139 个分类原子任务和 94 个提取原子任务。我们人工选择了一小部分 NLU 数据集,作为零次评估的保留集。

2.3.1 Balancing data

平衡数据:

我们的 FT 数据收集了大量数据集,以确保数据的多样性,但与此同时,这也带来了数据的不平衡。以两个分类数据集为例,IfLYTEK和 AG News平均每个标签分别包含 124 和 31,900 个实例。在我们的实施过程中,我们将收集到的数据和样本数据统一、随机地结合在一起。这种不平衡可能会导致样本量大的任务拟合不足,或者在小数据集上过度采样。因此,我们为每个数据集-标签对设置了一个配额,用于平衡数据。对于实例数量少于配额的数据集-标签对,我们使用整套实例,而不进行向上采样。

2.4.Two-stage Training

我们以 BLOOMZ为基础训练SeqGPT,它是 BLOOM的指令调整变体,采用两阶段训练策略,包括预训练和微调,暗指使用不同的训练数据。在我们的初步实验中,这一策略优于其他策略:使用简单的 PT 和 FT 混合数据进行训练。具体来说,我们使用填充来建立批次,并掩盖输入标记上的训练损失。大多数超参数,包括优化步骤、学习率和批量大小,在所有实验中都是一致的。

3 Experiments

3.1.Evaluation

鉴于 LLM 有时会生成合理但不完全匹配的答案,传统的 Micro-F1 指标在评估时不够平滑。为了缓解这一问题,并使评估更能容忍小缺陷,我们建议将 Micro-F1 和更平滑的 ROUGE 分数结合起来,作为总体指标。具体来说,我们取 ROUGE-1、ROUGE-2 和 ROUGE-L (Lin,2004)2 的平均值作为 ROUGE 分数,再取 Micro-F1 和 ROUGE 分数的平均值作为最终得分。

为了全面评估泛化能力,我们在 233 个保留数据集和 49 个未保留数据集上对 SeqGPT 进行了评估。具体来说,训练时使用保留数据集的训练分集,训练时不使用保留数据集中的样本,训练时使用保留数据集中涉及的所有任务。为了提高效率,我们从每个评估数据集的有效和测试数据集中随机抽取 48 条记录。此外,对于转化为多个原子任务的任务,我们简化了评估,只报告原子任务的平均得分。除非另有说明,为简化起见,本节中报告的所有分数均为保持性能。

3.2.Baselines

我们将 SeqGPT 与著名的大型聊天语言模型 ChatGPT和指令微调模型系列 BLOOMZ进行了比较,以证明我们方法的有效性。

3.3.Main Results

在这里插入图片描述

表 2 比较了 SeqGPT 系列和基线的保持性能。根据结果,我们得出以下结论:

(1)最小的 SeqGPT-560M 以 27.4 的较大优势超过了 ChatGPT 的性能,这表明我们的框架非常有效,小型模型也能学习到强大的自然语言理解能力。另一方面,由于 ChatGPT 生成的输出格式与我们的评估数据格式并不总是一致,因此我们采用的指标可能会影响 ChatGPT 的总体得分。此外,ChatGPT 有时无法理解提示,从而导致不相关的回复。有关 ChatGPT 与 SeqGPT 比较的详细分析,请参阅第 3.7 节。

(2) 通过使用更大的 7B1 骨干,平均得分可以进一步提高到 65.5。这种提高可归因于更大的预训练语言模型所带来的更好的复杂推理能力和更丰富的世界知识。

(3)弱监督超细粒度预训练数据很有帮助,尤其是对于较小的模型。如果不使用预训练数据,SeqGPT 的性能会从 57.2 降到 53.9。具体来说,对于各种规模的 SeqGPT 来说,需要对实体有不同理解的实体类型得分都大幅下降。

(4)利用预训练数据所获得的性能提升虽然有效,但随着模型规模的增大,所获得的性能提升也会缩小。我们认为,这是因为预训练数据中的超细粒度知识也可以在 LLMs 的预训练阶段直接学习到,而且随着预训练 LLMs 模型规模的增大,这些知识的学习效果会更好。另一方面,天真的 BLOOMZ 7B1 甚至远远落后于最小的 SeqGPT 560M。我们发现,BLOOMZ 7B1 生成的输出很难与指令保持一致,这表明要利用这种通用指令跟踪模型来解决开放域 NLU 任务,可能需要复杂的提示工程或少量示例。

3.4.Scaling Analysis

我们广泛研究了模型大小、每个任务的样本数量和不同任务数量的比例对模型性能的影响,发现所有这些因素对建立开放域序列理解模型都至关重要。

3.4.1 Model Size

在这里插入图片描述

我们以 BLOOMZ 系列为基础,训练了一系列从 560M 到 7B1 的不同大小的模型,以探索模型大小的缩放效应。图 4 中的结果显示,"保持在 "和 "保持在 "的性能都随着时间的推移而提高。

3.4.2 Number of Training Datasets

除了模型大小之外,训练数据集的数量也是影响结果性能的主要因素,因此我们也进行了大量实验来探索这一影响。图 5 中的结果表明,我们的 SeqGPT 模型的性能随着训练数据集的增加而呈对数增长。
数据集越多,我们的 SeqGPT 模型的性能就越高。基于这一观察结果,我们认为增加更多的训练数据集是进一步提高性能的有效而直接的方法,因为与丰富的实际应用场景相比,我们所持有的数据集仍然很小。应用场景相比,我们所保留的语料库仍然很小。

3.5.Cross-language Generalization

我们使用了大量的中英文训练数据。为了探索各语言数据对 SeqGPT 跨语言泛化能力的影响,我们进行了大量实验,主要结果如表 3 所示。我们可以看到,用单一语言(英语/中文)训练的模型可以泛化到另一种语言(中文/英语)的任务中,并取得合理的性能。比较用英语和两种语言的数据训练的模型,我们发现英语任务和中文任务的得分都有提高,这表明语言之间存在共享技能,可以通过多语言训练阶段学习。

3.6.Cross-task Generalization

虽然在我们的框架中,大部分提示相同,但解决不同任务所需的技能却各不相同。为了分析 SeqGPT 在训练过程中未见的任务上如何工作,以及训练任务如何影响不同测试任务的表现,我们只用一个任务训练了一系列模型,结果如图 7 所示。根据结果,我们发现除了 NLI 任务外,当评估任务与训练任务相同时,模型的评估性能最好。在 NLI 性能方面,我们发现在 NLI 任务中训练的模型甚至取得了最差的性能。我们认为这是因为在不同的 NLI 数据集上对句子进行分类的方式不同。因此,仅在 NLI 数据集上训练的模型很难将从 heldin 数据集上学习到的分类界限转移到 held-out 数据集上。在 EE、MRC 和 RE 上训练的模型可以很好地泛化到所有测试任务中,这表明解决这些任务所需的各种知识对其他任务也至关重要,可以作为针对通用领域 NLU 模型的重要训练资源。

4 Related Work

4.3 Uniffed models for NLU

不同的无语言学习任务强调语言的不同方面。多任务学习已成为一个热门话题,它利用了联合建模所选 NLU 任务子集的优势,例如可以使用更多的训练数据或对任务之间的相似性进行建模。当纳入更多任务时,序列生成模型成为引人注目的选择,因为自由文本可能是对各种 NLU 任务的所有输出进行编码的最直接方式。UIE(Lu 等人,2022b)通过基于模式的提示机制统一了 IE 任务的输入,并通过新颖的结构提取语言统一了输出。因此,只要给出合适的提示,它就能利用所学到的共同语义理解能力执行新颖的 NLU 任务。随后,InstructUIE(Wang 等人,2023a)通过对更强的骨干模型(如 Flan-T5 11B)进行指令调整,扩展了 UIE,显示出很强的零误差性能。USM(Lou 等人,2023a)是另一种基于名为语义匹配的链接预测机制的无差异 IE 模型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值