多语言跨领域迁移学习的新框架:MAD-X

news2024/9/22 21:15:58

人工智能咨询培训老师叶梓 转载标明出处

多语言模型如mBERT和XLM-R通过零样本或少样本跨语言迁移极大地推动了低资源语言的NLP应用。但这些模型由于容量限制,对低资源语言和未见语言的迁移性能并不理想。为了解决这一问题,来自德国达姆施塔特工业大学、剑桥大学和DeepMind的研究者们提出了一种名为MAD-X的适配器框架,旨在通过学习模块化的语言和任务表示,实现对任意任务和语言的高效迁移。

论文链接:https://arxiv.org/pdf/2005.00052

代码链接:https://adapterhub.ml/

方法

在跨语言迁移学习中,标准的迁移设置通常涉及使用大型多语言模型(如mBERT或XLM-R)先在源语言的标记数据上进行微调,然后直接应用于目标语言的推理。这种方法的缺点是多语言初始化需要平衡多种语言,导致模型在推理时无法针对特定语言表现出色。

为了改善这一问题,提出了一种简单的方法,即在源语言的特定任务微调之前,先通过遮蔽语言模型(MLM)在目标语言的未标记数据上微调预训练的多语言模型。虽然这种方法使得模型无法在多个目标语言上进行评估,因为它会偏向于特定目标语言,但如果我们只关心特定(即固定的)目标语言的性能,这种方法可能更可取。

实验发现,目标语言的适应性迁移学习相较于标准设置能提高跨语言迁移性能,且不会导致预训练模型中已有的多语言知识发生灾难性遗忘。但这种简单的适应方法仍继承了预训练多语言模型和标准迁移设置的基本限制:模型的有限容量阻碍了对低资源和未见语言的有效适应。另外,对整个模型进行微调在许多任务或语言上并不具有很好的扩展性。

MAD-X框架旨在解决现有预训练多语言模型在迁移到其他语言时的不足。该框架由三种类型的适配器组成:语言适配器、任务适配器和可逆适配器。适配器在训练时保持预训练多语言模型的参数不变,使得学习语言和任务特定的转换变得模块化且参数高效。

语言适配器是为了学习特定语言的转换而设计的。它们采用了Pfeiffer等人在2020年提出的高效适配器架构,该架构通过简单的下投影(down-projection)和上投影(up-projection)以及残差连接来定义适配器的内部结构。如图1所示,语言适配器被添加到每个Transformer层,并且在训练时,通过遮蔽语言模型(MLM)在未标记的目标语言数据上进行训练,以学习使预训练多语言模型更适合特定语言的转换。

任务适配器与语言适配器具有相同的架构,它们被堆叠在语言适配器之上,接收来自语言适配器的输出以及Transformer前馈层的残差。任务适配器是唯一在下游任务(如NER)训练时更新的参数,旨在捕获特定于任务但能跨语言泛化的知识。

可逆适配器是针对预训练多语言模型在低资源语言和未见语言上性能不足的问题提出的解决方案。这些适配器被堆叠在嵌入层的顶部,而其逆适配器位于输出嵌入层之前。如图2所示,可逆适配器通过将输入嵌入向量分割并转换,实现了输入和输出表示的适应。这种设计允许我们利用同一组参数来适应输入和输出表示,这对于避免在特定任务微调中丢弃的输出嵌入过度拟合预训练任务至关重要。

通过通过图1 示例,展示了如何使用MAD-X框架进行零样本跨语言迁移。以英语(En)作为源语言和克丘亚语(Qu)作为目标语言,首先对可逆适配器AEnInv和AQuInv以及语言适配器AEnLang和AQuLang进行预训练。然后在英语NER训练集上训练NER任务适配器ANER Task。在训练过程中,嵌入通过AEnInv传递,并且在模型的每一层,数据首先通过固定的AEnLang,然后进入NER适配器ANER Task。在零样本推理中,将英语的可逆和语言适配器AEnInv和AEnLang替换为其克丘亚对应物AQuInv和AQuLang,而数据仍然通过NER任务适配器ANER Task传递。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

数据集和语言选择:

NER任务:使用了WikiANN数据集,该数据集最初由Rahimi等人在2019年进行划分,包括训练集、开发集和测试集。这个数据集覆盖了大量语言,是评估跨语言能力的理想选择。

QA任务:采用了XQuAD数据集,这是著名的SQuAD数据集的跨语言版本,由Artetxe等人在2020年提出。XQuAD提供了一个在多种语言上评估问答系统的机会。

