0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用于任意预训练模型的prompt learning模型—LM-BFF

自然语言处理爱好者 来源:AI部落联盟 作者:JasonCai 2021-08-16 11:21 次阅读

最近又出了个比较吸引人眼球的Prompt Learning,甚至该方法还被称之为NLP的“第四范式”,具体有哪几项请参考以下链接:

综述文章:https://arxiv.org/pdf/2107.13586.pdf

相关资源:http://pretrain.nlpedia.ai

Part1什么是Prompt Learning

从BERT诞生开始,使用下游任务数据微调预训练语言模型 (LM)已成为 NLP 领域的通用做法。直到GPT-3模型首先将自然语言的提示信息(prompt)和任务示例(demonstration)作为上下文输入给GPT-3,使得GPT-3只需要少数的几个样本,不需要训练底层的参数便能够处理任务。应该是受到这一做法的启发,目前很多研究聚焦在Prompt Learning上,只为了更好的激发语言模型的潜能。

在了解Prompt Learning之前,首先我们要知道什么是prompt。prompt是提示的意思,也就是说需要提示模型我们想让它干什么。通常在GPT-3中,我们输入一段描述,再加上“翻译”或者“问答”的prompt,那么GPT-3会生成相应的结果。

最近该玩法在NLU中也得到了应用,比如情感分类任务,给定一句话“I missed the bus today.”,在其之后添加一个prompt:“I felt so __”,之后让语言模型用一个情感类的词进行完型填空,再将填空的词语映射到标签,这样一来就能够解决分类任务了。

大家发现没有,这样一来减少了训练和测试阶段之间的gap,因为我们在预训练的时候使用的MLM任务就是一个完型填空任务,通常使用分类任务fine-tuning模型的时候需要加一个hidden_size * label_size的FFN,还得专门去训练这个FFN的参数。但是如果使用Prompt Learning的方式,就省略了这一步了。这样一来岂不是不用花大力气训练模型了?哈哈是的,很多研究证明Prompt Learning在小样本(few-shot)场景下很有效。

Part2Few-shot Learner

论文标题:Making Pre-trained Language Models Better Few-shot Learners

论文来源:ACL2021

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

论文代码:https://github.com/princeton-nlp/LM-BFF

本文主要有两个贡献点:

(1)基于提示(prompt)进行微调,关键是如何自动化生成提示模板;

(2)将样本示例以上下文的形式添加到每个输入中,关键是如何对示例进行采样;

1prompt-based fine-tuning

之前说过GPT-3模型基于prompt生成文本。受到该启发本文提出了一种可以应用于任意预训练模型的prompt learning模型——LM-BFF(小样本微调预训练模型)。

9d8d181e-fd9a-11eb-9bcf-12bb97331649.png

从上图可以看出在预训练的时候使用的MLM任务就是一个完型填空任务,在分类任务中微调的时候需要加一个hidden_size * label_size的FFN,微调的过程需要训练这个FFN的参数。在使用Prompt Learning的方式的时候省略了这一步。这样一来就不用花大力气训练模型了,而且该方法减少了训练和测试阶段之间的gap,在小样本(few-shot)场景下很有效。

在具体的实验过程中,作者发现使用不同的模板或不同的标签词进行微调得到的效果是不同的,如下图所示:

9dda6e0c-fd9a-11eb-9bcf-12bb97331649.png

比如对于同一个标签词,如果使用的prompt的模板不同(替换了某个单词或者删除某一个标点符号),得到的结果会有较大的波动;而且当选择不同的标签词时,对预测的结果也会产生影响。这是由于人工设计模板和标签词时候和模型本身具有的gap带来的缺陷。因此作者提出一种自动创建模板的方法。

2Automatic Prompt Generation

Prompt的自动生成又分为了两个部分(label的生成和模板的生成):

Label Generation

这个部分主要分成3步:

(1)首先在训练集中,针对未经过微调的语言模型,对于每个label都找到使其条件概率最大Topk个单词;

9e0efc26-fd9a-11eb-9bcf-12bb97331649.png

(2)综合每个类别下的候选标签词,然后找出使得训练集正确率最大的top-n个分配方式;

(3)使用dev集对模型进行微调,从n个分配方式中选择最佳的一个标签词,构建标签映射关系M。

Prompt Generation

模板的生成则是使用的T5模型,固定标签词,生成固定模板。

9e50d790-fd9a-11eb-9bcf-12bb97331649.png

整体过程如下所示:

Fine-tuning with Demonstration

在GPT-3中,微调的时候从训练集中随机抽取32个示例,以上下文的形式添加到每个输入中;

这种方式的缺陷在于:样本示例的数量会受到模型最大输入长度的限制;不同类型的大量随机示例混杂在一起,会产生很长的上下文,不利于模型学习。

LM-BFF采用2种简单的方式进行了改进:

对于每个输入,从每个类别中随机采样一个样本示例,最终将所有类别下的采样示例进行拼接输入;

对于每个输入,在每个类别中,通过与Sentence-BERT进行相似度计算、并从排序得分的top50%中随机选择一个样本示例。

Results

