数据增强术:如何利用大模型(LLMs)来模拟不同的扰动类型以增强信息提取任务的鲁棒性

一、对抗样本库构建

1. 基于LLMs的领域针对性扰动设计对抗样本生成
  • 替换实体、三元组和触发器(Replace Entity, Triple, and Trigger)

    • 使用LLMs(如GPT-4)来替换句子中的实体、关系三元组或事件触发器,同时保持其类型不变,并确保其他内容不受影响:
      • xxx名称(如“x方” → “xx方”)、xx编号(如“XM2024-001” → “xx编号:24-ZB-001”)。
      • 保留实体类型(x构、x间、x额等),确保语义一致性。
    • 规则辅助:建立xxx术语替换词典(如“xx保证金” → “xxxx金”)。
  • 上下文扰动

    • 冗余信息注入:在句子中插入无关条款(如“根据《中华人民共和国xxxxx》规定……”)。
    • 格式扰动
      • 删除标点或添加无序段落分隔符(如“###”)。
      • 大小写混合(如“xx截止时间:2024年12月31日” → “xx截止时间:2024年12月31日”)。
    • 改变上下文(Change Context)
      去除句子中的标点、实体、事件触发器和停用词,只保留有意义的上下文词汇。然后随机选择最多四个单词并用[MASK]标记替换。接着,使用LLMs为每个[MASK]标记生成三个预测,并随机选择一个进行替换。
    • 扩展句子(Extend Sentence)
      在句子的开头或结尾添加语义相关的内容,以增加句子的语义深度。对于NER任务,新句子必须保持原始实体的边界和类型;对于RE任务,原始的关系三元组不能改变;对于ED任务,原始的事件触发器不能引入新的事件信息。
  • 噪声注入

    • 拼写错误:模拟OCR识别错误(如“xx文件” → “xx文仵”)。
    • 符号干扰:插入特殊字符(如“xx预算:¥5,000,000” → “xx预算:¥5,000,000”)。
  • 领域特定扰动

    • 条款变异:同一条款不同表达(如“xx文件需密封提交” → “xx文件应加盖公章后密封递交”)。
    • 时间格式多样性:统一时间格式为多种形式(“2024-12-31” → “2024年12月31日”或“31/12/2024”)。
2.基于规则的对抗样本生成
  1. 拼写错误注入(Typo Injection)
    • 目标:模拟现实世界中常见的拼写错误。
    • 实现:在较长的单词中随机插入拼写错误。由于LLMs生成的错误通常不现实,因此采用规则方法来实现。

  2. 大小写转换(Lowercase Conversion)
    • 目标:模拟非标准输入,评估模型在文本格式变化时的鲁棒性。
    • 实现:将每个单词的所有字符转换为小写,除了第一个单词的首字母。这测试了模型在非标准输入条件下是否仍能准确提取信息。

3. 样本生成与验证
  • LLM生成流程
    • 输入原始xxx文本,通过定制Prompt引导LLM生成对抗样本(示例见附录)。
    • 示例Prompt:
      请对以下xxx进行扰动生成:  
      1. 替换实体(x标方、项目编号),保持类型一致。  
      2. 添加冗余法律条款,不改变核心信息。  
      3. 注入1-3处拼写错误(如同音字、形近字)。  
      原始文本:{原文}  
      
  • 人工审核
    • 验证生成样本的语义合理性和扰动有效性,过滤不符合实际的噪声样本。
    • 确保敏感信息(如xx名称、金额)脱敏处理。

二、动态数据增强策略

一种基于损失的动态选择困难样本进行迭代训练的方法。首先,使用初始模型在原始训练集上进行训练,并计算增强样本的推理损失。然后,根据推理损失选择高损失样本进行微调。接下来,基于微调后的模型重新计算增强样本的推理损失,并选择困难样本进行下一轮训练。重复此过程,直到模型在验证集上的性能提升低于收敛阈值。

1.训练方法
  1. 输入
    D:原始训练数据集。
    M:初始的信息抽取模型。
    β:用于选择高损失样本的比例。
    δ:用于判断模型性能提升是否达到收敛的阈值。

  2. 输出
    M_t:经过多次迭代微调后的模型。

  3. 步骤
    步骤1:使用LLM生成基于原始训练数据D的增强数据集 D aug D_{\text{aug}} Daug
    步骤2:在原始训练数据集 D 上微调初始模型 M,得到模型 M 0 M_0 M0
    步骤3:初始化迭代次数 t 为1。
    步骤4:进入循环,直到满足退出条件。
    步骤5:对于每个样本,计算推理损失 L i = L ( θ t − 1 ; x i , y i ) L_i = L(\theta_{t-1}; x_i, y_i) Li=L(θt1;xi,yi)
    步骤6:根据推理损失对增强样本进行降序排序。
    步骤7:根据选择比例 β \beta β,选择损失最高的样本组成新的训练集 D retrain ( t ) D_{\text{retrain}}^{(t)} Dretrain(t)
    步骤8:使用 M t − 1 M_{t-1} Mt1 D retrain ( t ) D_{\text{retrain}}^{(t)} Dretrain(t) 上进行微调,得到新的模型 M t M_t Mt
    步骤9:更新选择比例 β \beta β β / 2 \beta / 2 β/2 并递增迭代次数 t
    步骤10:检查模型在验证集上的性能提升是否低于收敛阈值 δ \delta δ。如果是,则退出循环。
    步骤11:返回最终微调后的模型 M t M_t Mt


三、鲁棒性评估与优化

1. 测试集构建
  • 对抗测试集

    • 从xx标数据中抽取1000条样本,应用14种扰动生成对抗测试集(如RUIE-Bench模式)。
    • 覆盖典型噪声场景:拼写错误、格式混乱、术语变异、长文本干扰。
  • 跨领域测试集

    • 收集未参与训练的xx标数据(如不同行业、地区),验证模型泛化能力。
2. 评估指标
  • 基础指标
    • 精确率(Precision)、召回率(Recall)、Micro-F1(按Span边界和类型严格匹配)。
  • 鲁棒性指标
    • 性能下降率:原始测试集F1与对抗测试集F1的差值百分比。
    • 扰动敏感度:统计模型在不同扰动类型下的F1波动(如拼写错误 vs. 格式扰动)。
3. 持续优化
  • 困难样本挖掘
    • 定期从新xxx数据中提取模型预测错误的样本,加入对抗样本库。
  • 领域自适应
    • 针对特定行业(如基建、IT),定制扰动规则和增强数据比例。
  • 多任务联合训练
    • 将实体识别、关系抽取、事件检测联合优化,增强上下文推理能力。

四、部署与监控

1. 生产环境适配
  • 实时对抗防御
    • 在推理阶段前置文本清洗模块,自动纠正明显拼写错误和格式问题。
  • 动态更新机制
    • 每月更新对抗样本库和模型参数,适应政策变化和新术语出现。
2. 异常监控
  • 日志分析
    • 记录模型在真实场景中的预测错误案例,分析主要噪声类型。
  • 人工反馈
    • 建立标注团队定期审核模型输出,修正漏检/误检样本并反哺训练。

五、附录:xxx领域对抗样本示例

原始文本
xxx方:XX市交通局  
xx编号:XM2024-001  
xx金额:¥5,000,000  
xx截止时间:2024年12月31日  
对抗样本(LLM生成)
xxx方:XX市城建集团(实体替换)  
xx编号:24-ZB-001(格式扰动)  
xxx金额:¥5,000,000(符号干扰)  
xx截止时间:2024年12月31號(拼写错误)  
注:本项目需符合《中华人民共和国xxx实施条例》第三十二条(冗余信息注入)  

8192个Token长度文档的信息抽取UIE模型开源了 上文中的模型M大家可以直接用它,当然其他的也很多l在这里插入图片描述大家可以在它基础上进一步的微调了,当然老版的uie(2048)也够用而且效率要更高,硬件要求也低
增强方法有兴趣的可以去看看相关论文https://arxiv.org/pdf/2503.03201

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

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

相关文章

深入了解Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件,就有了版本控制器; 所谓的版本控制器,就是能够了解到一个文件的历史记录(修改记录);简单来说就是记录每一次的改动和版本迭代的一个管理系统,同…

Windows编程----进程的当前目录

进程的当前目录 Windows Api中有大量的函数在调用的时候,需要传递路径。比如创建文件,创建目录,删除目录,删除文件等等。拿创建文件的CreateFile函数做比喻,如果我们要创建的文件路径不是全路径,那么wind…

MyBatis-Plus分页控件使用及使用过程发现的一个坑

最近维护一个旧项目的时候,出现了一个BUG,经排查后发现是Mybatis-plus分页控件使用的时候需要注意的一个问题,故在本地使用MybatisPlus模拟出现了一下这个问题。 首先,先说一下MyBatis-Plus的使用: 1)引入…

