当前位置: 首页 > news >正文

2024论文精读:利用大语言模型(GPT)增强上下文学习去做关系抽取任务

文章目录

    • 1. 前置知识
    • 2. 文章通过什么来引出他要解决的问题
    • 3. 作者通过什么提出RE任务存在上面所提出的那几个问题
        • 3.1 问题一:ICL检索到的**示范**中实体个关系的相关性很低。
        • 3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。
    • 4. 作者为了解决上述的问题,所提出来的方法
        • 4.1 证明作者提出的第三个问题是一个问题
    • 5. 实现方式
        • 5.1 任务定义
        • 5.2 概述
        • 5.3 提示构建
        • 5.4 任务感知的示范检索
          • 5.4.1 实体提示的句子嵌入
          • 5.4.2 微调关系表示
        • 5.5 金标签诱导推理
    • 6. 实验结果
    • 7. 复现情况

GPT-RE: In-context Learning for Relation Extraction using Large Language Models

论文信息

年份: 2023

状态:arXiv

引用次数:77(截至至2024年7月20日)

是否开源:是


1. 前置知识

  • ICL (In-Context Learning) 上下文学习

2. 文章通过什么来引出他要解决的问题

文章说,现在通过上下文学习 (ICL) 的大语言模型有很大的潜力,但是在关系抽取的任务上 (RE) 依旧是落后全监督的方法,所以作者提出了两个可能的问题,就是因为这两个问题导致现在的大预言模型关系抽取的精度比那些全监督的关系抽取模型还要差。这两个问题是:

  • **问题一:**现有的在句子级别的示范检索方法中,与实体和关系的相关性低。
  • **问题二:**缺乏对示范中输入-标签映射的解释,导致ICL的效果不佳。
  • **问题三:**大模型会错误将NULL示例分类为其他预定义标签的强烈倾向。

3. 作者通过什么提出RE任务存在上面所提出的那几个问题

3.1 问题一:ICL检索到的示范中实体个关系的相关性很低。

什么是示范?

示范指的是在使用大型语言模型进行上下文学习(ICL)时,作为学习样本的示例。可以理解为提示词,这种数据通常来源于训练数据。

在别人使用大模型进行关系抽取任务的时候,示范(我个人认为是提示词)都是通过句子嵌入随机选者,或者通过KNN搜索选择。

ok?那么为什么使用上面的方法导致使用大模型进行关系抽取效果会不好呢?

作者说,基于句子嵌入的KNN检索更关注整体句子语义的相关性,而不太关注其中包含的具体实体和关系,这就导致了示范的质量较低。在这里作者举了一个例子:

image-20240719205614114

这个图片呢,就是说明了我们有一个测试输入的句子Test Input,想要使用大模型来进行关系抽取,但是,他想要使用KNN的方法从训练集中找到一些一样关系的句子,来作为提示词中的示范。但是能,由于使用句子嵌入的原因 ,导致了拿到的示范并不准确,我们输入的句子是想要找到公司和一个城市founded by的关系,但是示例呢找到的是located in的关系,这并不符合,这也导致了大模型的抽取精度不高的原因。

3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。

普通形式的ICL将所有示范列为输入-标签对,而没有任何解释。这可能会误导大型语言模型(LLMs)从表面词汇中学习浅层线索,而关系可以因语言的复杂性以多种形式呈现。特别是当ICL有最大输入长度限制时,优化每个单独示范的学习效率变得极为重要。

4. 作者为了解决上述的问题,所提出来的方法

  • 解决办法一:在示范检索中引入任务感知的表示。

incorporating task-aware representations in demonstration retrieval.

核心是使用刻意编码并强调实体和关系信息的表示,而不是用于KNN检索的句子嵌入。

作者使用两种不同的检索方法实现了这一点,(1)实体题是的句子嵌入(2)经过微调的关系表示,这自然的强调了实体和关系。这两种方法都包含了比句子语义更多的RE任务所需要的特定信息,从而有效地解决了低相关性的问题。

  • 解决办法二:通过金标签引导的推理逻辑丰富示范内容。

enriching the demonstrations with gold label-induced reasoning logic.

