《Large Language Models for Generative Information Extraction: A Survey》阅读笔录

论文地址:Large Language Models for Generative Information Extraction: A Survey

前言

映像中,比较早地使用“大模型“”进行信息抽取的一篇论文是2022年发表的《Unified Structure Generation for Universal Information Extraction》,也是我们常说的UIE模型,其主要在T5-v1.1模型的基础上训练一个Text to structure 的UIE基座模型,然后在具体的业务上再进行Fine-tuning。T5也算是比较早期的的大语言模型了。

时至今日,chatgpt问世后,各种大模型也不断涌现。大模型在理解能力和生成能力上表现出了非凡的能力。也因为LLM有这么强大的能力,业界已经提出了许多工作来利用 LLM 的能力,并为基于生成范式的 IE 任务提供一些可行的解决方案。下面我们就跟着《Large Language Models for Generative Information Extraction: A Survey》来看看LLM在IE任务的一些任务上是如何实现的。

信息抽取回顾

信息提取 (IE) 是自然语言处理中的一个关键领域,它将纯文本转换为结构化知识。IE 是对各种下游任务的基本要求,例如知识图谱构建、知识推理和问答等。常见的IE任务主要包含命名实体识别NER,关系抽取RE,事件抽取EE。传统的信息抽取主要使用序列标注、指针抽取等方法从原文中提取(带有抽取元素location)。

LLM时代的信息抽取(生成式)

生成式的信息提取,可以建模成如下公式:

在这里插入图片描述
公式中的参数也比较好理解:

  • θ \theta θ LLMs参数,可以固定也可以继续训练
  • X X X 待提取的文本
  • Y Y Y 预期生成后的结果
  • P P P,LLM时代比较有特色的参数,就是基于输入 X X X的提示prompt或者说是指令instructions

目标就是最大化最大化这个条件概率。对于不同的IE子任务来说,虽然输入 X X X,但是最终期望LLM输出的结果 Y Y Y有所不同,:

  • NER,NER包含两个子任务:实体识别出来和将识别出来的实体进行下一步的分类
  • RE,实体识别使用关系抽取的基础,关系抽取可以根据具体的业务进行分类:1.关系分类,2.关系三元组的识别,识别头尾实体以及对应的关系;3.更加严格的识别头尾实体类型以及对应的关系
  • EE,事件抽取可以分为两个子任务:1.事件检测(识别事件触发词以及触发词的类型);2.事件要素提取

下面看看使用LLM做几个任务的方法的概览如下:
在这里插入图片描述

NER

主流的方法在主流的数据集上的表现情况如下:
在这里插入图片描述

表说明:

  • Cross-Domain Learning (CDL),跨领域学习
  • Zero-Shot Prompting (ZS Pr),
  • In-Context Learning (ICL)
  • Supervised Fine-Tuning (SFT)
  • Data Augmentation (DA).
  • Uni. ? 表示模型是否是统一的抽取模型(完成多种任务)

可以得出的结论是:

  1. few-shot和zero-shot相比于SFT和DA还是有比较大的差距;
  2. 即使都是用ICL,GPT-NER与其他同样使用ICL的方法相比差距小的有6%,大的能够达19%
  3. 相比于ICL,使用SFT的方法,即使使用的基座模型参数有的差距会有很大,但是最后的指标却差距不大

RE

一些主要的方法实现的效果如下:
在这里插入图片描述
可以得出的结论是:

  1. 统一抽取的模型更偏向处理复杂的关系(头尾实体、实体类型,实体关系);
  2. 特定的任务则不是统一的抽取方式,不过解决的是比较简单关系分类;
  3. 与NER相比关系抽取的效果比NER差不少,提升的空间还很大

统一的信息抽取

该框架旨在为所有IE任务建模,获取IE的通用能力,并学习多个任务之间的依赖关系。现有的研究将这种Uni-IE划分为:natural language-based LLMs (NL-LLMs) 和 code-based LLMs (code-LLMs),参见下图:
在这里插入图片描述

NL-LLMs:比较早的还是文中开头中提到的UIE模型,也就是一种text2structure结构。此外还有:InstructUIE、ChatIE等。

其中UIE《Unified Structure Generation for Universal Information Extraction》,提出一个统一的从文本到结构的生成框架,该框架可对外延结构进行编码,并通过结构化提取语言捕捉常见的IE能力。
在这里插入图片描述
InstructUIE《InstructUIE: Multi-task Instruction Tuning for Unified Information Extraction》,通过结构化专家编写的指令来微调LLM,从而增强UIE,以一致地模拟不同的IE任务并捕捉任务间的依赖性.
在这里插入图片描述
ChatIE《Zero-Shot Information Extraction via Chatting with ChatGPT》, 探索了如何在zero-shot提示中使用GPT3和ChatGPT等LLM,将任务转化为多轮问题解答问题.
在这里插入图片描述

Code-LLMs:LLM根据需要抽取的文本,将实体和关系放到代码的class中。例如:Code4UIE、CodeKGC、GoLLIE等。