CCR任务:使用了XCOPA数据集,这是COPA数据集的跨语言版本,由Ponti等人在2020年提出。XCOPA专注于因果推理,为评估模型的常识推理能力提供了平台。

研究者们精心挑选了一组具有代表性的语言,以确保评估结果的全面性和多样性。这些语言的选择基于几个标准:不同大小的维基百科文章(数据可用性)、是否包含在预训练的多语言模型中(如mBERT和XLM-R),以及语言类型的多样性。

表格2展示了从每种源语言迁移到所有16种目标语言时的NER任务F1得分的平均值。这些结果不仅包括了在多语言预训练中见过的语言,也包括了未见过的,提供了对模型跨语言迁移能力的全面评估。

研究者们将MAD-X框架与当前最先进的跨语言迁移模型XLM-R进行了比较。XLM-R是一个基于Transformer的模型,预训练了100种语言,是评估跨语言迁移能力的重要基准。

除了标准的XLM-R模型,研究者们还考虑了两种基线:在源语言数据上进行MLM微调的XLM-R(XLM-RBase MLM-SRC)和在目标语言数据上进行MLM微调的XLM-R(XLM-RBase MLM-TRG)。这些基线为评估MAD-X框架提供了重要的参照。

在MAD-X框架的实验中,主要使用XLM-R Base架构。研究者们评估了完整的MAD-X框架,以及没有可逆适配器(-INV)和没有语言适配器及可逆适配器(-LAD -INV)的变体。

使用Transformers库进行所有实验。通过MLM在未标记数据上进行微调,训练步骤为250,000步,批大小为64,XLM-R和适配器的学习率分别为5e-5和1e-4。

对于NER任务,对每种源语言-目标语言组合进行了五次微调运行,选择验证性能最佳的检查点进行评估。

对于QA任务,在英语SQuAD训练集上进行了三次微调运行,评估了所有XQuAD目标语言,并报告了平均F1和精确匹配(EM)得分。

对于CCR任务,在相应的英语训练集上进行了三次微调运行,评估了所有XCOPA目标语言,并报告了准确率得分。

通过这些详细的实验设置和结果分析,研究者们展示了MAD-X框架在跨语言迁移学习任务中的有效性和优越性,特别是在处理低资源语言和未见语言时的性能提升。

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

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

相关文章

【docker】docker学习笔记

docker学习笔记 0. docker 基本命令1. docker存储1.1 目录挂载1.2 卷映射 2. docker 网络2.1 机器ip访问2.2 容器ip访问2.3 域名访问 3. docker compose(批量管理)3.1 编写一个yml文件:3.2 docker compose 命令 4. 制作docker 镜像 0. docker 基本命令 …

【JAVA】jdk下载与安装、配置环境

【JAVA】jdk下载与安装、配置环境 一、下载jdk二、安装jdk三、配置环境四、测试环境变量是否设置成功五、特殊情况六、idea官网 一、下载jdk Oracle官网: https://www.oracle.com/点击 “ Products ” “ 下滑 ”,点击 “ Java ” 点击 “ Download Java ” 先选择…

智慧公厕:城市公共卫生间智慧之选@卓振思众

在现代城市生活中,公共设施的智能化已经成为提升市民生活质量的重要一环。而智慧公厕作为公共卫生设施的创新代表,正逐步改变我们对传统公共厕所的认知,为城市管理带来了前所未有的便捷与舒适。【卓振思众】 环境智能调控,提升使用…

【逐行注释】一维EKF滤波的MATLAB代码|*不需要下载*,直接复制到MATLAB即可运行

文章目录 介绍完整代码运行结果各模块含义介绍 这是一个状态量为一维的MATLAB下的滤波程序,使用的滤波方法是EKF(扩展卡尔曼滤波),滤波后,显示滤波值的曲线、滤波误差曲线、滤波误差的最大值、平均值、标准差的输出。 模型是非线性的(状态方程和观测方程都是非线性的),…

RuoYi-Vue 最新 SpringBoot3 前后端分离版本源码分析

RuoYi-Vue 最新 SpringBoot3 前后端分离版本源码分析 RuoYi-Vue 本地环境部署权限管理SpringSecurity 配置登录接口(认证管理)Authentication 认证token的生成 权限控制 异步任务管理操作日志数据权限 RuoYi-Vue 本地环境部署 直接去 gitee 上拉取最新版本即可,分支…

comfyUI好在哪?为啥大家都在用?

前言 comfyUI自从面世以来,就以一种潜力股的姿态快速流行了起来,越来越多的小伙伴开始使用comfyUI。也许你一开始会被comfyUI密密麻麻的“线路”吓到,但其实comfyUI也没那么复杂,并且好处多多。 本文将带大家一起,快…