作者提议将推理逻辑注入示范中,去提供更多的证据来对齐输入和标签,这一策略类似于思维链(Chain-of-Thought)

但是作者这次使用的方式与传统的思维链不一样,他不仅解释为什么给定句子应该被归类于这样特定的标签,而且还要解释为什么NULL示例不应干被分配到任何预定义类别中。

4.1 证明作者提出的第三个问题是一个问题

作者提出了大语言模型会有过度预测的问题。

image-20240719214320366

观察到大型语言模型(LLMs)有将NULL示例错误分类到其他预定义标签的强烈倾向。作者在三个流行的通用领域关系抽取(RE)数据集上评估了我们提出的方法:Semeval 2010任务8、TACRED和ACE05,以及一个科学领域数据集SciERC。我们观察到GPT-RE不仅在现有的GPT-3基准上取得了改进,而且也超过了全监督基准。具体来说,GPT-RE在Semeval和SciERC数据集上取得了最佳性能,在TACRED和ACE05数据集上也表现竞争力。

5. 实现方式

5.1 任务定义

C C C 表述输入的上下文, e s u b e_{sub} esub表示主体, e o b j e_{obj} eobj表示客体,以下的公式表示主体和客体之间的实体对。我们在关系抽取任务之前,会给定一组预定一个关系类别 R R R,关系抽取的目的就是预测上下文 C C C中实体对( e s u b e_{sub} esub, e o b j e_{obj} eobj)之间关系 y y y,并且 y ∈ R y \in R yR的,当然还有一种情况就是他们之间并没有关系,那么预测的结果就为 y = n u l l y=null y=null
e s u b ∈ C e o b j ∈ C e_{sub} \in C \\ e_{obj} \in C esubCeobjC

5.2 概述

根据上面所提到的两个内容,作者引入了两个模块

  • 模块一:任务感知的示范检索,目的是为了检索到更高精度的示范。
  • 模块二:金标签的诱导推理,用来丰富每个示范中的解释。

image-20240719230401888

图四为整个系统的架构图。

5.3 提示构建

我们为每个测试用例都设定一个提示语,这个提示语会输入到GPT-3模型中去。每个提示会包含以下这几个部分:

**指令 I I I:**我们提供关系抽取任务描述和预定义的的类别集 R R R的简要概述,模型的明确要求输出属于预定义类别的关系。否者,模型将要输出NULL。

在框架图中为这个部分:

image-20240719231430662

**ICL 范式 D D D利用任务感知检索器(在5.4节中会提到)**获取 K K K次是示范集,然后用金标签诱导的推理ri丰富每个示范(xi, yi),构建新的示范集(xi, yi, ri)作为D。 测试输入 xtest:类似于示范,我们提供测试输入xtest,期望GPT-3生成相应的关系ytest。

在整个流程图中的这个环节:

image-20240719235132587

说实话,这里上面讲的并不是人话,按照作者前面的意思,就是会利用训练集,然后再结合大模型,让大模型去说出为什么这个句子中的这两个实体存在这样的关系,所以往下继续看。

5.4 任务感知的示范检索

作者在上面说了KNN的效果不好,所以他提出了两种新的方法来提供更稳健的表示,用来获取更好的检索质量

  • 方法一:一个初级的实体提示的句子嵌入

压根不是什么实体提示,就是重构句子,在句子之前加一句话,说两个实体之间的关系是什么。

  • 方法二:一个高级的微调关系表示

这个部分在整个流程图中的这个位置:

image-20240719235202872

5.4.1 实体提示的句子嵌入

我们会对输入的句子进行改造

Input Text

他有一个姐没Lisa

改造后的句子

Reconstructed context:

在上下文中‘他’与‘Lisa’之间的关系:他有一个姐妹Lisa

然后,作者利用SimCSE去在训练集中找到测试句子嵌入相似度高的句子。

5.4.2 微调关系表示

个人理解:就是模仿了Bert

目前基于BERT的微调方法用于RE,试图通过添加额外的标记符号来突出主体和客体实体及其类型,从而捕捉上下文信息和实体信息。具体来说,给定一个示例:“他有一个姐妹Lisa。”,输入的标记是:

