【网安AIGC专题11.1】将代码生成大模型用于命名实体识别(NER)和关系抽取(RE):提示工程设计+控制变量对比实验(格式一致性、模型忠实度、细粒度性能)

news2025/1/16 7:55:47

CODEIE: Large Code Generation Models are Better Few-Shot Information Extractors

  • 写在最前面
  • 汇报
    • 研究背景
      • 命名实体识别(NER)和关系抽取(RE)
      • 相关工作
      • 作者动机
      • 研究方案
      • 实例
    • 研究方案
      • 方案预览
    • 实验
      • 数据集和基线模型
      • 评价指标
      • 实验方案对比
        • 1、(表3)LLMs (GPT-3和Codex)在少样本设置下,比中等大小的模型(T5和UIE)实现了优越的性能。
        • 2、比较不同提示设计的效果
        • 3、控制变量对比实验
          • 第一个是格式一致性Format Consistency
          • 第二个是模型忠实度
          • 第三个,细粒度性能Fine-grained Performance
    • 研究总结
      • 未来的工作可考虑:
  • 补充
    • 条件困惑度

写在最前面

这次该我汇报啦

许愿明天讲的顺利,问的都会

汇报

CODEIE:代码生成大模型能更好的进行少样本信息提取这项工作
接下来我将从这四个板块展开介绍

研究背景

这篇论文于2023年5月发布在arXiv,随后9月发表在ACL-NLP顶刊。其作者来自复旦大学和华师大学。
在这里插入图片描述

命名实体识别(NER)和关系抽取(RE)

首先,让我们了解一些自然语言处理(NLP)的背景知识。

信息抽取的目标是从未经结构化处理的文本中提取出结构化信息。这个领域涵盖了各种任务,包括命名实体识别(NER)和关系抽取(RE)。
NER用于识别文本中的命名实体,例如人名、地名和组织名,
RE则用于提取文本中实体之间的关系信息。

在这里插入图片描述

相关工作

  1. 为了在一个统一框架内处理这些不同的任务,近期的研究建议将输出结构线性化为非结构化字符串,并采用序列生成模型来解决信息抽取(IE)任务。
    尽管这种线性化方法在具有充足训练数据的情况下取得了良好的成果,但在少样本情况下性能不佳。
  2. 鉴于大型语言模型具有强大的少样本学习能力,本论文旨在充分利用它们来解决少样本IE任务,特别是NER和RE任务。
    通常,对于文本分类等NLP任务,以前的工作将任务重新构建为文本到文本生成的形式,并利用自然语言-llm(如GPT-3)来生成答案。
  3. 然而,由于IE任务具有复杂的内部结构,以往的线性化方法的输出结构通常显得不够自然,导致了预训练时的输出格式与推理时的输出格式不匹配。
    因此,在使用这些扁平化方法时,通常需要复杂的解码策略来将输出后处理为有效的结构。
    在这里插入图片描述

作者动机

总结一下为什么作者选择了这一方法
表1总结了用于IE任务的中等规模模型、NL-LLM和Code-LLM之间的高层次差异。
此前的工作未能在一个统一的框架下充分利用大型模型进行少样本学习,特别是在处理结构化任务方面。这篇论文的模型成功弥补了这两个限制。

为什么这两个限制会对结果产生重大影响呢?
首先,大型模型具有适应少样本数据的能力
其次,由于线性输出不够自然,通常需要更复杂的解码策略。

在这里插入图片描述

研究方案

因此,这篇论文提出了一种全新的思路,通过使用带有结构化代码风格提示的Code-LLM,来弥合预训练和推理阶段之间的输出差异,从而实现了IE任务的统一框架并获得更出色的结果。
这一方法的核心思想将这两个IE任务框架化为代码生成任务,并借助代码-LLM中的编码丰富结构化代码信息,从而使这些IE任务有更好的结果。
在这里插入图片描述

实例

这是一个示例:
通过代码风格提示和Python字典的键,如“文本”和“类型”,可以组合它们成一个与NER(命名实体识别)示例等价的Python函数。

在这里插入图片描述

研究方案

下面我们对具体方案展开介绍。

方案预览

在这里插入图片描述
论文涵盖了NER和RE两项任务,
首先将原始IE任务转化为代码样式,其中(换PPT)Python函数名称表示任务,文档字符串说明任务目标,初始化空列表用于保存输出,描述性注释提供了提示以将命名实体放入列表中。(换PPT)这些元素被组合为“代码提示x”。
“结构化目标y”,将每个基本信息单元(NER的一对实体和RE的三元组)表示为Python字典,yc为字典列表。
对于NER任务,键包括“text”和“type”,值分别是实体跨度和实体类型。
对于RE任务,键包括实体类型和关系类型。然后,这些输入被传递给代码生成大模型,并得到输出。

