探索无监督域自适应,释放语言模型的力量:基于检索增强的情境学习实现知识迁移...

b37b79fdd813e1a3cfed3de420ee35bb.png

深度学习自然语言处理 原创
作者: Xnhyacinth

在自然语言处理(NLP)领域,如何有效地进行无监督域自适应(Unsupervised Domain Adaptation, UDA) 一直是研究的热点和挑战。无监督域自适应的目标是在目标域无标签的情况下,将源域的知识迁移到目标域,以提高模型在新领域的泛化能力。近年来,随着大规模预训练语言模型的出现,情境学习(In-Context Learning) 作为一种新兴的学习方法,已经在各种NLP任务中取得了显著的成果。然而,在实际应用场景中,我们经常面临一个问题:源领域的演示数据并不总是一目了然。这就导致了需要进行跨领域的上下文学习的问题。此外,LLMs在未知和陌生领域中仍然面临着一些挑战,尤其是在长尾知识方面。同时在无监督域自适应任务中,如何充分利用情境学习的优势进行知识迁移仍然是一个开放性问题。

本文旨在探讨如何在无监督域自适应场景下,通过检索增强的情境学习(Retrieval-Augmented In-Context Learning) 实现知识迁移。具体来说,作者提出了一种名为Domain Adaptive In-Context Learning (DAICL) 的框架,该框架通过检索目标域的相似示例作为上下文,帮助模型学习目标域的分布和任务特征。全面研究了上下文学习对于领域转移问题的有效性,并展示了与基线模型相比取得的显著改进。

接下来就让我们一起看看作者是如何实现检索增强情境学习的知识迁移!

2fc0549b4adda3b5e889412b8bd9a34b.png

论文: Adapt in Contexts: Retrieval-Augmented Domain Adaptation via In-Context Learning
地址: https://arxiv.org/pdf/2311.11551.pdf

前言

在自然语言处理领域,大型语言模型(LLMs)通过其强大的能力在各种任务上取得了显著的成功。然而,当面临跨领域的情景时,LLMs仍面临着挑战,由于目标域标签不可用,在实际场景中通常缺乏域内演示。从其他领域获取带标签的示例可能会遭受巨大的句法和语义领域变化。此外,LLMs很容易产生不可预测的输出, 而且LLMs在未知和陌生领域的长尾知识上仍然存在局限性。因此亟需有效的适应策略,将语言模型的知识从标记的源域转移到未标记的目标域,称为无监督域适应(UDA)。UDA 旨在调整模型,从标记的源样本和未标记的目标样本中学习与领域无关的特征

1534952a67db35744e9f7da10f7be091.png

为了解决这些问题,本文提出了一种基于上下文学习的无监督领域适应(Unsupervised Domain Adaptation, UDA)方法,旨在将LLMs从源领域成功适应到目标领域,无需任何目标标签。从目标未标记语料库中检索类似的示例作为源查询的上下文,并通过连接源查询和目标上下文作为输入提示来执行自适应上下文学习。如上图所示,对于来自源域的每个输入,将其上下文与从目标未标记域检索到的语义相似的文本组合起来,以丰富语义并减少表面形式的域差异。然后,模型将学习源输入和目标上下文的任务区分。

方法

该研究提出了一种名为Domain Adaptive In-Context Learning (DAICL)的框架,通过检索目标域的相似示例作为上下文,帮助模型学习目标域的分布和任务特征,使LLMs同时学习目标领域分布和判别性任务信号。具体来说,对于给定的源域数据和目标域数据,首先使用检索模型(如SimCSE)在目标域中检索与源域数据相似的示例。然后,将检索到的示例作为上下文,与源域数据一起作为输入,进行情境学习。通过这种方式,模型可以在目标域的上下文中学习任务特征,同时适应目标域的数据分布。主要分为以下几个部分:

  • 检索目标域相似示例:首先,在目标域中检索与源域数据相似的示例。这一步的目的是找到能够代表目标域特征的示例,以便模型能够在目标域的上下文中学习任务特征。检索方法可以采用现有的密集检索模型,如SimCSE。

  • 构建上下文:将检索到的目标域相似示例与源域数据一起作为输入,形成上下文。这样,模型可以在目标域的上下文中学习任务特征,同时适应目标域的数据分布。

  • 情境学习:在构建的上下文上进行情境学习。这里采用了两种任务损失函数:(1)上下文任务损失,用于学习任务特征,预测标签值y;(2)上下文语言建模损失,用于学习目标域的分布。通过优化这两个损失函数,模型可以在目标域中实现知识迁移。

  • 模型训练:根据所使用的模型架构(如编码器,解码器模型),设计相应的prompting策略和训练策略。对于编码器模型,可以采用提示词(prompt)策略,将源域数据和检索到的目标域示例拼接在一起作为输入;对于解码器模型,可以直接将检索到的目标域示例作为输入,进行自回归学习。

  • 模型评估:在目标域的测试数据上评估模型性能。通过比较不同方法在命名实体识别(NER)和情感分析(SA)等任务上的结果,验证DAICL框架的有效性。

