• NLP论文解读:无需模板且高效的语言微调模型(上)


    ©原创作者 | 苏菲

    论文题目:

    Prompt-free and Efficient Language Model Fine-Tuning

    论文作者:

    Rabeeh Karimi Mahabadi

    论文地址:

    https://openreview.net/pdf?id=6o5ZEtqP2g

    提示学习(Prompt-learning)被誉为自然语言处理的“第 4 种范式”,它可以在少样本甚至零样本的条件下,通过将下游任务修改为语言生成任务来获得相对较好的模型。

    但是,传统的提示学习需要针对下游任务手工设计模板,而且采用自回归的训练预测方法非常耗时。本文提出的PERFECT方法,无需手工设计特定模板,大大降低内存和存储消耗(分别降低了5个百分点和100个百分点)。

    在12个NLP任务中,这种微调方法(PERFECT)在简单高效的同时,取得了与SOTA方法(如PET提示学习模型)相近甚至更高的结果。

    论文的创新之处在于:

    (1)使用特定任务适配器替代手工制作任务提示,提高了微调的采样效率且降低内存及存储消耗;

    (2)使用不依赖于模型词汇集的多标记标签向量学习,替代手工编制的语言生成器,可以避免复杂的自回归解码过程。

    01 背景介绍

    论文作者首先介绍了少样本语言模型微调以及提示学习的问题定义、适配器、基于提示的微调、训练策略、预测策略等,然后再提出论文对这一问题和模型的改进方法。

    图1所示的是一个情感分类器(提示学习模型),输入的提示模板为“x It was [MASK]”, 可以替换x为输入文本,通过语言生成器(Verbalizers)把词汇对应到极性标签(‘positive’或者‘negative’),从而获得整个文本的情感类别。

     

    图1

    现存的提示学习模型需要手工精心设计提示模板和语言生成器,以便将任务转化为掩码语言模型(MLM)和完形填空格式。这篇论文提出的PERFECT方法不需要任何手工构建工作,且可以去掉提示模板和语言生成器。

    1.1问题的定义

     

    论文作者进一步设定验证集与训练集的样本数相同(因为更大的验证集可能更有优势),因此论文作者使用的训练集有16个样本,即N=16,同时使用的验证集也有16个样本,总共是32个样本的少样本学习数据集。

    1.2 适配层(Adapters)

    在具有超大规模参数的预训练语言模型(PLMs)中,微调语言模型时可以通过加入一个小的特定任务层(称为适配层Adapters),那么在训练语言模型时只需要训练新加入的适配层和归一化层,而语言模型中的其它参数保持不变。

    例如在Transformer模型中,其中的每一层主要由一个注意力block和一个前馈block构成,而这两个block后面都会接一个跳跃连接层;通常把适配层插在这些block之后且在跳跃连接层之前(如图2所示),那么在训练时仅仅需要优化图中绿色模块的参数。

     

    图2

    1.3 基于提示的微调

    标准的微调:标准的预训练语言模型微调方法是,首先将一个特殊符号[CLS]加入到输入x中,然后模型将其映射到隐藏层中的序列表示

     

     

    这种标准微调的主要缺点在于预训练和微调之间可能存在不一致,因为预训练时已经使用一个掩码语言模型进行了训练(用于预测被掩蔽的tokens),而微调时也进行了同样的训练。

    基于提示的微调:为了解决这种不一致,基于提示的微调把任务转换为完型填空的形式。例如,图1所示的情感分类任务中,输入被转换为下面的提示形式:

     

     

    训练的策略:设是下游任务的标签,使用语言生成器(Verbalizers)可以将一个标签映射到预训练语言模型词库中的一个词语。那么,利用提示模板中的MASK,分类任务被转换到预测一个掩码的目标词语,预测标签y的概率为:

     

     

    预测的策略:在预测阶段,这种基于提示的微调模型需要在给定上下文环境中选择使用哪一个Verbalizer,一般采取自回归的方式进行选择。首先把掩码token的数目从M修剪到每一个候选Verbalizer的token长度,并计算每一个掩码token概率。

    然后,用概率最大的Verbalizer中的token替代相应的掩码token,再重新计算剩下的掩码token概率。重复这种自回归解码方式,直到所有要预测的掩码token都被计算完毕。

    这种预测策略速度很慢,因为模型中前向路径传递的数目会随着类别数目、Verbalizer的token数目的增加而增长。

    总的看来,基于提示的微调方法的成功严重依赖于手工工程的patterns和verbalizers,而寻找合适的verbalizers和patters也是困难的。

    此外,手工定制的verbalizers会带来以下的效率方面的问题:

    a)由于需要更新预训练语言模型的embedding层,所以会引起大量内存超负荷;

    b)由于需要很小的学习率(通常是10-5),这会大大减慢verbalizers的微调速度;

    c)把verbalizers作为预训练语言模型的一个token会影响输入在微调时的表示学习;

    d)verbalizers的token长度是变化的,这使得其向量化会变得复杂,也是提高微调效率的一个挑战。为了解决上述困难和挑战,论文作者提出了下面的无需verbalizer和patterns的少样本学习微调方法(PERFECT)。

    论文解读上篇先到这里,下篇将为大家继续分享作者独到的创新之处。

  • 相关阅读:
    EOS账户映射及key、account、wallet
    Mysql互不关联的联表查询(减少了查询的次数)
    制作一个简单HTML传统端午节日网页(HTML+CSS)
    uniapp新版微信小程序用户隐私协议授权
    linux--发展史与环境
    VUE3搭载到服务器
    介绍ClickHouse重要特性——系统表
    嵌入式操作Sqlite的8条建议
    【考研数学】五. 二重积分
    C#归并排序算法
  • 原文地址:https://www.cnblogs.com/NLPlunwenjiedu/p/15986769.html