Code4UIE《Retrieval-Augmented Code Generation for Universal Information Extraction》提出一个通用的检索增强代码生成框架,利用Python类来定义模式,并使用上下文学习来生成从文本中提取结构知识的代码
在这里插入图片描述
CodeKGC《CodeKGC: Code Language Model for Generative Knowledge Graph Construction》.利用代码中固有的结构知识,并采用模式感知提示和理性增强生成来提高性能。
在这里插入图片描述

不过从上表面的表来看,对于大多数数据集,具有SFT的uni-IE模型在NER、RE和EE任务中优于任务特定模型。

按照学习范式进行分类

学习范式主要分为:SFT、Zero-Shot、Few-Shot、数据增强几类。

  • SFT:输入所有训练数据来微调llm是最常见和最有前途的方法,它允许模型捕获数据中的底层结构模式,并很好地推广到看不见的IE任务。
  • Few-Shot:只能访问有限数量的标记示例,这导致了过度拟合和难以捕获复杂关系等挑战。但与小型预训练模型相比,扩大llm的参数使它们具有惊人的泛化能力,使它们能够在少数场景中也能获得出色的性能。
  • Zero-Shot:主要挑战在于使模型能够有效地泛化它尚未训练过的任务和领域,以及对齐预训练的LLM范式。由于大量的知识嵌入其中,llm在未知任务的zero-shot场景中表现出令人印象深刻的能力
  • 数据增强:数据增强包括生成有意义和多样化的数据,以有效地增强训练示例或信息,同时避免引入不现实的、误导性的和偏移的模式。

特别要说的是数据增强这块,信息抽取最大的问题就是训练数据的问题,数据增强生成有意义的多样化数据,以有效增强训练示例或信息,同时避免引入不切实际、误导性和偏移的模式。主流方法可大致分为3种策略:

在这里插入图片描述

  1. 数据标注,使用LLM直接生成带有标签的数据;
    LLMaAA《LLMaAA: Making Large Language Models as Active Annotators》,通过在主动学习环路中使用LLMs作为标注器来提高准确性和数据效率,从而优化标注和训练过程.
    在这里插入图片描述
    在这里插入图片描述

  2. 知识检索,该策略从 LLM 中检索 IE 的相关知识;
    PGIM《Prompting ChatGPT in MNER: Enhanced Multimodal Named Entity Recognition with Auxiliary Refined Knowledge》 为多模态NER提出了一个两阶段框架,利用ChatGPT作为隐式知识库,启发式地检索辅助知识,以提高实体预判词的效率。
    在这里插入图片描述

  3. 反向生成,这种策略促使LLM根据作为输入的结构数据生成自然文本或问题,与LLM的训练范式保持一致。
    SynthIE《Exploiting Asymmetry for Synthetic Training Data Generation: SynthIE and The Case of Information Extraction》 使用输入的结构数据生成自然文本。
    在这里插入图片描述

未来方向

在这里插入图片描述
想把 LLM应用到实际的IE系统中还为时过早,也就意味着会有更多的机会和提升。例如:

  1. 真正意义上的Universal IE, 进一步开发能够灵活适应不同领域和任务的通用IE框架是一个很有前途的研究方向;
  2. Low-Resource IE;
  3. Prompt Design for IE, 更好的prompt和instructions设计方式
  4. Open IE,比较大的挑战

总结

总的来说,使用LLM做信息抽取与传统的方法还是存在比较大的差距。但LLM能够为超痛的信息抽取pipline赋能,至于未来LLM在信息抽取领域发展的什么程度,例如模型参数量级在很少的情况下使用一些sft数据就能够达到很好的效果下,那岂不是美哉。

Reference

1.2024开篇之大模型遇见信息抽取:常见数据增强、形式化语言及可练手小模型开源项目

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++基础知识补充4

