GPT-NER:使用大型语言模型进行命名实体识别

讲在前面,chatgpt出来的时候就想过将其利用在信息抽取方面,后续也发现了不少基于这种大语言模型的信息抽取的论文,比如之前收集过的:

  • https://github.com/cocacola-lab/GPT4IE

  • https://github.com/RidongHan/Evaluation-of-ChatGPT-on-Information-Extraction

  • https://github.com/cocacola-lab/ChatIE

  • Unified Text Structuralization with Instruction-tuned Language Models

接下来继续介绍另一篇论文。

GPT-NER:通过大型语言模型的命名实体识别

GPT-NER: Named Entity Recognition via Large Language Models

https://arxiv.org/pdf/2304.10428v1.pdf

https://github.com/ShuheWang1998/GPT-NER

Part1前言

为什么使用大语言模型在NER上的表现仍然明显低于普遍的基线?

由于NER和LLMs这两个任务之间的差距:前者本质上是一个序列标记任务,而后者是一个文本生成模型。

怎么解决上述的问题呢?

  • GPT-NER通过将序列标签任务转换 为一个可以被LLMs轻松适应的生成任务来弥补这一差距,例如, 在输入文本Columbus是一个城市中寻找位置实体的任务被转换为生成文本序列@@Columbus##是一个城市,其中特殊标记@@##标志着要提取的实体。

  • 为了有效地解决LLMs的幻觉问题,即LLMs有一个强烈的倾向,即过度自信地将NULL输入标记为实体,我们提出了一个自我验证策略,即提示LLMs询问自己所提取的实体是否符合标记的实体标签。

Part2介绍

GPTNER遵循语境学习的一般范式,可以分解为三个步骤:

  • (1)构建提示:对于一个给定的输入句子X,我们为X构建一个提示(用Prompt(X) 来表示);

  • (2)将提示输入到大语言模型得到生成的文本序列W = {w1 ,..., wn };

  • (3)将文本序列W转化为实体标签序列,以获得最终的结果。

如图所示:第一句话:你是一个优秀的语言学家;第二句话:任务是从给定的句子中标记xxx实体。接下来是一些例子,然后给树了一些例子。最后再输入自己想要提取实体的句子得到结果。很容易发现,每次只能提取一种实体,因此要提取出所有的实体,必须遍历实体列表。例如GPT-3,对提示的长度有 一个硬性的限制(例如GPT-3的4096个tokens)。鉴于这种有限的标记数量,我们不可能在一个提示中包括对所有实体类型的描述和演示。

1怎么提供实例样本?

如图所示:

  • 1、一个已经训练好的ner模型提取训练数据中的实体,并为每一个实体构建(实体,句子)对。

  • 2、将句子输入的模型中并获取实体的表示。

  • 3、通过knn找到和实体向量最接近的几个邻居,将得到的句子视为样例。

2怎么进行自我验证?

Prompt:
I am an excellent linguist. The task is to label location entities in the given sentence.
Below are some examples.
Input:Columbus is a city
Output:@@Columbus## is a city
Input:Rare Hendrix song sells for $17
Output:
GPT-3 Output:
Rare @@Hendrix## song sells for $17

过度预测是指将不是实体的预测为实体。如上面的例子:Hendrix被识别为一个location实体,这显然是不对的。自我验证策略:给定一个由LLM提取的实体,我们要求LLM进一步验证该提取的实体是否正确,用是或否回答。比如:

“The task is to verify whether the word is a location entity extracted from the given sentence”
(1) “The input sentence: Only France and Britain backed Fischler’s proposal”,
(2) “Is the word "France" in the input sentence a location entity? Please answer with yes or no”.
(3) Yes

同样的,也是根据之前的策略选择样例。

Part3实验

  • 模型:GPT-3 (Brown et al., 2020) (davinci-003)

  • 最大长度:512

  • 温度:0

  • top_p:1

  • frequency_penalty:0

  • presence_penalty:0

  • best_of:1