00095739639b5a8739eadf5f2d13b061.png

如上图所示, 显示了 NER 任务上仅编码器模型的训练过程概述,MLM 目标会鼓励编码器学习与源域无法区分的目标分布。对于任务学习目标,在源输入上使用平均汇聚(average pooling) 作为情感分析任务的预测机制,而在语言模型特征之上使用附加的条件随机场(CRF)层进行命名实体识别任务的标记级别分类。

对于仅解码器架构,包括仅推理微调两种范式,下图图为带有推理提示的示例,在给定目标测试查询的情况下从源标记数据集中搜索输入标签对。虚线框包含从源检索的演示。

c22a1199576a5ef7354c1dfb1bffff4d.png

对于微调设置下,利用lora用更少的计算资源微调更大的 LM,微调数据示例形式为,如下所示:

a3d254d13ba6a33b25e0a5266e192e41.png

实验设置

为了评估DAICL方法的有效性,该研究在命名实体识别(NER)和情感分析(SA)任务上进行了广泛的实验。实验采用了多种源域和目标域的组合,涵盖了新闻、社交媒体、金融和生物医学等领域。CoNLL-03(英语新闻)作为源域数据集,目标域数据集包括:金融(FIN)、社交媒体(WNUT-16、WNUT-17)、生物医学(BC2GM、BioNLP09、BC5CDR) 对于情感分析(SA)任务,使用了亚马逊评论数据集,涵盖了四个领域:书籍(BK)、电子产品(E)、美容(BT)和音乐(M)。

本文对比了多种基线方法,包括无监督域自适应的传统方法(如Pseudo-labeling和对抗训练)、基于检索的LM方法(如REALM和RAG)和情境学习方法(如In-context learning)。在实验中,将不同的LLMs架构与提出的In-Context Learning方法进行对比,并评估其在领域适应中的性能。对于评估指标,NER任务使用了F1分数,SA任务使用了准确率acc。

结果分析

fe620f43f02b98740e13e1d69f148d3e.png ad8d398dcad4f0998abe24e74f663cce.png

由以上两个任务的性能对比表可知,DAICL 同时学习两个目标,在大多数适应场景中都大大超过了基线。从 ICL-sup 的结果来看,我们发现仅使用任务目标进行训练对 UDA 略有帮助。正如前面所讨论的,好处源于利用目标上下文的任务判别能力。通过将 DAICL 与 ICL-sup 和 ICL-source 进行比较,可以发现所提出的上下文适应策略通过同时联合学习任务信号和语言建模来增强领域适应。

微调有益于UDA,在 NER 实验中,ChatGPT 的性能非常低,但微调更小的 RoBERTa 模型可以在大多数适应场景中实现最先进的分数。在 SA 实验中,使用更少的可训练参数 (1.7M) 微调 LLaMA 优于所有其他方法。因此,我们假设虽然法学硕士具有很强的泛化能力,但他们不能解决所有领域的问题。对于UDA来说,设计一个有效的适配策略还是有好处的。

ac5fb4e0fd8678d6e4c7e3a93fb4183f.png

