百度UIE模型的pytorch实现及ner效果测试

本文介绍了百度的UIE模型,该模型采用prompt+mrc的方法,适用于实体、关系、事件和情感等多任务信息抽取。在小样本情况下表现出优势,如在人民日报数据集上,zero-shot F1得分为60.8,而使用100和200样本进行fine-tune后,F1得分分别提升至85.82和86.40。此外,通过bert4torch框架进行了相关实验,验证了UIE模型的有效性。
摘要由CSDN通过智能技术生成

一、背景

最近才看到百度的UIE模型(跟不上潮流了),细节就不赘述了,可以参考下面链接。主要思路就是利用了SEL:结构化抽取语言和SSI:结构化模式提示器来实现各类信息抽取场景的大一统,也即是用同样的框架就可以实现实体提取,关系抽取,事件抽取,情感提取等多个任务了。然后就是预训练中有较多的监督数据,因此有些场景的fewshot效果就还可以了,有点拿来就用的内味了。

JayJay:信息抽取大一统:百度中科院发布通用抽取模型UIE,刷新13个IE数据集SOTA!

论文代码链接

paddlenlp开源版本

二、思路简介

笔者主要是参考paddlenlp版本,还有第三方改写paddle后的pytorch版本(这块有点偷懒了,论文代码没有仔细研读)。看下来其实思路也比较简单,就是prompt+mrc的方式,样本输入是[CLS]+prompt+[SEP]+text+[SEP]的输入方式,然后两个全连接一个用来标记start,一个用来标记end,最后和golden_label求一个BCEWithLogitLoss。

三、推理效果

直接拿过来输入几个测试用例,感觉效果尚可

>>> from pprint import pprint
>>> from paddlenlp import Taskflow

>>> schema = ['时间', '选手', '赛事名称'] # Define the schema for entity extraction
>>> ie = Taskflow('information_extraction', schema=schema)
>>> pprint(ie("2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!")) # Better print results using pprint
[{'时间': [{'end': 6,
          'probability': 0.9857378532924486,
          'start': 0,
          'text': '2月8日上午'}],
  '赛事名称': [{'end': 23,
            'probability': 0.8503089953268272,
            'start': 6,
            'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
  '选手': [{'end': 31,
          'probability': 0.8981548639781138,
          'start': 28,
          'text': '谷爱凌'}]}]

四、ner上的finetune测试

废话不多说,直接在数据集上测试看看,在人民日报数据集上zeroshot:f1=60.8, fewshot-100样本:f1=85.82, 200样本:f1=86.40,全部数据finetune是96.57。主要结论是,在小样本下有明显优势,在数据充足情况下无明显优势。

全部代码测试都是基于bert4torch框架,这是一个基于pytorch的训练框架,前期以效仿和实现bert4keras的主要功能为主,特点是尽量简洁轻量,提供丰富示例,有兴趣的小伙伴可以试用,欢迎star。

  • 人民日报数据集+bert预训练模型
  • valid集指标
solutionepochf1_tokenf1_entitycomment
bert+crf18/2096.8996.05——
bert+crf+init18/2096.9396.08用训练数据初始化crf权重
bert+crf+freeze11/2096.8996.13用训练数据生成crf权重(不训练)
bert+cascade+crf5/2098.1096.26crf类别少所以f1_token偏高
bert+crf+posseg13/2097.3296.55加了词性输入
bert+global_pointer18/20——95.66——
bert+efficient_global_pointer17/20——96.55——
bert+mrc7/20——95.75——
bert+span13/20——96.31——
bert+tplinker_plus20/20——95.71长度限制明显
uie20/20——96.57zeroshot:f1=60.8, fewshot-100样本:f1=85.82, 200样本:f1=86.40

https://github.com/Tongjilibo/bert4torch/tree/master/examples/sequence_labeling/uie​github.com/Tongjilibo/bert4torch/tree/master/example

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值