在这里插入图片描述

左侧显示的文字是对前面图表的简明描述。
此外,GPT-3和CodeX都是OpenAI的模型,而CodeX是在GPT-3的基础上进行改进的,这两者有着相同的起源。

由于大型模型API的黑盒特性,无法对这些大型模型进行微调,因此这篇论文致力于探索上下文学习的方法,包括使用标记样本。
上下文提示学习是如何具体体现的呢?在这篇论文中,任务被转化为代码表示,然后将它们连接在一起,构建了一个上下文演示,其中包括x1y1x2y2直到xnyn,最后有一个准备预测的xc。这个上下文被输入到模型中,生成输出yc,其格式与y1y2yn相似,通常保持了Python语法,容易还原成原始结构。

鉴于少样本训练容易受到高方差的影响,该论文为每个实验采用不同的随机种子运行了三次,并报告了度量指标的均值和标准差。

这篇论文已经开源了这项研究的代码,如果有兴趣的朋友可以前去查看。

实验

接下来,我们对这篇文章的实验部分进行梳理

数据集和基线模型

在实验结果部分,论文涵盖了七个NLP任务的数据集,采用了中等规模的预训练模型作为基线
在这里插入图片描述

评价指标

评价指标是常规的NER和RE任务性能度量指标。
实体的偏移量和实体类型与黄金实体匹配,那么实体跨度预测就是正确的。
如果关系类型正确且其实体对应的偏移量和类型正确,则关系预测是正确的。
在这里插入图片描述

实验方案对比

结果表明:

1、(表3)LLMs (GPT-3和Codex)在少样本设置下,比中等大小的模型(T5和UIE)实现了优越的性能。

在这里插入图片描述

2、比较不同提示设计的效果

在这里插入图片描述
(表4)突出显示的分别是“text”和“code”提示类型,code提示效果更好。

在这里插入图片描述

(图3)Codex胜过GPT-3,代码提示优于文本提示。Codex比GPT3效果好,代码提示比文本提示好。
并且在1次学习设置下,CODEIE将基准上的性能提高了60%以上,表现了强大的少样本学习能力
值得注意的是,代码提示对GPT-3更有益,尽管它并没有专门针对代码数据进行训练。

3、控制变量对比实验

作者进行了一些控制变量的对比实验,以探讨导致模型性能优越的因素。

第一个是格式一致性Format Consistency

在这里插入图片描述
介绍下条件困惑度,这是一种衡量生成的文本在给定条件下生成文本的可预测性,也就是在给定上下文前缀的条件下,模型生成下一个字符的概率的准确性的度量。
较低的条件困惑度值表示生成的文本更符合所期望的条件。
图4,在7个数据集上,文本提示和代码提示的输入格式和模型之间的条件困惑度。

第二个是模型忠实度

在这里插入图片描述

分为两个指标:
1、一个是结构忠实度Structure Fidelity,顾名思义是生成文本的结构
图5:比较提示学习和不同组合LLM的结构错误率,output的形式不对

2、一个是语义忠实度Semantic Fidelity,生成文本的语义忠诚度
表5:实验中检测到的语义错误样本,output中语义不对,比如预定义实体类型中不存在的实体类型。

结果表明,GPT-3倾向于生成自由形式的结果,Codex更忠实于上下文中提供的演示,因此对于IE任务更可预测

第三个,细粒度性能Fine-grained Performance

在这里插入图片描述

结果表明(a)代码提示提高了模型的查准率和查全率;
(b)与GPT- 3相比,Codex在NER任务上实现了更高的召回率和相当的精度,并在RE任务上实现了更高的精度和召回率。

研究总结

在这里插入图片描述

最后对这篇论文进行总结。
这篇论文提出的方法相对于其他顶刊论文来说,更加简单有效。它通过领域迁移,将文本生成转化为代码生成,设计上下文提示学习以替代仅提供API的大型模型微调。

未来的工作可考虑:

考虑设计更良好的代码格式提示。
目前是在黑盒模型GPT3和Codex上进行实验,之后可以在开源模型上进一步微调。
以及,在非英文数据集(如中文数据集)上探索本文模型的实用性。
在这里插入图片描述

这就是《CODEIE: Large Code Generation Models are Better Few-Shot Information Extractors》的主要内容和关键观点。感谢大家的聆听。

补充

条件困惑度

条件复杂度是一种用于评估模型在给定上下文下生成下一个标记的难度和质量的度量,
模型的目标尽可能减少条件复杂度,以获得更高质量的生成结果