2024年8月31日(星期六)骑行瓦恭村

2024年8月31日 (星期六)骑行瓦恭村(向日葵,谷花鱼),早8:30到9:00, 昆明氧气厂门囗集合,9:00准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:昆明氧气厂…

华为Huawei路由器交换机SSH配置

华为设备的SSH登录配置需要5个步骤,示例如下: 一、配置命令 使能SSH功能 stelnet server enable生成公钥 rsa local-key-pair create 1024配置AAA用户密码及相应授权 aaalocal-user xxx password cipher xxxyyy1234local-user xxx privilege level …

RAG必备知识:OpenAI官宣结构化输出|结构化输出工具大汇总

官宣:根据非常普遍的需求,OpenAI的API 中开始支持结构化输出。 在 API 中引入结构化输出 - 模型输出现在遵循开发人员提供的 JSON 模式。让大型语言模型(Large Language Models, LLMs)进行结构化输出是自然语言处理(NLP)领域中的一个重要目标。结构化输出指的是将自然语…

Java SpringBoot结合Vue打造法律援助平台,实现高效在线法律咨询服务

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

布偶猫应该怎么喂?希喂、交响乐金罐、尾巴生活彩虹泥适合布偶猫吗?

我开了家布偶猫咖,这些长相甜美可爱的小家伙超会撒娇卖萌,把客人迷的团团转。布偶猫又叫仙布拉多尔猫,它是现存体型最大、体重最重的猫之一,它们体型大,食量也大,但肠胃却特别弱,所以一定要特别…

Mac环境下Python3虚拟环境创建、Flask安装以及创建运行第一个最小的Flask项目

为什么要使用虚拟环境?随着你的 Python 项目越来越多,你会发现不同的项目会需要 不同的版本的 Python 库。同一个 Python 库的不同版本可能不兼容。 虚拟环境可以为每一个项目安装独立的 Python 库,这样就可以隔离不同项目之间的 Python 库&…

普通人怎么利用ai赚钱?这10个AI帮你实现!

以前我是真想不到,AI写的破文章,复制粘贴发出去竟然有收入? 今天先码住10个ai工具,下次更新10投稿文章获得收入的平台! 1、豆包:完全免费,ai对话里有一个功能叫做网页摘要,可以把你…

从源码到产品:视频美颜SDK与直播美颜插件的开发详解

开发一款高效的视频美颜SDK与直播美颜插件,不仅需要深入理解图像处理技术,还需要考虑到性能优化、跨平台支持等多个方面的挑战。接下来,笔者将从源码开发的角度,详解视频美颜SDK与直播美颜插件的开发过程。 一、视频美颜SDK的核心…

ai取名生成器在哪?建议看看这篇文章

ai取名字叫什么好听?你是否在为给孩子、宠物或是项目起一个既独特又好听的名字而烦恼?别担心,AI取名字软件来帮你解锁命名新境界! 现在有很多智能工具利用先进的人工智能技术,可以为你量身定制一系列令人耳目一新的名…

选择个人开发者进行软件开发的潜在风险分析

在科技飞速发展的今天,软件开发行业正变得越来越精细化和专业化,对专业技能和团队协作能力的需求日益增长。虽然在某些情况下,雇佣个人开发者似乎成本较低且操作简便,但其背后隐藏的挑战和风险同样不容小觑。本篇分析将探讨选择个…

使用Dockerfile创建应用镜像

在Docker file中定义所需要执⾏的指令,使⽤ docker build创建镜 像,过程中会按照dockerfile所定义的内容进⾏打开临时性容器,把 docker file中命令全部执⾏完成,就得到了⼀个容器应⽤镜像,每 ⼀⾏命令都会出现容器&…

axure9树形元件节点的添加

树形元件 | AxureChina 在需要添加节点处右键添加->添加子节点

Prometheus+exporter+Grafana

参考文档:https://www.cnblogs.com/morang/p/devops-prometheus-grafana-install-use-db-site-monitor.html Prometheus:监控中心,监控exporter的实时数据 exporter:采集数据工具,如下: Grafana&#xff…

超详细!!!uniapp通过unipush全流程实现app消息推送

云风网 云风笔记 云风知识库 一、HBuilder新建APP项目 二、配置推送服务 1、登录Dcloud开发者中心开发者中心,查看我的应用 2、生成云端证书 3、创建平台信息 4、配置推送服务信息 这里需要关联服务空间,可以申请免费服务空间进行测试 三、代码配置 1…