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

    文章

    351

    浏览量

    15315
  • nlp
    nlp
    +关注

    关注

    1

    文章

    487

    浏览量

    22015

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

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

收藏 人收藏

    评论

    相关推荐

    什么是大模型、大模型是怎么训练出来的及大模型作用

    ,基础模型。   大模型是一个简称,完整的叫法,应该是“人工智能训练模型”。
    的头像 发表于 11-25 09:29 89次阅读
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>训练</b>出来的及大<b class='flag-5'>模型</b>作用

    如何训练自己的LLM模型

    训练自己的大型语言模型(LLM)是一个复杂且资源密集的过程,涉及到大量的数据、计算资源和专业知识。以下是训练LLM模型的一般步骤,以及一些关键考虑因素: 定义目标和需求 : 确定你的L
    的头像 发表于 11-08 09:30 333次阅读

    直播预约 |数据智能系列讲座第4期:训练的基础模型下的持续学习

    鹭岛论坛数据智能系列讲座第4期「训练的基础模型下的持续学习」10月30日(周三)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目
    的头像 发表于 10-18 08:09 164次阅读
    直播预约 |数据智能系列讲座第4期:<b class='flag-5'>预</b><b class='flag-5'>训练</b>的基础<b class='flag-5'>模型</b>下的持续学习

    大语言模型训练

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

    llm模型有哪些格式

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

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

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

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

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

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

    种语言模型进行训练,此处训练为自然语言处理领域的里程碑 分词技术(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 748次阅读

    如何优化深度学习模型?

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