【大模型 数据增强】LLMAAA:使用 LLMs 作为数据标注器

【大模型 数据增强】LLMAAA:使用 LLMs 作为数据标注器

    • 提出背景
    • 算法步骤
      • 1. LLM作为活跃标注者(LLMAAA)
      • 2. k-NN示例检索与标签表述化
      • 3. 活跃学习策略
      • 4. 自动重权技术
    • LLMAAA 框架
      • 1. LLM Annotator
      • 2. Active Acquisition
      • 3. Robust Training
    • 总结
      • LLMAAA = 提示工程优化 + 活跃数据获取策略 + 鲁棒训练机制

 


提出背景

论文:https://arxiv.org/pdf/2310.19596.pdf

代码:https://github.com/ridiculouz/LLMAAA

 

以医学文献的实体识别为例,假设我们需要从医学论文中自动识别出药物名称、疾病和治疗方法等实体。

这些实体对于构建医学知识库、推进药物发现和支持临床决策等方面至关重要。

然而,手动标注这些实体通常是时间消耗大且成本高昂的,特别是考虑到专业知识的需求。

在这种情况下,LLMAAA 能自动化标注数据。

  1. 数据准备

    • 收集一批未标注的医学研究文献。
  2. 提示工程

    • 设计提示指令,告诉LLM如何识别文本中的医学实体。
    • 例如:“识别以下段落中所有的药物名称和疾病”。
  3. 活跃学习样本选择

    • 使用活跃学习算法从大量未标注的文献中选择最有可能包含重要实体的段落。
  4. LLM生成伪标注

    • 利用LLM和设计好的提示对选中的段落进行伪标注。
  5. 自动重权和微调

    • 应用自动重权技术,根据LLM标注的可信度调整每个标注样本的权重。
    • 使用伪标注的数据微调一个特定于实体识别的模型。
  6. 人工审核和模型迭代

    • 人工审核一小部分LLM生成的伪标注,以评估和改进标注质量。
    • 基于人工审核的结果迭代改进提示和微调模型。
  7. 模型应用

    • 将训练好的模型应用于新的医学文献集合,自动提取相关实体,支持进一步的医学研究和分析。

通过这个过程,LLMAAA框架能够有效地减少手动标注所需的专业人力和时间,同时提高了数据标注的覆盖率和质量,加速了医学知识的整理和应用。

 


算法步骤

LLMAAA框架结合了活跃学习和大型语言模型(LLM)的能力来自动化数据标注的过程。

1. LLM作为活跃标注者(LLMAAA)

这个过程的目的是让LLM在数据标注中起到积极作用,而不是被动地对大量数据进行标注。

  • 活跃数据获取:通过活跃学习机制,系统会评估哪些未标注的数据最有可能提升模型的性能。
  • 生成伪标签:一旦确定了哪些数据最有价值,LLM会对这些数据生成伪标签,作为初始的标注结果。

活跃学习让模型在训练过程中有选择性地识别哪些数据最有价值,即对于改善模型性能最有帮助的数据。

活跃学习尤其适用于标注数据稀缺或标注成本高昂的场景。

活跃学习算法通常步骤:

  1. 选择样本:算法从未标注的数据池中选择一批样本。这些样本是基于某种标准挑选的,比如模型对它们的预测不确定性很高,或者样本能够最大程度地增加模型的多样性。

  2. 人工标注:这些选定的样本将被人工标注。在一些情况下,可以使用半自动的方法,先由机器生成伪标签,然后由人类专家进行验证和修正。

  3. 更新模型:一旦样本被标注,模型就用这些新数据进行更新训练。

  4. 迭代:上述过程反复进行,每次迭代都选择新的样本进行标注和训练,直到模型性能达到满意的水平或者资源耗尽。

活跃学习的优势在于它可以显著减少所需进行手动标注的数据量,从而节约时间和成本,同时在很多情况下还能保持或提高模型的性能。

2. k-NN示例检索与标签表述化