[ C L S ] [CLS] [CLS] [ S U B _ P E R ] [SUB\_PER] [SUB_PER] [ / S U B _ P E R ] [/SUB\_PER] [/SUB_PER]有一个姐妹$[OBJ_PER] L i s a Lisa Lisa[/OBJ_PER]$。[SEP]”

其中**“PER”**是提供的实体类型。假设BERT编码器的第n个隐藏表示为 h n h_n hn。假设 i i i j j j是两个实体标记 [ S U B _ P E R ] [SUB\_PER] [SUB_PER] [ O B J _ P E R ] [OBJ\_PER] [OBJ_PER]的索引,我们将关系表示定义为 R e l = h i ⊕ h j Rel = h_i ⊕ h_j Rel=hihj,其中⊕表示在第一维上的表示连接。随后,这个表示被输入到一个前馈网络中,用于预测关系概率 p ( y ∈ R ∪ N U L L ∣ R e l ) p(y ∈ R ∪ {NULL} | Rel) p(yRNULLRel)

实体标记明确编码了主体和客体实体,关系表示Rel自然地丰富了实体信息。我们认为这种方法可能弥补GPT-3在RE中的限制。虽然GPT-3 ICL的示范是有限的,但微调过程是不受限制的,可以在整个训练数据上进行。这具有两个后续优点。首先,关系表示直接微调以适应RE任务,这可能显著提高整体检索质量。其次,过度预测NULL的问题将得到大幅缓解,因为微调后的模型可以准确识别类似的NULL示例。

5.5 金标签诱导推理

就是把上一步找到的在训练集中的句子,输入给大模型中,让大模型去回答,为什么这个句子中的这两个实体是这样的一个关系。

提示词为:

What are the clues that lead to the relation between [entity1] and [entity2] to be [relation] in the sentence [context]?

