提示学习(prompt learning)核心工作原理指南,兼实现代码理解。提示学习三个层面的本质解释。

下文我们从三个层面描述提示学习的本质,包括原理和具体实作方式。

战略级描述(其实就是宏观叙事)

提示学习是利用模板激发预训练语言模板如(bert/bart)之类模型中的事实性知识(factual knowledge), 然后在将得到的事实性知识作为答案空间,映射到目标空间从而完成需要的下游任务。

战术级描述(其实就是基本手法描述)

通常我们是将 需要处理的文本原文加上提示性模板(模板工程)一起输入预训练模板中,然后将得到的答案(即通过模板激发出来的知识的所组成的空间称为答案空间),将答案通过算法映射到目标标签(verbalizer)。

如:

It's a shine day, we are all happy. It is <mask>.

将以上句子输入bert/bart ,就会得到包括<mask>的向量,如果用bertmaskedLM,可能得到,比如 good, well, nice之类词输出 (选择输出 中概率最大的词),我们有以下的映射 器

[good, well,nice, fantastic....] -> [postitive]

[bad, terrible,....] -> [negative]

上面的映射器术语叫 verbalizer. 从预测 出来的词向最标的标签映射 就可以得到分类结果。上面是情感分类,其实就是一个二分类任务。

实现代码示例:  基于prompt learning的情感分类示例代码_znsoft的博客-CSDN博客

作业层面(其实就是实作方式了)

就是步骤啦:

1. 模板工程 (最简单的就是手工构建 模板,还有自动构建的soft prompt之类)

2. 语言模板预测与fine tuning(promt tuning) ( 将文本和模板的组合输入语言模板,如bert/bart)

3. 输出映射到特征空间 (全连接网络或概率映射)

在第2步输出 的其实就是一个或多个向量(取决于槽位),怎么把它映射 到目标的标签空间,这个其实就是verbalizer的工作。本步通常用全连接网络或概率映射处理。

4. 输出精调(对第3步的输出进行打磨)

输出 的内容可能并不完善,怎么将它打磨到正确的目标标签。 n:n 选择问题,二部图或其它算法实现。通常在通过logits值 进行映射 时需要进行后处理。

实现代码示例: 开发中

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值