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

    文章

    376

    浏览量

    17016
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23367

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    极客时间多模态大模型训练营 (讠果xingkeit-top)#大模型

    模型
    jf_76631595
    发布于 :2026年05月14日 18:45:35

    百度文心大模型5.1正式发布

    新一代基础大模型文心大模型 5.1正式发布!文心 5.1采用“多维弹性训练”技术,仅以业界同规模模型约6%的
    的头像 发表于 05-11 14:21 331次阅读
    百度文心大<b class='flag-5'>模型</b>5.1正式发布

    零基础手写大模型资料2026

    。 3. 参数初始化:训练的起点 模型参数(权重矩阵)的初始化直接影响训练效果。Xavier初始化通过根据输入输出维度调整初始值范围,使梯度在反向传播时保持合理尺度。例如对于512×768的权重矩阵
    发表于 05-01 17:44

    HM博学谷狂野AI大模型第四期

    ,抽象的数学概念将转化为具象的张量流动逻辑。开发者将不再被复杂的网络结构图所迷惑,而是能够清晰地看到数据在模型内部的流动轨迹,为后续的模型优化与定制打下坚实的算法地基。 二、 训练引擎解构:从
    发表于 05-01 17:30

    Edge Impulse 唤醒词模型训练 | 技术集结

    今天,将手把手带领学习如何训练一个语音关键词模型部署到嵌入式硬件上,采用Edgi-Talk平台适配EdgeImpulse,当然原理在其他的ARM嵌入式平台也是通用的。让我们看看如何让
    的头像 发表于 04-20 10:05 1753次阅读
    Edge Impulse 唤醒词<b class='flag-5'>模型</b><b class='flag-5'>训练</b> | 技术集结

    人工智能多模态与视觉大模型开发实战 - 2026必会

    视觉大模型特训:从原理到部署一站式学会 在科技飞速发展的当下,视觉大模型已成为人工智能领域的一颗璀璨明星,广泛应用于安防监控、自动驾驶、医疗影像分析等众多领域,深刻改变着我们的生活与工作方式。如今
    发表于 04-15 16:06

    什么是大模型,智能体...?大模型100问,快速全面了解!

    ,LLM)是大模型中最主要的一类,专门用于处理和生成人类语言。大语言模型通过“阅读”海量的文本数据(如书籍、网页、文章等)进行训练,学会语
    的头像 发表于 02-02 16:36 1195次阅读
    什么是大<b class='flag-5'>模型</b>,智能体...?大<b class='flag-5'>模型</b>100问,快速全面了解!

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    模型。 我们使用MNIST数据集,训练一个卷积神经网络(CNN)模型用于手写数字识别。一旦模型训练
    发表于 10-22 07:03

    我如何用Prompt工程将大模型调教成风控专家

    波折、顿悟和惊喜。 今天,我想复盘整个过程,分享我如何通过一套循序渐进的“Prompt工程心法”,将一个“什么都懂一点,但什么都不精”的通用大模型,一步步调教成能够精准识别复杂电商风控风险的“AI专家”。 一、 引言:当算
    的头像 发表于 09-08 14:22 591次阅读
    我如何用<b class='flag-5'>Prompt</b>工程将大<b class='flag-5'>模型</b>调教成风控专家

    基于大规模人类操作数据训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统一训练困难;现有大规模机器人演示数据稀缺且质量参差不齐。得
    的头像 发表于 08-21 09:56 1293次阅读
    基于大规模人类操作数据<b class='flag-5'>预</b><b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    如何进行YOLO模型转换?

    我目前使用的转模型代码如下 from ultralytics import YOLOimport cv2import timeimport nncaseimport# 加载训练的YOLO模型
    发表于 08-14 06:03

    ai_cube训练模型最后部署失败是什么原因?

    ai_cube训练模型最后部署失败是什么原因?文件保存路径里也没有中文 查看AICube/AI_Cube.log,看看报什么错?
    发表于 07-30 08:15

    make sence成的XML文件能上传到自助训练模型上吗?

    make sence成的XML文件能上传到自助训练模型上吗
    发表于 06-23 07:38

    运行kmodel模型验证一直报错怎么解决?

    我这运行kmodel模型验证一直报错,所以没法做kmodel模型好坏验证,不知道怎么解决这个问题,重新训练一个kmodel模型会和拿相同pt训练
    发表于 06-10 08:02