在标注过程中,为了提高LLM生成的标注质量,可以使用以下方法:

  • k-NN示例检索:选取与当前需要标注的数据点在内容上最接近的k个已标注的示例,这有助于LLM更好地理解上下文和预期的输出格式。
  • 标签表述化:将抽象的标签(如类别代码)转换成自然语言描述。例如,在医学影像标注中,将“肿瘤”标签转换为详细的描述,如“圆形阴影在右上肺叶”。

假设我们的目标是自动标注一组胸部X光图像,识别图中是否存在肺部疾病,如肺炎、肿瘤等。这个任务对于支持医生快速诊断至关重要。

步骤1: k-NN示例检索

  1. 创建示例数据库:首先,收集一批已经由放射科医生手动标注的胸部X光图像。这些图像被标注了不同的肺部疾病类型,包括肺炎、肿瘤等。
  2. 计算相似度:对于每张待标注的X光图像,系统利用图像处理算法(如基于深度学习的特征提取)计算其与示例数据库中每张图像的相似度。
  3. 选择最接近的示例:基于相似度评分,为每张待标注的图像选择k个最相似的已标注图像作为参考。

步骤2: 标签表述化

  1. 标签转换为描述:对于示例数据库中的每种肺部疾病标签,创建详细的自然语言描述。例如,肿瘤标签对应的描述可能是“图像中显示了肺部的不规则圆形阴影,边界清晰,可能是肿瘤的迹象”。
  2. 利用描述进行标注:当LLM对待标注的X光图像进行分析时,将这些自然语言描述作为提示,引导模型生成更精确的诊断标注。

假设有一张待标注的胸部X光图像显示了右上肺叶的圆形阴影。

通过k-NN示例检索,系统找到了几张具有相似特征的已标注图像,这些图像被标注为显示肿瘤存在。

接着,利用标签表述化技术,LLM得到提示:“如果图像中显示肺部的不规则圆形阴影,请标注为肿瘤。”

依据这些信息,LLM预测待标注图像显示的是肿瘤。

通过这种方式,k-NN示例检索和标签表述化技术共同提高了LLM在医学影像标注任务上的性能,帮助模型以更人性化、更准确的方式理解和描述医学图像中的病变,从而为医生的诊断提供辅助信息。

3. 活跃学习策略

活跃学习策略是整个框架的核心,它决定了哪些数据被选中进行标注以提高模型的性能。

活跃学习让模型在训练过程中有选择性地识别哪些数据最有价值,即对于改善模型性能最有帮助的数据。

那什么是最有帮助的数据:

  • 不确定性最大化
  • 多样性最大化
  1. 不确定性最大化(特征1)

    • 描述:选择那些模型预测结果最不确定的样本。
    • 这些样本往往能为模型提供最多的信息,因为模型对它们的预测缺乏信心,学习这些样本能显著提升模型的性能。
    • 实施方法:计算每个样本的预测不确定性(例如,通过概率分布的熵值)并选择不确定性最高的样本进行标注。
  2. 多样性最大化(特征2)

    • 描述:确保选中的样本集在特征空间上具有广泛的覆盖范围。
    • 这样做可以让模型接触到数据分布的不同区域,增强其泛化能力。
    • 实施方法:采用聚类算法(如k-means)对未标注的数据进行聚类,然后从每个聚类中选择代表性样本,或者直接基于特征空间的分布来选择样本,以保证样本的多样性。
  • 代表性样本选择(隐藏特征)
    • 描述:除了考虑不确定性和多样性外,还需要考虑样本的代表性,即选择那些能够代表数据整体分布的样本。
    • 实施方法:结合不确定性和多样性指标,使用加权方法来评估每个样本的综合价值,确保选中的样本既有高不确定性,又能代表数据的整体分布。

4. 自动重权技术

由于伪标签可能包含噪声,需要一种方法来减少这些标注错误对模型训练的影响。

  • 元学习优化:自动重权技术通过元学习框架来优化标注样本的权重。模型在小规模的验证集上测试,以评估哪些数据点的标注最可能是错误的。
  • 权重调整:根据验证集上的性能,自动调整每个数据点在训练过程中的权重,从而减少噪声数据的影响。