语言模型的条件复杂度和代码模型的条件复杂度通常都基于困惑度(Perplexity)来计算,但有一些细微的差异,具体取决于模型的类型和应用领域。

1. 语言模型的条件复杂度:

语言模型的条件复杂度用于评估模型在给定上下文下生成下一个单词的质量。它通常采用以下方式计算:

  • 给定一组文本数据(通常是测试集),将每个句子划分为多个标记(例如,单词或字符)。
  • 模型接受一个前缀文本(通常是句子的一部分)作为输入,并尝试生成下一个标记。
  • 通过将模型生成的标记与实际下一个标记进行比较,计算困惑度。困惑度通常使用交叉熵损失来计算。

数学表达式如下:

P e r p l e x i t y = exp ⁡ ( − 1 N ∑ i = 1 N log ⁡ P ( w i ∣ w 1 , w 2 , … , w i − 1 ) ) Perplexity = \exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_1, w_2, \ldots, w_{i-1})\right) Perplexity=exp(N1i=1NlogP(wiw1,w2,,wi1))

其中:

  • P ( w i ∣ w 1 , w 2 , … , w i − 1 ) P(w_i | w_1, w_2, \ldots, w_{i-1}) P(wiw1,w2,,wi1)表示在给定前缀 w 1 , w 2 , … , w i − 1 w_1, w_2, \ldots, w_{i-1} w1,w2,,wi1的条件下,模型生成标记 w i w_i wi的概率。
  • N N N表示测试集中的标记总数。

2. 代码模型的条件复杂度:

对于代码生成模型,条件复杂度的计算方式与语言模型类似,但有一些不同之处:

  • 给定一组源代码或代码片段,将其分解为标记(例如,编程语言中的令牌或代码块)。
  • 模型接受前缀代码或上下文,并尝试生成下一个代码标记。
  • 使用交叉熵或其他损失函数计算条件复杂度,以评估模型在给定上下文下生成下一个代码标记的质量。

计算方式在代码模型中的具体实施可能因任务和模型架构而异,但基本原理与语言模型相似。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dfs序及相关例题

常用的三种dfs序 欧拉序 每经过一次该点记录一次的序列。 dfs序 记录入栈和出栈的序列。 dfn序 只记录入栈的序列。 dfs序 DFS 序列是指 DFS 调用过程中访问的节点编号的序列。 如何求dfs序&#xff1f;可以用以下代码来找dfs序。 vector<vector<int>> g(n…

Android开发,车载通讯应用——binder通讯原理解析

Binder简单理解 简单来说&#xff0c;Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程&#xff0c;Client 可以向 Server 端发起远程调用&#xff0c;也可以向Server传输数据&#xff08;当作函数参数来传&#…

JavaSE 优先级队列(堆)