最后作者也对比了自适应ICL和自适应预训练,自适应 ICL 在执行任务预测时将源输入与目标上下文混合,而自适应预训练只需要源输入;自适应ICL同时学习两个损失。为了比较这两种方法,在 LLaMA-LoRA 上进行了实验以执行自适应预训练。在第一阶段,使用目标未标记文本预训练 LoRA 权重。第二阶段,从上一阶段获得的LoRA检查点开始,通过任务监督继续对其进行微调。使用相同的羊Alpaca模板,但不提供说明性上下文。结果见上表,可以观察到,与 NoICL 相比,预训练对 SA 任务带来的收益很小,可以推测 SA 数据集中的域差距比 NER 数据集中的域差距更小。从而得出结论所提出的自适应 ICL 策略优于自适应预训练,这可能归因于自适应 ICL 下的仅解码器模型可以学习具有示范上下文的两个目标

总结

本文提出了一种名为Domain Adaptive In-Context Learning (DAICL)的框架,用于实现无监督域自适应(UDA)。该框架通过检索目标域的相似示例作为上下文,结合任务损失和领域适应损失进行情境学习,以实现知识迁移。实验采用了多个源域和目标域的数据集,包括命名实体识别(NER)和情感分析(SA)任务。与多种基线方法相比,DAICL在多种跨域场景下均取得了显著的性能提升,证明了其有效性。

尽管本文的方法在领域自适应上取得了令人满意的结果,但仍有一些可以进一步探索和改进的方向。首先,可以进一步研究不同的上下文学习策略,以进一步提高语言模型的领域适应能力。其次,可以考虑在不同任务和领域之间进行联合训练,以进一步提升模型的泛化性能。此外,还可以探索如何将上下文学习与其他领域自适应技术(如对抗训练)相结合,以进一步改进模型的适应性和抗干扰能力;可以考虑将多个任务同时进行无监督域自适应,以提高模型的泛化能力和适应性。通过在这些方向进行探索和改进,未来研究有望进一步提高无监督域自适应方法的性能,为实际应用提供更有效的解决方案。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

3d94c47263d5a99a506c8bda9449d7a6.png

id:DLNLPer,记得备注呦

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

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

相关文章

ABAP - Function ALV 01 Function ALV的三大基石

森莫是Function ALV? 业务顾问和用户方面的名词定义为报表,在开发顾问方面定义的名词为ALV 通过调用Function方式展示的ALV叫做FunctionALV.Function的解释:封装好的函数 Function ALV的三大基石 Fieldcat :Function ALV字段级别的处理 Layout …

uView框架的安装与Git管理

参考链接:Http请求 | uView - 多平台快速开发的UI框架 - uni-app UI框架 安装 打开我们项目的cmd进行下载: yarn add uview-ui 首先我们要确定,未下载前的文件目录以及下载后,是多了个文件目录node_modules 下载完成之后我们就…

QQ2023备份

需要修改的路径(共3处) 这三处路径中,只有一处是需要修改的 QQPC端-主菜单-设置-基本设置-文件管理 点击上面的“”自定义“”,然后修改路径即可 修改路径后提示 然后等一会才会关干净QQ的相关进程,关闭后才会有自动…

外贸找客户软件工具:WhatBotPlus 4.6.2

WhatBot 是所有使用 Whatsapp 与客户沟通的中小型公司、企业或自由职业者的理想软件。借助 WhatBot,您可以通过 Whatsapp 发送新闻通讯活动,还可以设置自动回复。由于命令一旦配置,客户就可以获取各种信息、接收优惠和促销等,从而…

51单片机独立按键以及矩阵按键的使用以及其原理--独立按键 K1 控制 D1 指示灯亮灭以及数码管显示矩阵按键 S1-S16 按下后键值 0-F

IO 的使用–按键 本文主要涉及8051单片机按键的使用,包括独立按键以及矩阵按键的使用以及其原理,其中代码实例包括: 1.独立按键 K1 控制 D1 指示灯亮灭 2.通过数码管显示矩阵按键 S1-S16 按下后键值 0-F 文章目录 IO 的使用--按键一、按键消抖二、独立按…

node.js和npm的安装与环境配置(2023最新版)

目录 安装node.js测试是否安装成功测试npm环境配置更改环境变量新建系统变量 安装node.js 1、进入官网下载:node.js官网 我选择的是windows64位的,你可以根据自己的实际情况选择对应的版本。 2、下载完成,安装。 打开安装程序 接受协议 选…