单独使用词汇 using std::cout; 隐式类型转换型初始化:如A a1,,此时可以形象地理解为int i1;double ji;,此时1可以认为创建了一个值为1的临时对象,然后对目标对象进行赋值,当对象为多参数时,使用(1&#xf…

2024最新算法:电鳗觅食优化算法(Electric eel foraging optimization,EEFO)求解23个基准函数(提供MATLAB代码)

一、电鳗觅食优化算法 电鳗觅食优化算法(Electric eel foraging optimization,EEFO)由Weiguo Zhao等人提出的一种元启发算法,EEFO从自然界中电鳗表现出的智能群体觅食行为中汲取灵感。该算法对四种关键的觅食行为进行数学建模:相…

2000-2021年各省互联网普及率数据

2000-2021年各省互联网普及率数据 1、时间:2000-2021年 2、指标:省级:行政区划代码、地区、年份、互联网普及率(%) 3、来源:互联网络信息中心;各地统计局 4、指标解释:指互联网用户数占常住人口总数的比…

环形链表详解(让你彻底理解环形链表)

文章目录 一.什么是环形链表?二.环形链表的例题(力扣) 三.环形链表的延伸问题 补充 一.什么是环形链表? 环形链表是一种特殊类型的链表数据结构,其最后一个节点的"下一个"指针指向链表中的某个节点&#xff…

【tableau学习笔记】tableau无法连接数据源

【tableau学习笔记】tableau无法连接数据源 背景: 学校讲到Tableau,兴奋下载Kaggle Excel,一看后缀CSV,导入Tableau发现报错“tableau无法连接数据源”,自作聪明改为后缀XLSX,bug依旧。 省流&#xff1a…

QML中动态表格修改数据

1.qml文件中的实现代码 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_model…

【风格迁移】URST:解决超高分辨率图像的风格迁移问题

URST:解决超高分辨率图像的风格迁移问题 提出背景URST框架的整体架构 提出背景 论文:https://arxiv.org/pdf/2103.11784.pdf 代码:https://github.com/czczup/URST?v1 有一张高分辨率的风景照片,分辨率为1000010000像素&#…

【C++ AVL树】

文章目录 AVL树AVL树的概念AVL树节点的定义AVL树的插入AVL树的旋转右单旋左单旋左右双旋右左双旋 代码实现 总结 AVL树 AVL树的概念 二叉搜索树在顺序有序或接近有序的情况下,而插入搜索树将退化为单叉树,此时查找的时间复杂度为O(n),效率低…

Java通过jedis连接redis一些常用方法

小伙伴们好,欢迎关注,一起学习,无线进步 以下内容为学习redis过程中的一些笔记 文章目录 Jedis常用API判断keyStringListSetHashZset事务 Jedis 使用 Java 来操作 Redis,知其然并知其所以然 什么是Jedis 是 Redis 官方推荐的 jav…

#WEB前端(DIV、SPAN)

1.实验&#xff1a;DIV、SPAN 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; 类? 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdev…

【java、微服务、spring】SpringCloud

服务拆分 1. 不同微服务&#xff0c;不要重复开发相同业务 2&#xff0e;微服务数据独立&#xff0c;不要访问其它微服务的数据库 3&#xff0e;微服务可以将自己的业务暴露为接口&#xff0c;供其它微服务调用 远程调用 提供者与消费者 服务提供者&#xff1a;一次业务中…

扼杀网络中的环路:STP、RSTP、MSTP

目录 前言&#xff1a; 一、STP&#xff08;Spanning Tree Protocol&#xff09; 1.1 STP功能 1.2 STP应用 二、RSTP&#xff08;Rapid Spanning Tree Protocol&#xff09; 2.1 RSTP功能 2.2 RSTP应用 三、MSTP&#xff08;Multiple Spanning Tree Protocol&#xff0…

ScanDomainEuorg:批量查询 eu.org 域名注册情况(附带源码)

引言 eu.org 很长时间都没有审批了&#xff0c;但是我觉得只是时间长短问题&#xff0c;早晚会再次审批的。 既然如此&#xff0c;大可以未雨绸缪一般&#xff0c;趁着大家对其“失望”的时间段&#xff0c;看看有哪些好看的前缀没有被注册。 原理 灵感来源于 域名 .eu.org…

Java 网络面试题解析

1. Http 协议的状态码有哪些&#xff1f;含义是什么&#xff1f;【重点】 200&#xff1a;OK&#xff0c;客户端请求成功。 301&#xff1a;Moved Permanently&#xff08;永久移除&#xff09;&#xff0c;请求的URL已移走。Response中应该包含一个Location URL&#xff0c;…

Thinkphp框架漏洞--->5.0.23 RCE

1.Thinkphp ThinkPHP是一个免费开源的&#xff0c;快速、简单的面向对象的轻量级PHP开发框架&#xff0c;是为了敏捷WEB应用开发和简化 企业应用开发而诞生的。 2.漏洞原理及成因 该漏洞出现的原因在于 ThinkPHP5框架底层对控制器名过滤不严 &#xff0c;从而让攻击者可以通过…

QoS简单配置案例

1、两边两个方向做相同的配置&#xff1a;入口复杂流分类用mqc方式配置&#xff0c;ds内设备入口配简单流分类。 2、两边两个方法做拥塞管理配置&#xff0c;拥塞管理配置思路&#xff1a; 拥塞管理的两种配置方法&#xff08;全部用一种也可以&#xff0c;这里学习就用了两种…

Vue3 条件渲染 v-if

v-if 指令&#xff1a;用于控制元素的显示或隐藏。 执行条件&#xff1a;当条件为 false 时&#xff0c;会将元素从 DOM 中删除。 应用场景&#xff1a;适用于显示隐藏切换频率较低的场景。 语法格式&#xff1a; <div v-if"数据">内容</div> 基础用…

解决 MySQL 未运行但锁文件存在的问题

查看mysql状态时&#xff0c;显示错误信息"ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists"。 解决步骤 1、检查 MySQL 进程是否正在运行 在继续之前&#xff0c;我们首先需要确定 MySQL 进程是否正在运行。我们可以使用以下命令检查…

离线数仓(四)【数仓数据同步策略】

前言 今天来把数仓数据同步解决掉&#xff0c;前面我们已经把日志数据到 Kafka 的通道打通了。 1、实时数仓数据同步 关于实时数仓&#xff0c;我们的 Flink 直接去 Kafka 读取即可&#xff0c;我们在学习 Flink 的时候也知道 Flink 提供了 Kafka Source&#xff0c;所以这里不…