目录 1 二叉树的顺序存储1.1 存储方式1.2 下标关系 2 堆(heap)2.1 概念2.2 操作-向下调整2.3 操作-建堆 3 堆的应用-优先级队列3.1 概念3.2 内部原理3.3 操作-入队列(向上调整)3.4 操作-出队列(优先级最高&#xff09;3.5 返回队首元素(优先级最高)3.6 java 中的优先级队列3.7 …

你工作中最推荐的 C/C++ 程序库有哪些,为什么?

你工作中最推荐的 C/C 程序库有哪些&#xff0c;为什么&#xff1f; 我主要做计算力学&#xff0c;说说平时用的一些c库1、前处理划网格用netgen&#xff0c;非结构网格功能强大&#xff0c;有可执行的软件和供调用的库&#xff0c;使用方便。 最近很多小伙伴找我&#xff0c;…

Trino 源码剖析

Functions function 反射和注册 io.trino.operator.scalar.annotations.ScalarFromAnnotationsParser 这里是提取注解元素的方法 String baseName scalarFunction.value().isEmpty() ? camelToSnake(annotatedName(annotated)) : scalarFunction.value(); 这里如果 scala…

早安心语微语早读,保持一颗平常心,坐看云起落花开谢得之淡然

1、保持一颗平常心&#xff0c;坐看云起落花开谢得之淡然&#xff0c;失之坦然&#xff0c;让生命中每一天都充满着阳光和希望&#xff01; 2、每个人都一样&#xff0c;都有一段独行的日子&#xff0c;或长或短&#xff0c;这都是无可回避的。不必总觉得生命空空荡荡&#xf…

QML 创建 Web 混合应用

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 随着互联网的快速发展,Web 应用在各个领域中变得越来越流行。为了满足用户对多样化功能的需求,我们经常需要将 Web 技术和原生应用相结合,来创建混合应用程序。 混合应用程序:是一种应用程序开发方法,它…

三款20万级B+级轿跑实力大PK,谁才是最优选?

近几年的车市,新能源汽车销量可谓节节升高,其中,可油可电、没有续航焦虑还能享受电动车行驾驶质感的混动车型,越来越被用户认可。在当前市场上的混动车型中,2024款哪吒S、比亚迪汉DM-i,一直都是大热选手,近期上市的零跑C01也欲成“追赶”之势。那么,这三款车中究竟谁能真正符合…

u盘直接拔出文件丢失怎么找回?u盘文件恢复办法分享!

u盘作为一种便捷的数据存储设备&#xff0c;被广泛地使用。通过u盘&#xff0c;我们可以在不同设备之间轻松传输文件&#xff0c;然而有时候&#xff0c;我们可能因为匆忙或疏忽并未安全弹出u盘&#xff0c;而是直接将u盘拔出&#xff0c;进而导致重要文件丢失&#xff0c;u盘直…

第20期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练 Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

10本值得阅读的量化交易书籍

什么是量化交易&#xff1f; 量化交易是利用数学模型或算法来创建交易策略并进行交易。量化交易通常由大型机构交易员或对冲基金雇用&#xff0c;他们雇用大量的博士和工程师团队。从历史上看&#xff0c;量化交易领域一直非常隐秘&#xff0c;有效的想法往往受到公司的严密保…

极智AI | 从大模型角度看苹果M3系列芯片

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 从大模型角度看苹果M3系列芯片。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 北京时间今天早上,Apple 发布了…

软文推广:让你的产品在市场中脱颖而出的法宝

软文推广为什么能成为企业宣传的常用手段&#xff0c;软文推广究竟能为企业带来什么&#xff1f;今天媒介盒子就来和大家分享&#xff0c;软文推广的五大效果。 一、 提升品牌曝光 软文发布能将带有品牌信息的软文发布到各类用户活跃度高、流量好的媒体&#xff0c;如果文案质…

链动2+1模式:白酒产品的营销新策略

链动21模式是一种创新的营销模式&#xff0c;结合白酒产品更能发挥其优势。该模式通过独特的身份晋升和奖励机制&#xff0c;快速建立销售渠道&#xff0c;提高用户粘性。 一、核心机制 身份晋升机制&#xff1a;用户购买指定499白酒产品后成为代理&#xff0c;再邀请两位用户…

linux 报错

输入 pip install -U openmim报错 有可能是服务器在其他国家&#xff0c;需要手动设置 把这三行复制到~/.bashrc里 export http_proxyhttp://127.0.0.1:3128 export https_proxy${http_proxy} export ftp_proxy${http_proxy}source ~/.bashrc

ATECLOUD如何进行电源模块各项性能指标的测试?

ATECLOUD平台进行电源模块各项性能指标的测试是通过以下步骤实现的&#xff1a; 连接测试设备&#xff1a;将测试设备与云计算服务器连接&#xff0c;实现数据采集和远程控制。测试设备包括示波器、电子负载、电源、万用表等&#xff0c;这些设备通过纳米BOX连接到云测试平台上…

Microsoft365个人版与家庭版有哪些功能区别?

Microsoft 365个人版与家庭版均能享受完整的Microsoft 365功能与权益&#xff0c;稍有不同的是&#xff0c;Microsoft 365家庭版可供6人使用&#xff0c;而个人版是仅供一人使用。 个人版可以同时登入5台设备&#xff0c;家庭版每人也可以登入5台设备&#xff0c;每个人都可以享…

扫描二维码填写信息怎么做?二维码生成表单的方法

当参加活动时&#xff0c;现在经常会发现申请活动都会通过扫码的方式来登记个人信息&#xff0c;那么对于这种登记类型的二维码是如何制作呢&#xff1f;想要通过扫码来登记信息&#xff0c;那么一般比较简单的方法就是在浏览器上利用二维码生成器来制作&#xff0c;这种方式的…

uni-app中使用手机号一键登录的详细图文教程

1、首先需要在dcloud开发者控制台开通一键登录 https://dev.dcloud.net.cn/uniLogin 开通一键登录服务, 获取关键最关键的两个参数ApiKey和ApiSecret 真机调试无需添加应用&#xff0c;如需打包使用请添加。一键登录应用ID为离线打包时配置的appid 2、登录云服务空间&#xff0…

智能井盖监测仪器的效果有哪些? 近些

年井盖事故频繁出现&#xff0c;尤其是在各个城市之中&#xff0c;由于井盖分布密集杂乱&#xff0c;并不能实行统一化管理&#xff0c;需要依靠传统人工巡查检修的方式&#xff0c;这就会带来更多的安全隐患。城市管理部门在对井盖进行监测只能依靠人工&#xff0c;监管不及时…