总结一下,利用大语言模型进行信息抽取,大多数都是采用这种类似问答的方式进行的,也就是分为多个步骤。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/65367.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion教程(9) - AI视频转动漫

配套抖音视频教程:https://v.douyin.com/UfTcrcJ/ 安装mov2mov插件 打开webui点击扩展->从网址安装输入地址,然后点击安装 https://github.com/Scholar01/sd-webui-mov2mov 最后重启webui 下载模型 从国内liblib AI 模型站下载模型 LiblibAI哩…

windows安装apache-jmeter-5.6.2教程

目录 一、下载安装包(推荐第二种) 二、安装jmeter 三、启动jmeter 一、下载安装包(推荐第二种) 1.官网下载:Apache JMeter - Download Apache JMeter 2.百度云下载:链接:https://pan.baidu.…

如何查询多级菜单(采用递归的方法)

应用场景 1.京东 京东的页面就是这么显示的在家用电器下面有电视.空调.洗衣机然后再电视下面又有全面屏电视.教育电视等等 2.我们的后端管理系统 我们后端在页面上显示的很多也是通过层级目录的显示出来。 如何实现 1.准备数据库 我们这里parent_id为0的为我们的一级菜单 …

python_day19_正则表达式

正则表达式re模块 导包 import res "python java c c python2 python python3"match 从头匹配 res re.match("python", s) res_2 re.match("python2", s) print("res:", res) print(res.span()) print(res.group()) print("…

Java 成功实现通过网址URL截图保存

Java 实现通过网址URL截图 1.DjNativeSwing方式 (不好用)2.phantomjs方式 (截图还是有瑕疵)3.selenium方式 (满意,成功实现)maven 引入下载相关浏览器chrome下载相关浏览器chromedriver驱动后端…

ElasticSearch学习

一,简介 ES(elaticsearch简写), Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据…

9-数据结构-栈(C语言版)

数据结构-栈(C语言版) 目录 数据结构-栈(C语言版) 1.栈的基础知识 1.入栈,出栈的排列组合 情景二:Catalan函数(计算不同出栈的总数) 2.栈的基本操作 1.顺序存储 (1)顺序栈-定义…

c语言操作符

目录 运算符 移位操作符 左移操作符 右移操作符 位操作符 按位与& 按位或| 按位异或^ 异或交换数字 计算二进制中1的个数 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 隐式类型转换 整形提升实例: 算术转换 操作…

Java并发编程(四)线程同步 中 [AQS/Lock]

概述 Java中可以通过加锁,来保证多个线程访问某一个公共资源时,资源的访问安全性。Java提出了两种方式来加锁 第一种是我们上文提到的通过关键字synchronized加锁,synchronized底层托管给JVM执行的,并且在java 1.6 以后做了很多…

Flink窗口分类简介及示例代码

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 1. 流式计算2. 窗口3. 窗口的分类◆ 基于时间的窗口(时间驱动)1) 滚动窗口(Tumbling Windows)2) 滑动窗口(Sliding Windows&…

ArcGIS Maps SDK for JavaScript系列之三:在Vue3中使用ArcGIS API加载三维地球

目录 SceneView类的常用属性SceneView类的常用方法vue3中使用SceneView类创建三维地球项目准备引入ArcGIS API创建Vue组件在OnMounted中调用初始化函数initArcGisMap创建Camera对象Camera的常用属性Camera的常用方法 要在Vue 3中使用ArcGIS API for JavaScript加载和展示三维地…

太牛了!国内版ChatDoc企业知识库,直接操作Doc、Docx、PDF、txt等文件

自ChatGPT问世以来,国外就有ChatPDF、ChatDOC等基于文档问答的项目,但是国内还一直处于对话类产品的研发中。 贵州猿创科技研发了基于本地向量模型的ChatDoc知识库系统,可以直接上传Doc、Docx、PDF、txt、网页链接等进行问答。 体验地址&…