五、HotSpot细节实现

一、并发标记与三色标记 问题:三色标记到底发生在什么阶段,替代了什么。并发标记 1、并发标记( Concurrent Marking) 从 GC Root 开始对堆中对象进行可达性分析,递归扫描整个堆里的对象图,找出要回收的对象,这阶段耗…

【大数据分析】

系列文章目录 文章目录 系列文章目录前言一、数据分析框架二、数据分析方法1.数据清洗&数据探索2.数据清洗之异常值判别3.数据清洗之缺失值处理4.数据探索5.结构优化 三、大数据可视化1.大数据可视化概念1.1 定义1.2 数据可视化的意义 2.可视化类型和模型2.1 科学可视化2.2…

网站内容审核功能的重要性

网站内容审核功能的重要性在保护用户权益、维护网站形象、遵守法律法规等方面都起到了至关重要的作用。 维护网站的合法性和道德性:网站内容审核功能的存在可以帮助过滤和删除违法、淫秽、恶意、诈骗等不良内容,保证网站内容的合法性和道德性。 保护用…

Python表单处理

目录 通过Flask处理表单 通过Flask-WTF处理表单 通过Flask-WTF验证表单 通过Flask处理表单 表单是在网页中搜集用户信息的各种表单控件的集合区域,表单控件包括文本框、单选框、复选框、提交按钮等,用于实现客户端和服务器端之间的数据交互。 利用F…

用Java写一个拼图游戏

目录 运行出的游戏界面如下: User类 CodeUtil类 游戏设置 登陆代码 注册代码 游戏代码 运行出的游戏界面如下: 按住A不松开,显示完整图片;松开A显示随机打乱的图片 User类 package domain;/*** ClassName: User* Author: Kox*…

【Windows】安装 Apache服务 -- 实操详细版

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

使用Pytorch实现变分自编码器

使用Pytorch实现变分自编码器 可以结合这篇VAE讲解文章阅读这篇blog post代码。 # Import necessary packages. import os import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms from torchvision.ut…

java打包到docker,以及idea远程调试

这里主要介绍 dockerfile的打包方式 一、打包jar包到容器 1. 在要打包的项目中创建dockerfile,dockerfile与项目的pom.xml是同级 2. 编辑dockerfile文件 FROM openjdk:8 VOLUME ["/data/untitled"] COPY target/untitled-1.0.jar "/app.jar"…

开关电源基础认知

前言 从开关电源(BMS充电器)入门硬件之——开关电源基础认知 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 1.什么是开关电源 开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维…

【vSphere | VM】虚拟机自定义规范Ⅲ —— 创建 Linux 虚拟机自定义规范

目录 4. 创建关于Linux系统的虚拟机自定义规范4.1 新建 Linux 虚拟机自定义规范(1)名称和目标操作系统(2)计算机名称(3)时区(4)自定义脚本(5)网络&#xff08…

Netty03-核心组件NioEventLoopGroup解读

NioEventLoopGroup 可以看到NioEventLoopGroup继承了MultithreadEventExecutorGroup并且实现了EventLoopGroup接口,而这两个类被ExecutorService修饰,所以NioEventLoopGroup实际上是一个线程池,池中的对象其实就是单个的NioEventLoop。 源码…

Java设计模式-工厂模式

目录 一、简单工厂模式 (一)需求 (二)使用传统的方法来完成 (三)传统方法的优缺点 (四)基本介绍 (五)使用简单工厂模式 二、工厂方法模式 &#xff0…

RedisTemplate操作哈希数据

RedisTemplate操作哈希数据 概述常用方法添加哈希数据添加hashMap值判断hashkey 获取哈希数据获取属性值获取hashMap值。获取键值对。获取map键是否有值判断是否有map键。获取键。获取长度。集合方式获取值。匹配获取键值对 自增以double值大小自增。以long值大小自增。 修改删…

IDEA中表明或者字段找不到时报红

问题 idea 中mysql的sql语句报红,无论表名还是表字段 原因 是由于sql方言导致的 当我们选择某一个sql方言的时候,xml配置会按照指定规则校验sql是否规范,并给出提示 解决方案 取消sql方言,设置sql方言为None。设置完重启idea既…