数据增强术:如何利用大模型(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金”)。
- 使用LLMs(如GPT-4)来替换句子中的实体、关系三元组或事件触发器,同时保持其类型不变,并确保其他内容不受影响:
-
上下文扰动
- 冗余信息注入:在句子中插入无关条款(如“根据《中华人民共和国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.基于规则的对抗样本生成
-
拼写错误注入(Typo Injection):
• 目标:模拟现实世界中常见的拼写错误。
• 实现:在较长的单词中随机插入拼写错误。由于LLMs生成的错误通常不现实,因此采用规则方法来实现。 -
大小写转换(Lowercase Conversion):
• 目标:模拟非标准输入,评估模型在文本格式变化时的鲁棒性。
• 实现:将每个单词的所有字符转换为小写,除了第一个单词的首字母。这测试了模型在非标准输入条件下是否仍能准确提取信息。
3. 样本生成与验证
- LLM生成流程:
- 输入原始xxx文本,通过定制Prompt引导LLM生成对抗样本(示例见附录)。
- 示例Prompt:
请对以下xxx进行扰动生成: 1. 替换实体(x标方、项目编号),保持类型一致。 2. 添加冗余法律条款,不改变核心信息。 3. 注入1-3处拼写错误(如同音字、形近字)。 原始文本:{原文}
- 人工审核:
- 验证生成样本的语义合理性和扰动有效性,过滤不符合实际的噪声样本。
- 确保敏感信息(如xx名称、金额)脱敏处理。
二、动态数据增强策略
一种基于损失的动态选择困难样本进行迭代训练的方法。首先,使用初始模型在原始训练集上进行训练,并计算增强样本的推理损失。然后,根据推理损失选择高损失样本进行微调。接下来,基于微调后的模型重新计算增强样本的推理损失,并选择困难样本进行下一轮训练。重复此过程,直到模型在验证集上的性能提升低于收敛阈值。
1.训练方法
-
输入:
•D
:原始训练数据集。
•M
:初始的信息抽取模型。
•β
:用于选择高损失样本的比例。
•δ
:用于判断模型性能提升是否达到收敛的阈值。 -
输出:
•M_t
:经过多次迭代微调后的模型。 -
步骤:
• 步骤1:使用LLM生成基于原始训练数据D的增强数据集 D aug D_{\text{aug}} D<