在这里插入图片描述
使用重权技术(w/ reweighting)与不使用重权技术(w/o reweighting)时的F1分数变化。

虚线代表了使用传统提示方法的性能。

可以看出,使用自动重权技术通常会带来性能的提升。

 


LLMAAA 框架

在这里插入图片描述
使用不同版本的大型语言模型(如GPT-3, ChatGPT, GPT-4)进行中文OntoNotes 4.0数据集上的命名实体识别(NER)任务时,LLMAAA框架与传统提示方法(PROMPTING)的性能对比。

表格中的"P", “R”, "F1"分别代表精确度(Precision)、召回率(Recall)、和F1分数,这些是衡量模型性能的标准指标。

LLMAAA框架在提高F1分数方面表现出明显优势,这表明了它在标注数据时的高效性和准确性。

这张图,它比较了LLMAAA与其他框架的不同:

  1. (a) Human annotation as supervision:这个部分展示了传统的人工注释流程,即人类注释者将未标注数据转换为标注数据。

  2. (b) Text generation as supervision:这个部分显示了一个使用语言模型进行文本生成作为监督的过程。这里,给定上下文示例和提示,预训练的语言模型(PLM)生成标注数据。

  3. © LLMAAA: Active LLM annotation as supervision:此部分具体展示了LLMAAA框架的流程。

    这个过程利用活跃数据获取来指导语言模型注释未标注数据,生成的标注数据随后用于训练特定任务模型。这个框架强调了用于提高效率的活跃学习元素,减少了人类努力的需要。

两幅图表共同强调了LLMAAA方法相比传统人工注释和简单的文本生成方法,能够有效提升数据注释的效率和质量,同时减少对人工注释的依赖。

 

在这里插入图片描述
此图展示了LLMAAA(LLM作为活跃注释者)的整体架构和工作流程,它主要由以下三个部分组成:

  1. LLM Annotator:这个部分说明了如何利用提示工程来优化LLM的注释器,使其能够生成伪标签。

    提示工程:利用精心设计的提示来优化LLM的输出,使其能够针对特定任务生成高质量的伪标签。

    上下文示例利用:通过提供相关的上下文示例来辅助LLM更好地理解任务需求和数据特点。

  2. Active Acquisition:这个部分描述了一种有效的数据选择机制。

    数据价值评估:对大量未标注的数据进行评估,识别出对模型性能提升最有帮助的数据。

    策略性数据选择:基于模型的不确定性或数据的多样性来选择最有价值的数据进行标注,而不是随机选择。

  3. Robust Training:最后,它强调了自动重权技术以确保在噪声标签存在的情况下也能进行稳健的学习。

    这样的训练过程考虑到了标签质量可能不一,且通过重权技术调整学习过程,减少噪声的影响。

    自动重权技术:利用元学习框架对标注样本的权重进行动态调整,以应对标注中的噪声问题。

    标签质量适应性学习:根据模型在验证集上的表现来调整权重,优先训练那些标注质量高的数据。

举个例子。

目标是使用LLMAAA框架自动标注医学影像数据集,如X射线或MRI扫描图像,以识别出不同类型的病变(比如肿瘤、骨折等)。

1. LLM Annotator

  • 提示工程:设计提示来指导LLM识别和标注医学影像中的特定病变。例如,提示可能是“在这张X射线图像中识别所有可见的肿瘤,并描述它们的位置和大小”。
  • 上下文示例利用:提供一些已经由医学专家标注的影像作为示例。这些示例帮助LLM理解肿瘤在医学影像中的典型外观和如何准确描述它们的位置和大小。

2. Active Acquisition

  • 数据价值评估:使用一个初始的、简单的医学影像分析模型来评估未标注影像的价值。挑选出这个模型最不确定的影像,即那些模型难以判断病变类型的影像。
  • 策略性数据选择:选择这些高不确定性的影像进行LLM标注,因为这些影像提供了最大的学习机会,有助于快速提升模型性能。

