【论文精读】GPT-NER: Named Entity Recognition via Large Language Models

前言

一篇2023年4月26日才挂上arxiv的文章,是我看到的第一篇用LLM解决NER任务的文章,在我看来,LLM才是NER问题的最优解,尤其是小样本场景,具有丰富先验知识的LLM,其涌现能力总能让我叹为观止。


Abstract

LLM在NER上的表现低于基线,这是因为二者任务不同,前者是文本生成任务,后者是序列标记任务。GPT-NER通过将序列标记任务转换为LLM的生成任务来弥补二者的差距。例如输入是Columbus is a city,输出@@Columbus## is a city,@@##是需要提取的实体的标记。为了解决LLM的幻觉问题,即LLM倾向自信地将NULL输出当做实体,本文为还提出一种自我验证策略,提示LLM询问自己提取的实体是否属于标记的实体标签。在五个广泛使用的数据集上GPT-NER都实现了与完全监督基线相当的性能,并且在小样本场景GPT-NER表现优于监督模型。

1. Introduction

LLM只需要简单的示例,就可以为新的测试输入生成结果。在情境学习的框架下,LLM已经在各种NLP任务如翻译、问答、关系抽取取得了可喜的成果。但是由于LLM和NER任务不同,LLM在NER上表现远远低于baseline。GPT-NER可以将NER任务转换为文本生成任务,这种策略可以显著降低生成编码输入序列的标签信息文本的难度,实验表明该策略显著提升了性能。
为了缓解LLM倾向自信地将NULL输出当做实体的问题,提出一种自我验证策略,放置在实体提取阶段之后,提示LLM询问自己提取到的实体是否属于标记的实体标签。这种方式可以有效解决幻觉问题,从而显著提高性能。
实验部分达到了与完全监督相等的性能,此外由于token长度限制(4096)性能无法稳定,如果使用超过20K长度token的GPT-4,肯定还能有所提升。
GPT-NER在低资源、小样本NER表现优于监督模型。

2. Related Work

2.1 Named Entity Recognition

命名实体识别 (NER) 是一项识别文本中的关键信息并将其分类到一组预定义类别中的任务。

2.2 Large Language Models and In-context Learning

将LLMs用于下游任务的策略可以分为两类,微调和情境学习。前者需要在下游的监督数据上继续训练更新参数,后者提示LLM在小样本演示下生成文本,更好的prompts和演示可以提升情境学习的性能。

3. Background

3.1 NER as Sequence Labeling

解决NER常见的方法是将其作为序列标注任务,可以分为两个步骤:表示提取和分类。
表示提取: 旨在获得输入序列token的高维表示,将输入句子送入编码器模型如BERT,然后将最后一层embedding作为token的高维表示 h i ∈ R m × 1 h_i\in \mathbb{R}^{m \times 1} hiRm×1
分类: 每个嵌入的高维向量被送到MLP,使用softmax生成分布。

4. GPT-NER

GPT-NER使用LLM解决NER任务,它遵循情境学习的一般范式,可以分解为三步骤:

  1. 构建Prompt,对每个输入句子都构建一个prompt;
  2. 将构建的prompt喂入LLM中得到生成的文本序列;
  3. 将文本序列转换为实体标签。

下面介绍如何让LLM适应NER任务的策略。

4.1 Prompt Construction

image.png
上图是GPT-NER的示例,由三部分组成。

4.1.1 Task Description

任务描述可以进一步分解为三部分:

  1. 第一句话是任务的描述,告诉LLM使用语言知识产生输出;
  2. 表示要提取实体的类别,对于每个输入的句子,构建N次提示,每一次对应一个实体类型,可以理解为N个二分类任务,这是受到token长度的限制;
  3. 描述小样本演示的位置。

4.1.2 Few-shot Demonstration

每个标记句子的格式需要满足:

  1. 包含每个单词标签的信息,可以很容易转换为实体类型序列;
  2. 可以由LLM顺利生成。

比如句子"Columbus is a city",生成"LOC O O O",条件1很容易满足,但是对于生成序列,LLM需要学会文本对齐,这增加了生成任务的难度,此外作者发现GPT-3很难生成和输入等长的句子。为了解决这个问题,作者设计了特殊符号包围实体,如下所示:
image.png
这种方式显著降低了文本生成的难度。

4.1.3 Input Sentence

这部分将当前输入语句输入到LLM中,并期望LLM根据4.1.2节中定义的格式生成输出序列。

4.2 Few-shot Demonstrations Retrieval

4.2.1 Random Retrieval

最直接的策略是从训练集中随机选取K个样本,但是这样无法保证检索到的示例在语义上接近输入。