本文提出了一种简单而又有效的小样本微调方法——LM-BFF。主要包括2部分:

采用提示自动构建方式来进行「基于模板的微调方法」。

动态选择样本示例,作为输入的上下文。但LM-BFF也有以下缺陷:

LM-BFF仍落后基于全量标注数据的标准微调方法(PS:废话,数据目前还是越多好~)

LM-BFF自动构建提示的方法虽然有效,但扩展搜索空间在现实应用中仍是一个巨大挑战;

LM-BFF仅支持几种特定的任务:1)能自然转化为「空白填空」问题,如结构化预测的NER任务可能就不适合;2)句子输入不要太长;3)不要包含过多的类别;其中2)和3)可以在长距离语言模型中进行改善。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GPT
    GPT
    +关注

    关注

    0

    文章

    347

    浏览量

    15202
  • nlp
    nlp
    +关注

    关注

    1

    文章

    481

    浏览量

    21941

原文标题:Prompt Learning-使用模板激发语言模型潜能

文章出处:【微信号:NLP_lover,微信公众号:自然语言处理爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python训练出的模型怎么调用

    在Python中,训练出的模型可以通过多种方式进行调用。 1. 模型保存与加载 在Python中,训练好的模型需要被保存,以便在其他程序或会
    的头像 发表于 07-11 10:15 978次阅读

    大语言模型训练

    能力,逐渐成为NLP领域的研究热点。大语言模型训练是这一技术发展的关键步骤,它通过在海量无标签数据上进行训练,使模型学习到语言的通用知识
    的头像 发表于 07-11 10:11 271次阅读

    llm模型有哪些格式

    Representations from Transformers):BERT是一种双向训练模型,通过大量文本数据进行训练,可以
    的头像 发表于 07-09 09:59 366次阅读

    人脸识别模型训练流程

    人脸识别模型训练流程是计算机视觉领域中的一项重要技术。本文将详细介绍人脸识别模型训练流程,包括数据准备、模型选择、
    的头像 发表于 07-04 09:19 548次阅读

    人脸识别模型训练是什么意思

    人脸识别模型训练是指通过大量的人脸数据,使用机器学习或深度学习算法,训练出一个能够识别和分类人脸的模型。这个模型可以
    的头像 发表于 07-04 09:16 351次阅读

    训练模型的基本原理和应用

    训练模型(Pre-trained Model)是深度学习和机器学习领域中的一个重要概念,尤其是在自然语言处理(NLP)和计算机视觉(CV)等领域中得到了广泛应用。
    的头像 发表于 07-03 18:20 1526次阅读

    深度学习模型训练过程详解

    深度学习模型训练是一个复杂且关键的过程,它涉及大量的数据、计算资源和精心设计的算法。训练一个深度学习模型,本质上是通过优化算法调整模型参数,
    的头像 发表于 07-01 16:13 578次阅读

    大语言模型:原理与工程时间+小白初识大语言模型

    种语言模型进行训练,此处训练为自然语言处理领域的里程碑 分词技术(Tokenization) Word粒度:我/贼/喜欢/看/大语言
    发表于 05-12 23:57

    【大语言模型:原理与工程实践】大语言模型的应用

    操作。所谓零样本提示(Zero-Shot Prompt),指的是在提示词中不包含与指令任务相似的任何示例。 当大语言模型训练完成后,它便具备了分析情绪和识别命名实体等常见任务的能力,这些能力源于
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】大语言模型训练

    大语言模型的核心特点在于其庞大的参数量,这赋予了模型强大的学习容量,使其无需依赖微调即可适应各种下游任务,而更倾向于培养通用的处理能力。然而,随着学习容量的增加,对训练数据的需求也相
    发表于 05-07 17:10

    【大语言模型:原理与工程实践】大语言模型的基础技术

    就无法修改,因此难以灵活应用于下游文本的挖掘中。 词嵌入表示:将每个词映射为一个低维稠密的实值向量。不同的是,基于训练的词嵌入表示先在语料库中利用某种语言模型进行
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】核心技术综述

    训练和微调,直到模型的部署和性能评估。以下是对这些技术的综述: 模型架构: LLMs通常采用深层的神经网络架构,最常见的是Transformer网络,它包含多个自注意力层,能够捕
    发表于 05-05 10:56

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》

    处理中训练架构Transformer,以及这些技术在现实世界中的如何应用。通过具体案例的分析,作者展示了大语言模型在解决实际问题中的强大能力,同时也指出了当前技术面临的挑战和局限性。书中对大语言
    发表于 04-30 15:35

    谷歌模型训练软件有哪些功能和作用

    谷歌模型训练软件主要是指ELECTRA,这是一种新的训练方法,源自谷歌AI。ELECTRA不仅拥有BERT的优势,而且在效率上更胜一筹。
    的头像 发表于 02-29 17:37 650次阅读

    如何优化深度学习模型?

    因为大部分人使用的模型都是训练模型,使用的权重都是在大型数据集上训练好的模型,当然不需要自己去
    发表于 01-29 14:25 1212次阅读
    如何优化深度学习<b class='flag-5'>模型</b>?