服务端和客户端通信(TCP)

服务端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace TeachTcpServer {class Program{static void Main(string[] args){#region 知识点一 …

Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置

截止 2025/3/9 ,版本更新到了 3.29.1 ,但是为了防止出现一些奇怪的bug,我安装的还是老一点的,3.19,其他版本的安装同理。AndroidStudio用的是 2024/3/1 版本。 — 1 环境变量(Windows) PUB_H…

C++11中的Condition_variable

C11中的condition_variable 在C11中,条件变量(std::condition_variable)是线程同步机制之一,用于在多线程环境中实现线程间的通信和协调。它允许一个或多个线程在某个条件尚未满足时等待,直到其他线程通知条件已经满足…

ROS2-话题学习

强烈推荐教程: 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

深度学习模型Transformer核心组件—前馈网络FFN

第一章:人工智能之不同数据类型及其特点梳理 第二章:自然语言处理(NLP):文本向量化从文字到数字的原理 第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码) 第四章:循环神经网络RNN、LSTM以及GR…

Helm安装chart包到k8s报错“不能重复使用名称,名称已被使用”

一、报错提示如下 “Error: INSTALLATION FAILED: cannot re-use a name that is still in use”,意思是安装chart时提供的名称已存在,不能重复使用同一个名称。 登录后复制 rootiZ:/usr/local/src/my-helm-repo/charts# helm install mymemcached3 memcached -n te…

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中,容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告,78% 的开发者已采用 Docker Compo…

对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)

前言 25年2.4日,几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST,如之前所介绍的,他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址:github.com/Ph…

VBA使用fso对象合并指定路径的txt文件(含子目录)

图(1) 前几天我跟大家分享了在VBA中如何获取指定类型文件的路径的方法,其中最重要的一个思路就是在处理完当前目录的文件后,再调用程序自身来对子目录进行处理,以此来实现对子目录的无限循环,直至所有文件都处理完毕为止。按照此设…

nginx反向代理功能

如上图所示,当配置好nginx反向代理服务器的时候,客户端向nginx反向代理服务器发送请求,nginx反向代理服务器再向真实服务器转发请求。 nginx作为反向代理就是利用nginx高并发,速度快的特性,让nginx能够承受更多的链接…

deepseek在pycharm中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁,ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…

八卡5090服务器首发亮相!

AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力,在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出,正促使各行业应用端算力需求向推理主导转变,呈爆发式增长 。 随着 DeepS…

hadoop集群环境配置

目录 VMware虚拟机安装 Xshell安装 网络问题 centos7下载 ---------参考以下视频步骤进行生态搭建---------- 搭建好hadoop01 克隆出hadoop02、hadoop03 启动三台虚拟机 打开终端 输入 记录下各个ip 打开Xshell,新建会话 修改主机名 配置静态IP 主机名称…

【GPU】什么是NCCL和Simple, LL, LL128通信协议

​​​​​​​什么是NCCL 简介 NCCL 的原理 机器内通信: 机器间通信: NCCL通信协议 简介 NCCL通信选择协议规则 ​​​​​​​1 自动选择 ​​​​​​​2 强制选择 Simple协议 1 介绍 2 Simple 协议的基本格式 2 Simple 协议的示例 Sim…

aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)

aws(学习笔记第三十一课) aws cdk深入学习 学习内容: 深入练习aws cdk下部署batch-arm64-instance-type 1. 深入练习aws cdk下部署batch-arm64-instance-type 代码链接 代码链接 代码链接 -> batch-arm64-instance-type之前代码学习 之前学习代码链接 -> aw…

单细胞多数据集整合和去除批次效应教程,代做各领域生信分析

单细胞多数据集整合和去除批次效应教程 每个数据集的数据分别单独进行读取单细胞数据构建Seurat分析对象 读取各种来源的单细胞数据构建Seurat分析对象的教程 做这一步的时候可以查看我这篇写的非常详细的教程文章: 【腾讯文档】单细胞分析步骤1读取各种来源格式…