4.2.2 kNN-based Retrieval

为解决随机检索相关性问题,可以从训练集中检索输入序列的K近邻,首先计算所有训练样本的表示,在此基础上获得输入序列的k个最近邻居。
**基于句子级表示的kNN:**使用文本相似度模型,获得训练示例和输入序列的句子级表示计算余弦相似度找到kNN。这样的缺点是显而易见的,NER是token级任务,更关注局部,可能找到的示例不包含NER。
实体级嵌入:首先使用微调的NER标记模型提取所有token的实体级表示,对于长度为 N 的给定输入序列,我们首先遍历序列中的所有token以找到每个token的 kNN,获得 K × N 检索到的标记。接下来,我们从 K×N 检索到的token中选择前 k 个token,并使用它们的关联句子作为演示。

4.3 Self-verification

LLM存在幻觉或者过度预测问题,如下所示:
image.png
其中Hendrix被识别为位置信息显然错误,为此作者提出了自我验证策略。给定 LLM 提取的实体,我们要求 LLM 进一步验证提取的实体是否正确,回答是或否。
image.png
同样,这需要少量的演示来提高自我验证器的准确性,如上图黄色框所示。
示例选择:我们需要选择演示来进行小样本的自我验证。由于自验证的核心是询问提取的实体是否是特定实体类型,因此我们需要选择有提取实体的训练示例。
因此选择实体级嵌入进行kNN演示搜索,而不是句子级别表示:

  1. 首先通过微调的NER模型为所有训练token提取实体级表示;
  2. 使用相同的模型提取查询词的表示;
  3. 最后,我们使用查询词的表示从数据存储中选择 k 个示例作为小样本演示。

5. Experiments

使用GPT-3进行实验。

5.1 Results on the Full Training Set

5.1.1 Results on Flat NER

对于平面 NER,实体不能相互重叠。在CoNLL2003和OntoNotes5.0上进行实验。前者包含四种类型名命名实体:位置、组织、人员和其他。后者包含18种类型的命名实体,11种类型(人、组织)和7种值(数据、百分比)。
image.png
Main Results. 上表分别显示了flat NER的部分和完整测试集的结果,观察如下:

  1. kNN检索对NER任务至关重要;
  2. token级嵌入对性能有明显改进;
  3. 添加自我验证进一步提升性能;
  4. 基于LLM的系统达到了与基线相同的性能。

5.1.2 Results on Nested NER

嵌套 NER,每个句子中的实体可能相互重叠。作者在三个广泛使用的嵌套NER数据集ACE2004 & ACE2005和GENIA上进行实验。前者包含七种类型实体,采用8:1:1分为训练集、验证集和测试集,后者是分子生物学领域的嵌套NER数据集,包含五种实体类型。
image.png
Main Results. 结果如上表所示,观察到:

  1. kNN检索对NER任务至关重要;
  2. token级嵌入对性能有明显改进;
  3. 添加自我验证进一步提升性能.

和SOTA之间的差距大于flat NER,因为:

  1. 嵌套NER包含更多相似的实体;
  2. 三个嵌套 NER 数据集的注释指南更加复杂且不那么直接。

5.2 Results on Low-resource Scenario

低资源场景NER实验在CoNLL2003上进行。为了模仿低资源场景,随机挑选训练集子集,8个训练句子,100个训练句子,10K训练句子。8个训练句子的设置确保每个实体类型包含一个正例和一个负例。

5.2.1 Results

image.png
结果如上图所示,有如下观察:

  1. 当训练集规模很小时,监督模型的性能远远低于GPT-3;
  2. 随着训练数据的增加,kNN检索比随机检索性能提升要快;
  3. 当数据量达到10%,随着训练数据量增加,监督模型性能显著提升,而GPT-3结果边际提升。

6. Ablation Study

6.1 Varying the Format of LLM Output

