BitFit : Bias-term Fine-tuning

BitFit :Bias-term Fine-tuning

题目:BitFit :Simple Parameter-efficient Fine-tuning for Tranformer-based Masked Language-models

(Bitfit:对于MLtransformer的简单fine-tuning方法)

ACL 2022

作者 Allen实验室

Abstract

Bitfit,一种稀疏微调方式,仅需要对模型的bias项进行调整。在中小数据集上有效,在大数据上可以与其他稀疏微调方式媲美,除了其实用性,更能让我们理解fine-tuning,在模型训练中的知识暴露而不是在新领域学习新领域任务。

Introduction

由于目前预训练模型最常用的模型就是两阶段,预训练+fine-tune,而往往fine-tune时消耗大量资源和时间,所以需要探求fine-tune变体,这里仅改变很少部分参数,其他参数不变,而达到很好微调效果。同时需要根据不同的下游任务,选择不同的参数进行fine-tune变化。更改的参数在整个空间中即是孤立的又是局部的,在中小fine-fune数据时,可以达到与full-fine-fune一样甚至更好的效果。

实验表明,仅调整bias参数是非常有效的,甚至可以仅调整Q和MLP中间的bias,仅占全部参数的0.04%,这一结果让很多内存受限的环境部署fine-fune任务有很大实用性,并且可以为参数固定的可训练硬件开辟道路,引出未来探索bais在预训练网络以及微调过程中的作用的研究方向。

Background

一般微调都是对预训练模型进行迁移学习,在预训练模型后添加特定任务的分类器,来减少task loss

但这样我们就会把预训练模型变为一个不可知的独特大模型,理想情况下,fine-fune应该具有的属性:

  1. 与full fine-tuned模型结果匹配
  2. 仅改变很小一部分模型参数
  3. 使数据可以通过流的方式到达,而不需要同时到达,便于硬件部署
  4. 改变的参数在不同下游任务中是一致的。

上述问题取决于微调过程,能多大程度诱导新能力的学习与暴露在预训练中学到的能力。

Relate work

  • Houlsby 2019 在预训练模型层之间注入小型,可训练特定任务的 adapter
  • 郭 2020 Diff-Pruning 向原参数中添加特定稀疏差异向量

our work

我们提出了BitFit (Bias-term Fine-tuning)仅调整bias项,每个新任务仅需要存储bias参数向量(少于0.1%原参数)和对于特定任务的线性分类器

在GLUE Benchmark上与其他fine-tune方式对比

在这里插入图片描述

结果表面以0.08%参数量的情况下,取得了很好的效果。同时还表面仅微调QQ和第二个MLP层的b最后的效果也很好。

在这里插入图片描述

上图为改变不同Layer以及不同模型的bias,最后的效果

Experiment & Result

Datasets :

在GLUE3上进行评估,我们排除了WNLI任务,因为该任务Bert模型效果本身并不好。

Model & Optimization:

使用了Bert-base ,Bert-large,Roberta-base,使用huggingface的接口直接实现。

下图分别为Dev-set下full-fine-tune与bitfit的比较,不同bias处进行fine-tune的效果

在这里插入图片描述

为了确定具体哪个bias与transformer类模型微调关系最大,我们取‖b0 -bF ‖ 在其维度的均值绝对变化作为指标,发型bm2(第二个MLP层)和bq(queue)的bias效果影响最大。

为了确定bitfit对模型进行fine-tune与fine-tune的数据集大小的关系,我们使用不同量的SQuad数据集进行实验。结果表明中小数据集上bitfit的效果更好,有时可以超过full-fine-tune。

在这里插入图片描述

Conclusion

这里是开源代码 benzakenelad/BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models (github.com)

代码也很简单,基本都是GLUE的官方评测代码,这里就调整fine-tune需要require-grad的参数,将其他参数froze,仅对bias进行require-grad。

LUE的官方评测代码,这里就调整fine-tune需要require-grad的参数,将其他参数froze,仅对bias进行require-grad。

整体而言,是对fine-tune机制的一种积极探索,也很simple,就是仅调整bias效果就能很好,但没有具体阐述原理,就是猜测加实验得到的结果,对于bert,roberta效果还是很好,这大大降低了fine-tune时内存要求,和fine-fune后模型参数保存,为未来bert在硬件发展有了一点工作,以后针对中小样本的任务可以尝试一些,可能有时候比full-fine-tune还好一点。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VITS(Variational Inference for Text-to-Speech)是一种端到端的文本到语音合成方法,它可以将文本转化为自然流畅的语音。VITS-Fast Fine-Tuning是对VITS模型进行快速微调的方法。 在传统的语音合成任务中,需要大量的语音对齐标注数据来训练模型。然而,这个过程非常耗时和昂贵。VITS-Fast Fine-Tuning的目标就是通过少量的标注数据来快速微调已有的VITS模型,以在新的任务上取得更好的性能。 VITS-Fast Fine-Tuning方法的关键在于使用变分推断(variational inference)来构建先验和后验分布。通过这个方法,我们可以使用其他大型语音合成数据集训练好的模型作为先验分布,然后使用少量目标任务的标注数据来估计后验分布。这样一来,我们就能够在新任务上快速微调VITS模型。 具体而言,VITS-Fast Fine-Tuning的过程分为两步。第一步是预训练,它使用大型语音数据集来训练VITS模型,并生成一个先验分布。第二步是微调,它使用目标任务的标注数据来调整VITS模型的参数,以获得更好的性能。由于预训练的先验分布已经包含了一定的知识,微调的过程可以更快速和高效。 总之,VITS-Fast Fine-Tuning是一种用于快速微调VITS模型的方法。它利用变分推断和预训练的先验分布,通过少量目标任务的标注数据来优化模型性能。这个方法可以加快语音合成模型的训练过程,降低训练的时间和成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值