3. Robust Training

  • 自动重权技术:在得到LLM标注的影像后,可能存在一些标注错误或不准确的情况。使用自动重权技术,根据一个小的、已经由医学专家准确标注的验证集来动态调整每张影像的权重。这样可以减少错误标注的影响。
  • 标签质量适应性学习:如果模型在验证集上对某些LLM标注的影像表现不佳,这些影像的权重会被降低,从而优先训练那些标注质量更高的数据。

在实际应用中,这个过程可以帮助医学影像分析系统快速学习和适应新的、未见过的病变类型,特别是在数据标注资源有限的情况下。

例如,如果新出现了一种肿瘤类型,系统可以通过上述流程迅速集成这类肿瘤的识别能力,从而提升整个医学影像分析系统的准确性和鲁棒性。

 


总结

LLMAAA = 提示工程优化 + 活跃数据获取策略 + 鲁棒训练机制

  1. 提示工程优化(Prompt Engineering Optimization)

    • 特征1:任务定制提示 - 设计与特定任务紧密相关的提示,来引导LLM的输出。
    • 特征2:上下文示例 - 提供与任务相关的上下文示例,辅助LLM理解任务目标。
  2. 活跃数据获取策略(Active Data Acquisition Strategy)

    • 特征1:数据价值评估 - 使用算法评估未标注数据的价值,以确定哪些数据可能最有助于提高模型性能。
    • 特征2:策略性样本选择 - 基于价值评估选择样本,而不是随机选择,确保标注工作集中在可能带来最大性能提升的数据上。
  3. 鲁棒训练机制(Robust Training Mechanism)

    • 特征1:自动重权技术 - 在训练过程中应用元学习算法自动调整数据样本的权重,以解决伪标签噪声问题。
    • 特征2:标签质量适应性学习 - 调整权重以偏好那些与验证集上高质量标注一致的样本,优化模型对于高质量数据的学习。

传统方法依赖大量的人工作业和专业知识,而没有充分利用现有的自动化工具和技术,如大型语言模型、活跃学习等,来提高标注的效率和准确性。

更深层次的原因是,现有技术和方法没有被整合到一个统一的框架中,缺乏一个系统性的解决方案来综合利用这些技术的优势。

最根本的原因是缺少一个能够综合利用大型语言模型的生成能力、活跃学习的数据选择优势和自动重权技术的鲁棒性,来优化数据标注过程的框架。

所以,可以通过整合提示工程优化、活跃数据获取策略和鲁棒训练机制到一个统一的框架中,即LLMAAA,来解决这一问题。

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

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

相关文章

SkyWalking之APM无侵入可观测原理分析

一、 简介(为什么需要用到可观测能力) 随着微服务的开发模式的兴起,早期的单体架构系统已拆分为很多的子系统,各个子系统封装为微服务,各服务间通过HTTP协议RESET API或者RPC协议进行调用。 在单体服务或者微服务较少的…

8:00面试,8:05就出来了 ,问的实在是....

从外包出来,没想到竟然死在了另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以我也就忍了。没想到12月一纸通知,所有人都不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个…

ESP8266智能家居(2)——8266发布数据到mqtt服务器

1.公共服务器 学习物联网就离不开服务器,如果你资金充足的话,可以自己购买或者租用一个服务器。本次我选择,使用免费的公共MQTT服务器。它的端口及Broker信息如下: 网址为: 免费的公共 MQTT 服务器 | EMQ (emqx.com)h…

LLMChain使用 | RouterChain的使用 - 用本地大模型搭建多Agents

单个本地大模型搭建参考博客 单个Chain:面对一个需求,我们需要创建一个llmchain,设置一个prompt模板,这个chain能够接收一个用户input,并输出一个结果;多个Chain:考虑到同时面对多个需求&#x…

第三百六十回

文章目录 1. 概念介绍2. 实现方法2.1 环绕效果2.2 立体效果 3. 示例代码4. 内容总结 我们在上一章回中介绍了"自定义SlideImageSwitch组件"相关的内容,本章回中将介绍两种阴影效果.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本…

设计模式-创建型模式-原型模式

原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节…