生成出的内容就会拼接到[ICL范式](# 5.3 提示构建)中去

以下为论文中提出的一个例子:

image-20240720003124837

6. 实验结果

肯定是很好才能发啦

7. 复现情况

即将开始

相关文章:

2024论文精读:利用大语言模型(GPT)增强上下文学习去做关系抽取任务

文章目录 1. 前置知识2. 文章通过什么来引出他要解决的问题3. 作者通过什么提出RE任务存在上面所提出的那几个问题3.1 问题一:ICL检索到的**示范**中实体个关系的相关性很低。3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。 4. 作者为了解决上…...

WEB 手柄 http通信,mcu端解析代码 2024/7/23 日志

WEB 手柄 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>WEB遥控器</title> </head> &l…...

cmake中的正则表达式

以下字符或者字符组合在cmake的正则表达式中的特殊含义&#xff1a; ^ 匹配输入的开始 $ 匹配输入的结束 . 匹配任意一个字符 \<char> 匹配一个字符&#xff0c;如.匹配字符.&#xff0c;\匹配字符\&#xff0c;\a匹配字符a [ ] 匹配在括号里面的任意字符&#xff0…...

05. Java 三大范式

1. 前言 在面向对象语言中涉及到诸多的设计模式&#xff0c;例如单例模式、适配器模式&#xff0c;设计模式的存在是为了让系统中的代码逻辑更加清晰&#xff0c;帮助开发者建立更加健壮的系统&#xff0c;同时满足易修改特性和易扩展特性。数据库设计时也存在类似设计模式的通…...

opencv 按键开启连续截图,并加载提示图片

背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图&#xff1a; from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…...

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图&#xff1a; 地图展示&#xff0c;设备点聚合&#xff0c;设备站点&#xff0c;绘制点和区域等功能。 我只针对我涉及到的技术做一下总结&#xff0c;希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…...

Jvm是如何处理异常的

异常抛出 当Java程序运行时遇到无法处理的情况时,会抛出一个异常(比如在一个方法中如果发生异常),这时会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给JVM的过程称为抛出异常。 异常捕捉 当JVM检测…...

recursion depth exceeded” error

有些时候不可以用jax.jit装饰器 参考资料&#xff1a;使用 JAX 后端在 Keras 3 中训练 GAN |由 Khawaja Abaid |中等 (medium.com)...

虚拟现实和增强现实技术系列—Expressive Talking Avatars

文章目录 1. 概述2. 背景介绍3. 数据集3.1 设计标准3.2 数据采集 4. 方法4.1 概述4.2 架构4.3 目标函数 5. 实验评测5.1 用户研究5.2 我们方法的结果5.3 比较与消融研究 1. 概述 支持远程协作者之间的交互和沟通。然而&#xff0c;明确的表达是出了名的难以创建&#xff0c;主…...

网站验证:确保网络安全与信任的重要步骤

网站验证&#xff1a;确保网络安全与信任的重要步骤 引言 在数字时代&#xff0c;网站验证是确保网络安全和建立用户信任的关键措施。随着网络诈骗和恶意软件的日益增多&#xff0c;验证网站的真实性和安全性变得尤为重要。本文将探讨网站验证的重要性、常见的验证方法以及如…...

C语言——字符串比较函数strcmp和strncmp

目录 strcmp 函数原型如下&#xff1a; 示例 注意事项 strcmp自实现代码&#xff1a; strncmp 函数 函数原型&#xff1a; 参数&#xff1a; 返回值&#xff1a; 特点&#xff1a; 两者之间的区别和联系 strcmp strcmp 是 C 语言标准库中的一个函数&#xff0c;用于…...

redis的集群模式

目录 1. 为什么使用redis集群 2. 主从模式 2.1修改配置文件 2.2 开启三台redis服务 2.3配置主从关系 3. 哨兵模式 3.1 监控功能 3.2 选举的机制 3.3 准备条件 4. 去中心化模式 4.1 准备三主三从 4.2 启动redis 4.3 分配槽以及主从关系 4.4 命令行的客户端 redis提供…...

基于微信小程序+SpringBoot+Vue的青少年科普教学系统平台(带1w+文档)

基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理&#xff0c;还缩短高校教师成果信息管理流程&#xff0c;使其系统化…...

智能听觉:从任务特定的机器学习到基础模型

关键词&#xff1a;计算机听觉、音频基础模型、多模态学习、声音事件检测 声音无处不在&#xff0c;弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声&#xff0c;浓缩咖啡机中蒸汽的嘶嘶作响&#xff0c;午后阳光下昆虫振翅的嗡嗡声&#xff0c;金属屋顶上雨滴跳跃的滴答…...

14、如何⽤DDD设计微服务代码模型

在完成领域模型设计后&#xff0c;接下来我们就可以开始微服务的设计和 落地了。在微服务落地前&#xff0c;⾸先要确定微服务的代码结构&#xff0c;也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后&#xff0c;我们才可以将 领域对象映射到…...

ArcGIS Pro SDK (九)几何 12 多面体

ArcGIS Pro SDK &#xff08;九&#xff09;几何 12 多面体 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…...

二次元手游《交错战线》游戏拆解

交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词&#xff1a; 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点&#xff1a; 符合目标群体审美的原画。 三、核心趣味&#xff1a; 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…...

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身…...

Java开发之Redis

1、非关系型数据库、快、高并发、功能强大 2、为什么快&#xff1f;内存单线程 非阻塞的IO多路复用有效的数据类型/结构 3、应用&#xff1a;支持缓存、支持事务、持久化、发布订阅模型、Lua脚本 4、数据类型&#xff1a; 5 种基础数据类型&#xff1a;String&#xff08;字…...

Java面试八股之 Spring Bean的生命周期

Spring Bean的生命周期 实例化&#xff08;Instantiation&#xff09;&#xff1a;Spring容器根据Bean定义信息创建Bean的实例&#xff0c;通常通过无参构造函数进行。 依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;&#xff1a;Spring容器按照Bean定…...

ScanTailor Advanced终极指南:免费开源扫描文档处理完整解决方案

ScanTailor Advanced终极指南&#xff1a;免费开源扫描文档处理完整解决方案 【免费下载链接】scantailor-advanced ScanTailor Advanced is the version that merges the features of the ScanTailor Featured and ScanTailor Enhanced versions, brings new ones and fixes. …...

Downr1n iOS降级与越狱实战指南:从问题诊断到解决方案

Downr1n iOS降级与越狱实战指南&#xff1a;从问题诊断到解决方案 【免费下载链接】downr1n downgrade tethered checkm8 idevices ios 14, 15. 项目地址: https://gitcode.com/gh_mirrors/do/downr1n 一、决策指南&#xff1a;为什么选择Downr1n&#xff1f; 1.1 核心…...

OpenClaw自动化测试:基于Nanobot的持续集成方案

OpenClaw自动化测试&#xff1a;基于Nanobot的持续集成方案 1. 引言 在软件开发领域&#xff0c;测试环节往往是耗时最长、人力投入最大的阶段之一。传统的自动化测试脚本编写不仅需要专业的技术知识&#xff0c;还需要大量的维护成本。随着项目迭代速度加快&#xff0c;测试…...

告别黑盒:手把手教你用GDB调试`ipmitool`源码,亲眼看到RAW数据如何发送

从GDB断点到硬件交互&#xff1a;动态追踪ipmitool RAW命令的全链路实现 在服务器管理领域&#xff0c;IPMI协议如同一位沉默的守护者&#xff0c;通过BMC&#xff08;基板管理控制器&#xff09;提供着硬件级的监控与控制能力。而ipmitool作为最流行的IPMI命令行工具&#xff…...

用STM32F411+LVGL+FreeRTOS做个小玩意:从零打造一个桌面级健康监测仪(附完整源码和PCB)

从零打造桌面级健康监测仪&#xff1a;STM32F411LVGLFreeRTOS全栈实战 在创客圈里&#xff0c;把一堆传感器和屏幕拼凑成能用的设备不算难事&#xff0c;但要做成能长期摆在桌面上、看着不违和的实用工具&#xff0c;完全是另一个维度的挑战。去年我用了三个月时间迭代了四版原…...

CATIA数控加工仿真:铣平面粗加工的关键步骤与优化技巧

1. CATIA数控加工仿真入门&#xff1a;从零开始掌握铣平面粗加工 第一次接触CATIA数控加工仿真时&#xff0c;我和大多数新手一样被满屏的参数搞得头晕眼花。直到在车间跟老师傅学了三个月&#xff0c;才发现铣平面粗加工这个基础操作里藏着这么多门道。简单来说&#xff0c;这…...

Spring AI实战:从零构建智能聊天与图像生成应用

1. Spring AI初探&#xff1a;你的第一个智能聊天应用 记得第一次接触AI聊天功能时&#xff0c;我盯着那个能对答如流的对话框看了足足十分钟。现在用Spring AI框架&#xff0c;只需要四步就能实现同样的效果。先创建一个标准的Spring Boot项目&#xff0c;这个不用多说&#x…...

导师严选!盘点2026年最强的的降AI率网站

轻松降低论文AI率在2026年已不再是天方夜谭。以下是2026年最炸裂、实测效果显著的降AI率网站神器&#xff0c;覆盖AI痕迹消除、文本改写润色、降重优化、学术合规检测四大核心场景&#xff0c;帮你稳妥搞定毕业论文。 一、全流程王者&#xff1a;一站式搞定论文全链路 这类工具…...

STM32F103R6数码管时钟实战:从Proteus仿真到按键调校全流程(附源码)

STM32F103R6数码管时钟实战&#xff1a;从Proteus仿真到按键调校全流程&#xff08;附源码&#xff09; 在嵌入式系统开发中&#xff0c;数码管显示是最基础也最实用的输出方式之一。本文将带您从零开始&#xff0c;基于STM32F103R6微控制器&#xff0c;构建一个完整的六位数码…...

技术小白AI入门避坑指南:避开4大雷区,高效进阶不走弯路

技术小白AI入门避坑指南&#xff1a;避开4大雷区&#xff0c;高效进阶不走弯路 前言&#xff1a;作为技术小白&#xff0c;入门AI的路上&#xff0c;最可怕的不是“基础薄弱”&#xff0c;而是“走偏方向”——明明付出了时间和精力&#xff0c;却因为踩中误区&#xff0c;要么…...