大模型做实体识别任务的原理

1、背景

命名实体识别(named entity recognition,NER):通常是一个序列标注的任务,常见的模型框架有:LSTM-CRF、BERT+BILSTM+CRF等,该种任务通常被成为flat NER即:每一个token只分配一个label;序列标准任务还会受到分词器的影响,而对于nested NER,即一个token可能被赋予多个实体。如:老中医(本身中医是一个学科实体,但是“中医”与“老”连起来表达的是一个身份实体,即中医被赋予了不同的含义)

2、原理介绍

目前基于QA问答形式的大模型技术日前在蓬勃的发展,通过问答任务训练实体识别NER任务,被称之为MRC(机器阅读理解)。将目标词(实体类型)当成一个自然语言的查询query,对于给定的上下文句子,以回答问题的方式将实体值识别出来。

(1)任务的目标:对于输入的文本句子序列X = {x1, x2,…, xn},其中n表示序列的长度,需要从文本句子X中找到每个实体片段span,然后给该实体片段分配一个标签y∈y,其中y是一个预定义的所有可能的标签类型(目标词)的列表(如地址、电话号码、职业、学历等实体类型)

(2)模型的框架:将{[CLS], q1, q2, ..., qm, [SEP], x1, x2, ..., xn},其中qy表示的是目标实体类型y对应的查询,即将带识别的目标词和文本上下文放在一起,送入大模型进行统一的编码,根据生成的embedding表示,通过分类任务进行实体片段的识别

(3)片段识别器:通过双指针网络从输入的x1, x2, ..., xn中,发现实体span的起点和终点,模型寻找start和end的过程:n个二分类器的判读过程,即对于输入n长度的文本句子中的每个词进行二分类器,判断是否是起点还是终点,这样通过定的上下文和特定的查询输出多个开始索引和多个结束索引。对于每个位置的embedding进行T转化生成起始位置的概率分布,同理可生成终止位置的概率分布,在起始的概率分布中找到概率最大对应的位置,作为起始位置,在终止的概率分布中找到概率最大对应的位置,作为终止位置,根据起始位置和终止位置对应的embedding,拼接后进行二分类判断是否为span,整体的loss包含了位置的loss是否是起点和终点以及span的loss是否是对应的起点和终点。

3、chatGLM做实体识别的例子

微调数据构建

首先,我们需要将NER标记风格的数据集转换成一组 (上下文、问题、答案) 三元组。有每个标签类型y∈Y,它与自然语言问题qy相关联,qy = {q1, q2, ..., qm} ,其中m表示生成的查询的长度。注释实体xstart,end = {xstart, xstart+1,···,end-1, xend}是满足start≤end的X的子字符串。每个实体都有一个真实标签y∈y。通过基于标签y生成一个自然语言问题qy,我们可以获得三元组(qy, xstart,end, X),这正是我们需要的三元组(问题,答案,上下文)。注意,我们使用下标“start,end”来表示从' start '到' end '的连续标记。

4、参考文献

​[1]https://www.zhihu.com/question/452002433/answer/2327252882?utm_psn=1722650204480577536
[2]A Unified MRC Framework for Named Entity Recognition 
论文链接:https://arxiv.org/pdf/1910.11476.pdf
代码链接:GitHub - ShannonAI/mrc-for-flat-nested-ner: Code for ACL 2020 paper `A Unified MRC Framework for Named Entity Recognition`
[3]Pointer Networks
[4] UIE:Unified Structure Generation for Universal Information Extraction

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

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

相关文章

20231225使用亿佰特的蓝牙模块dongle协议分析仪E104-2G4U04A抓取BLE广播数据

20231225使用亿佰特的蓝牙模块dongle协议分析仪E104-2G4U04A抓取BLE广播数据 结论:硬件蓝牙分析仪 不一定比 手机端的APK的效果好! 亿佰特E104-2G4U04A需要3片【单通道】,电脑端的UI为全英文的。 BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪…

Arduino驱动BME680四合一传感器模块

目录 一、简介二、技术参数三、使用方法四、实验现象 一、简介 点击图片购买 GYMCU680 是一款低成本空气检测模块,工作电压 3-5v 功耗小,体积小。其工作原理,是通过 MCU 读取 BME680传感器数据,经过算法得到,温湿度&am…

Error loading MySQLdb module.Did you install mysqlclient?报错解决方法

出现报错django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient? 这个错误意味着你的Django项目在尝试使用MySQL数据库时找不到MySQLdb模块。 首先检查自己有没有安装mysqlclient 运行以下命令来安装mysqlclient&…

Spring之国际化:i18n

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

玩转大数据22:常见的关联规则挖掘算法

引言 关联规则挖掘是数据挖掘中的一种重要技术,主要用于发现数据集中项之间的有趣关系。关联规则挖掘在许多领域都有广泛的应用,如市场篮子分析、推荐系统等。常见的关联规则挖掘算法包括Apriori算法和FP-Growth算法。 一、Apriori算法 关联规则挖掘是…

【鸿蒙应用ArkTS开发系列】- 沉浸式状态栏实现

文章目录 一、前言二、封装沉浸式状态栏管理类1、创建Demo工程2、封装状态栏管理类 三、编写页面实现沉浸式状态栏效果1、存储windowStage实例2、Page页面中实现沉浸式开启关闭功能2.1、开启沉浸式状态栏2.2、设置标题栏偏移量 一、前言 在应用开发中,页面跟状态栏…

防止synplify优化ILA模块或信号

摘要:synplify综合的时候会优化掉没有用到的信号或者模块,为防止synplify优化ILA或信号特记录此方法; 我使用的是synplify_pro compile完成之后,可以打开synplify图形化的网表 1.防止synplify优化wire信号 在vivado里面一般可以…

多重断言插件之pytest-assume的简单使用

背景: pytest-assume是Pytest框架的一个扩展,它允许在单个测试用例中多次断言。通常情况下,当一个断言失败时,测试会立即停止执行,而pytest-assume允许我 们继续执行剩余的断言,以便查看更多的失败信息。…

opencv入门到精通——形态学转换

目录 目标 理论 1. 侵蚀 2. 扩张 3. 开运算 4. 闭运算 5. 形态学梯度 6. 顶帽 7. 黑帽 结构元素 目标 在这一章当中, 我们将学习不同的形态学操作,例如侵蚀,膨胀,开运算,闭运算等。我们将看到不同的功能&…

浙江大唐乌沙山电厂选择ZStack Cloud打造新一代云基础设施

浙江大唐乌沙山电厂选择云轴科技ZStack Cloud云平台为其提供高性能、高可用的云主机、云存储和云网络,构建了简单、稳定、安全、高效的云基础设施;通过ZStackCloud为其提供可视化服务编排、多租户自服务等模块,帮助电厂提高IT资源利用率&…

vivado 多周期路径与时钟相移

多周期路径与时钟相移 有时,必须在具有相同时钟域的两个时钟域之间定义定时约束时钟周期,但两个时钟之间的相移。在这些情况下,理解正时引擎使用的默认设置和保持关系。如果没有仔细调整两个时钟之间的相移可能导致两个时钟间的逻辑约束过大…

360压缩安装一半不动了怎么办?

360压缩软件是我们常用的压缩软件,但是常常会遇到压缩安装到一半停止的情况,下面提供了一些可能的原因和解决办法,大家可以进行尝试~ 方法一:关闭防火墙和杀毒软件 有时候,防火墙和杀毒软件可能会阻止360压缩的安装过…