微信小程序开发学习笔记——2.8媒体组件image的src三种引入方式

>>跟着b站up主“咸虾米_”学习微信小程序开发中,把学习记录存到这方便后续查找。 课程连接: https://www.bilibili.com/video/BV19G4y1K74d?p11 image:https://developers.weixin.qq.com/miniprogram/dev/component/image.html 一…

Redis-内存管理

Redis是基于内存存储的,非关系型,键值对数据库。因此,对Redis来说,内存空间的管理至关重要。那Redis是如何内存管理的呢? 一、最大内存限制 Redis 提供了 maxmemory 参数允许用户设置 Redis 可以使用的最大内存大小。…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

Elastic Search:构建语义搜索体验

当你逐步熟悉 Elastic 时,你将使用 Elasticsearch Relevance Engine™ (ESRE),该引擎旨在为 AI 搜索应用程序提供支持。 借助 ESRE,你可以利用一套开发人员工具,包括 Elastic 的文本搜索、向量数据库和我们用于语义搜索的专有转换…

ngnix网站服务详解

一 Nginx的简介 1 Nginx: ①Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热…

2月22日作业,按键中断LED灯控制

1.使用GPIO子系统&#xff0c;编写LED驱动&#xff0c;应用程序测试 mychrdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include <linux/of.h> …

微软Azure OpenAI的 GPT 接口使用小结

直接使用OpenAI的 GPT服务&#xff0c;在国内环境使用上会一些相关问题&#xff0c;微软提供了OpenAI的服务&#xff0c;基本上可以满足的相关的需要。下面提供一些简单的使用操作&#xff0c;来让你快速使用到 GPT 的服务。 前提&#xff1a;注册Azure的账户&#xff0c;并绑…

OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍

在OpenCV中&#xff0c;normalize函数用于将图像或矩阵的值规范化到一个特定的范围内。这在图像处理中非常有用&#xff0c;比如在调整图像的对比度、准备数据进行机器学习处理时。规范化可以提高不同图像之间的可比性&#xff0c;或是为了满足特定算法对数据范围的要求。 nor…

36、IO进程线程/进程和线程之间的通信练习

一、使用有名管道完成两个进程的相互通信(提示&#xff1a;可以使用多进程或多线程完成)。 代码1&#xff1a;创建两个有名管道文件 #include<myhead.h>int main(int argc, const char *argv[]) {if(mkfifo("./mingtohua",0664)-1)//创建小明向小华发信息的管…

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束&#xff0c;这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义&#xff0c;就是把原图预处理为深度图&#xff0c;而深度图可以区分出图像中各元素的远近关系&#xff0c;那么啥事深度图&#xf…

本机防攻击简介

定义 在网络中&#xff0c;存在着大量针对CPU&#xff08;Central Processing Unit&#xff09;的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文&#xff0c;从而引发其他业务的中断甚至系统的中断&#xff1b;大量正常…

惠尔顿 网络安全审计系统 任意文件读取漏洞复现

0x01 产品简介 惠尔顿网络安全审计产品致力于满足军工四证、军工保密室建设、国家涉密网络建设的审计要求&#xff0c;规范网络行为&#xff0c;满足国家的规范&#xff1b;支持1-3线路的internet接入、1-3对网桥&#xff1b;含强大的上网行为管理、审计、监控模块&#xff1b…

【2024软件测试面试必会技能】Requests(5):Requests模块_设置代理

设置代理 代理&#xff08;英语&#xff1a;Proxy&#xff09;&#xff0c;也称网络代理&#xff0c;是一种特殊的网络服务&#xff0c;英文全称是&#xff08;Proxy Server&#xff09;&#xff0c;其功 能就是代理网络用户去取得网络信息。形象的说&#xff1a;它是网络信息…

P8630 [蓝桥杯 2015 国 B] 密文搜索

P8630 [蓝桥杯 2015 国 B] 密文搜索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P8630 题目分析 基本上是hash的板子&#xff0c;但实际上对于密码串&#xff0c;只要判断主串中任意连续的八个位置是否存在密码串即可&#xff1b;那么我们…