AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


利用大模型做NER实践(总结版)
发布日期:2024-05-23 07:17:57 浏览次数: 2206 来源:自然语言处理算法与实践


之前写了两篇关于LLM做NER的文章:<利用大模型做NER实践><利用大模型做NER实践(改进版)>,其中主要围绕了指令设计、微调方法对比做了下实验,验证了下LLM做NER任务的能力以及存在的问题。

本次新增加一种指令设计,另外对比下之前形式,做下汇总。先说之前设计的几种指令:

#instruction1

{ "text":"浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,", "instruction":"这是命名实体识别任务,请根据给定原文“浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,”,填写以下json:{'属于人名类实体有?': [], '属于组织机构类实体有?': [], '属于景点类实体有?': [], '属于企业类实体有?': [], '属于影视类实体有?': [], '属于书籍类实体有?': [], '属于政府类实体有?': [], '属于职位类实体有?': [], '属于地点类实体有?': [], '属于游戏类实体有?': []}", "output":"{'属于人名类实体有?': ['叶老桂'], '属于组织机构类实体有?': [], '属于景点类实体有?': [], '属于企业类实体有?': ['浙商银行'], '属于影视类实体有?': [], '属于书籍类实体有?': [], '属于政府类实体有?': [], '属于职位类实体有?': [], '属于地点类实体有?': [], '属于游戏类实体有?': []}", "task_type":"ner_cluener" }


#instruction2

{ "text":"浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,", "instruction":"这是命名实体识别任务,其实体定义为:{'人名': '代表人名类实体,如:张三、刘德华、特朗普等', '组织机构': '代表组织机构类实体,如:中国足协、美国儿童基金会等', '景点': '代表景点类实体,如:故宫、西湖、敦煌莫高窟等', '企业': '代表企业类实体,如:京东、越南发展银行、杭州清风科技有限公司等', '影视': '代表影视类实体,如:《天下无贼》、英雄等', '书籍': '代表书籍类实体,如:红与黑、《活着》等', '政府': '代表政府类实体,如:印度外交部、发改委等', '职位': '代表职位类实体,如:老师、记者等', '地点': '代表地点类实体,如:北京、纽约、太平村等', '游戏': '代表游戏类实体,如:dota2、《使命召唤》等'},请根据给定原文“浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,”,填写以下json:{'属于人名类实体有?': [], '属于组织机构类实体有?': [], '属于景点类实体有?': [], '属于企业类实体有?': [], '属于影视类实体有?': [], '属于书籍类实体有?': [], '属于政府类实体有?': [], '属于职位类实体有?': [], '属于地点类实体有?': [], '属于游戏类实体有?': []}", "output":"{'属于人名类实体有?': ['叶老桂'], '属于组织机构类实体有?': [], '属于景点类实体有?': [], '属于企业类实体有?': ['浙商银行'], '属于影视类实体有?': [], '属于书籍类实体有?': [], '属于政府类实体有?': [], '属于职位类实体有?': [], '属于地点类实体有?': [], '属于游戏类实体有?': []}", "task_type":"ner_cluener" }


#instruction 3

{"text": "浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,", "instruction": "这是命名实体识别任务,需要分两步来识别:1)先识别出文本中存在的实体词;2)再判断实体词属于什么类别;实体类别集合为:['name', 'organization', 'scene', 'company', 'movie', 'book', 'government', 'position', 'address', 'game'],那么给定原文“浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,”,识别结果为:", "output": "{'mention': ['浙商银行', '叶老桂'], 'entity': ['company', 'name']}", "task_type": "ner_cluener"}


以上是之前做过实验的三种指令形式,可以看着instruction1是一种问答的形式;instruction2是在instruction1的基础上加了实体类别的举例与说明;instruction3是采用COT形式,分两步来识别,先识别mention,再判断mention的类型。以上三种指令有个共性:生成的结果都是以json格式返回。因为字典的key是无序的,这跟LLM自回归的生成方式(有序的)觉得有点违背,这是不是会影响效果。

基于上述想法,本次设计一个更符合自回归生成的指令形式。其主要想法来自之前做关系抽取PURE方法,它将实体的标签<type></type>嵌入文本中来标识实体,而这方法是吻合自回归token by token的生成方式,具体形式为:

#instruction 4

这是一个命名实体识别任务,需要你参考<样例>,对给定的<文本>和<实体标签>信息,按<要求>,抽取<文本>包含的实体。

<文本>
浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,

<实体标签>
<company>,</company>
<name>,</name>
<organization>,</organization>
<scene>,</scene>
<movie>,</movie>
<book>,</book>
<government>,</government>
<position>,</position>
<address>,</address>
<game>,</game>

<样例>
输入:浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,
输出:<company>浙商银行</company>企业信贷部<name>叶老桂</name>博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,

输入:生生不息CSOL生化狂潮让你填弹狂扫
输出:生生不息<game>CSOL</game>生化狂潮让你填弹狂扫

<要求>
1.提供的<实体标签>为<type>,</type>形式,表示type实体类型对应的开始与结束标签,需要你在<实体标签>限定的实体类型进行识别,不要识别之外的实体类型;
2.识别过程是判断<文本>中某个连续的片段是否是实体,若是,就用对应的实体起始标签进行标记;
3.输出形式参考<样例>中的输出


所有实验结果如下:

其中_64,_128为p-tuning 中soft prompt设置超参数;chatgml是采样P-tuning方式,baichuan2是采样lora方式。我们可以看出:

(1)新增指令4在chatgml,baichuan两个基座下,都是取得最佳结果,新增的最佳结果F1值达到80.46,超过roberta-wwm-large-ext 的80.42;

(2)对比效果,#instruction 4 >#instruction 3>#instruction 1>#instruction 2,说明采用更符合自回归的生成方法(指令4)能更有利于信息抽取的任务,相对json的生成方式来说;

(3)指令3比指令1、指令2好,说明采用COT的生成方式也能带来提升,而指令2中虽然增加实体的举例与说明,但并没有带来明显的提升,可能增加这些信息反而是一种误导的噪声信息;

(4)基座中chatglm3比chatgm2,这其中是不是模型已经训练我们实验的数据集不得而知;另外,在p-tuning下,soft prompt参数越大,效果越好;

(5)在本实验中,显示lora下的结果比p-tuning好,但实验中基座没有保持一致,但直接说lora方法就比p-tuning,还不能断定。

以上就是LLM在NER任务的实践汇总,相关代码可以查阅:https://github.com/cjymz886/LLM-NER




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询