将下面两种输出格式进行对比:
image.pngimage.png
BMES: 直接输出每个标记的开头、中间、结果和O;
Entity+Position: 要求 LLM 输出句子中的实体及其位置。
为了进行同类比较,做和对三种输出格式使用相同的设置,并在 100 个样本的 CoNLL 2003 数据集上进行32个小样本的实验。结果分别为92.68(##@@策略),29.75,38.73。分析可能是BMES需要学习token和标签之间的对齐,并且很难输出和输入相同长度的字符串。对于实体+位置策略,LLM会混淆位置索引,导致实体位置不正确。

6.2 The Number of Few-shot Demonstrations

image.png
观察上图可以发现,随着k的增加,三个结果都不断升高,意味着如果允许更多的演示,性能仍会提高。
一个有趣的现象时当演示数量很少时,KNN策略不如随机检索策略,可能是因为KNN倾向选择与输入句子非常相似的演示,如果输入句子不包含任何实体,则检索到的演示大多不包含任何实体。如下所示:
image.png

7. Conclusion

本文提出GPT-NER以使LLM适应NER任务。作者设计一种prompt来提示LLM生成实体标记,此外在演示部分设计了KNN和token嵌入来帮助LLM更好生成输出,并且作者提出一种自我验证策略来缓解LLM的幻觉问题。最后模型性能和基线相当,并且在低资源场景有显著的优势。

阅读总结

一篇2023年4月26日才挂上arxiv的文章,是我看到的第一篇用LLM解决NER任务的文章,文中的方法很有创意,通过设计prompt激发大模型生成预期序列的能力着实让我感叹LLM的无限潜力,并且这只是在GPT-3就能达到baseline的效果,如果换成现在的GPT-4,那结果不敢想,在我看来,LLM才是NER任务的最优解,如此复杂的序列标注问题,果然还是需要魔法打败魔法,之前所看到的对比学习方法、元学习方法等,在LLM面前可能真的不堪一击,当然我还会继续调研的。

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: GPT-NeoX是一个基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型。该模型是由EleutherAI团队在2021年提出的。它采用的是大规模分布式训练的方式,使得模型可以处理更大规模的数据集,具有更强的泛化能力。 相比于传统的模型训练方式,GPT-NeoX采用Deepspeed库实现了模型并行训练,实现了多卡训练和多节点训练,从而更好地利用GPU资源加速模型的训练速度。此外,GPT-NeoX还引入了一些新的优化技术,如局部梯度累积和梯度Chip-Level Pruning,进一步提高了模型的训练效率和性能。 GPT-NeoX的另一个特点是它采用了与GPT-3类似的Transformer结构,可以处理各种NLP任务,如文本生成、问答系统、机器翻译、情感分析等。GPT-NeoX还提供了基于一种新型的自监督训练方式的Unsupervised Pretraining功能,可以在没有标注数据的情况下对模型进行预训练,从而更好地适应各种NLP任务。 总之,GPT-NeoX是一款基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型,采用多卡和多节点训练的方式,实现了更高效的模型训练。同时,它还具有与GPT-3类似的Transformer结构和Unsupervised Pretraining功能,适用于各种NLP任务。 ### 回答2: GPT-NeoX是一个基于Deepspeed库的GPU上的类似于GPT-3的模型并行模。该模型采用了分布式训练的技术,使得大规模的预训练模型的训练成为可能。 GPT-3模型是当前自然语言处理领域中最先进的模型之一,但是在模型规模扩大后,面临着训练时间长,并且需要大量计算资源的问题。为了解决这个问题,GPT-NeoX使用了Deepspeed库,通过将模型划分成多个微迭代,实现了模型的分布式训练。 在GPT-NeoX模型中,微迭代的数量决定了模型的分布式训练的程度。越多的微迭代数表示模型的分布式训练程度越高,但同时也会增加训练的时间。因此,在GPT-NeoX模型的设计中,需要根据模型的规模选择适当的微迭代数,以充分利用计算资源,同时保证训练时间不过长。 通过使用Deepspeed库,GPT-NeoX模型不仅实现了大规模预训练模型的训练,也获得了很好的训练效果。这证明了分布式训练对于提高模型性能和训练效率的重要性。未来,GPT-NeoX模型的研究还将继续深入探索并发控制算法及单机扩展策略的优化,这些工作将进一步提高分布式训练的效率及模型的性能。 ### 回答3: GPT-NEOX是一种基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型。这个模型的目标是让机器能够像人一样生成自然语言,使得机器能够自动地产生文本和对话,而这一过程是通过机器学习算法实现的。 GPT-NEOX采用了一种全新的架构,利用并行算法使得模型训练的速度更加的快捷和高效。同时,为了更好地提升模型的性能,GPT-NEOX在模型更新和内存使用方面也进行了优化,使得模型的训练和应用更加稳定。 GPT-NEOX的设计理念是通过模型并行来增加计算资源,提高模型的计算速度和效率。它与GPT-3一样,使用了大量的参数和数据来训练,并有着相似的自然语言处理技术,但它也进行了一些改进,例如采用了不同的架构和算法。 GPT-NEOX的模型精度和应用性能已经有了很大的提升,同时也得到了广泛的应用和推广。我们相信,在未来的日子里,GPT-NEOX还会继续深入研究和优化,成为更加高效、精准和可靠的自然语言处理算法。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HERODING77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值