当前位置: 首页 > news >正文

论文笔记:Prototypical Verbalizer for Prompt-based Few-shot Tuning

论文来源:ACL 2022

论文地址:https://arxiv.org/pdf/2203.09770.pdficon-default.png?t=O83Ahttps://arxiv.org/pdf/2203.09770.pdf

论文代码:https://github.com/thunlp/OpenPrompticon-default.png?t=O83Ahttps://github.com/thunlp/OpenPrompt


 Abstract

        基于提示的预训练语言模型(pre-trained language models, PLMs)调优已经在小样本学习中显示出其优越性。通常,基于提示的调优将输入文本包装成完形填空问题,为了做出预测,模型通过人工设计或者自动构建的表达器(verbalizer)将输出的单词映射到标签上。但是,人工表达器严重依赖于特定领域的先验知识,而自动寻找合适的标签仍然具有挑战性本文提出了直接从训练数据中构建的原型表达器(ProtoVerb)。具体来说,ProtoVerb通过对比学习将学到的原型向量作为语言表达器。通过这种方式,原型归纳了训练实例,并能够包含丰富的类级别语义。本文对主题分类和实体分类任务进行了实验,结果表明,ProtoVerb显著优于当前的自动生成的表达器,特别是在训练数据极其稀缺的情况下。更令人惊讶的是,即使在未调优的PLM上,ProtoVerb也始终支持基于提示的调优,这表明使用PLM是一种优雅的非调优方式。

Introduction

        为了使PLMs适应下游任务,如分类,传统方法通过一个额外的分类器对语言模型进行微调,但是当特定任务的数据有限时,由于预训练任务和微调任务之间的差距,训练额外的高效分类器具有挑战性,并阻碍了PLMs对下游任务的快速适应。

        在基于提示的调优中,输入文本被特定任务的模板包装,将原始任务重新形式化为完形填空任务。例如,在主题分类任务中,可以使用模板“<text> This topic is about [MASK]”,PLMs推断[MASK]位置的单词,然后通过语言表达器将单词映射到对应的标签。语言表达器在基于提示的调优中是非常重要的,是建立在模型输出和最终预测结果之间的桥梁。

        目前大多数工作采用三种类型的语言表达器:人工表达器、基于搜索的表达器和软表达器。如Figure 1所示,人工设计的表达器选择一些标签词来描述类,缺点是要求设计者对下游任务有准确的理解,并且每个类能够用几个词来概括;基于搜索的表达器是通过算法从词表中找到合适的标签词;软表达器使用可训练的token在调优阶段进行优化。在大型词汇表或者低数据环境下的嵌入空间中进行充分搜索或者优化是具有挑战性的,使得自动表达器比人工表达器更不理想。

         本文直接通过训练实例计算每个类的原型向量作为语言表达器(封装了一些类级别的语义特征)进行基于提示的调优,并对主题分类和实体分类任务进行了两组实验:当人工表达器可用时,ProtoVerb作为一个额外的表达器;当样本有限,不提供人工表达器时,ProtoVerb也能生成高质量的表达器。

对比学习:是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。

Prototypical Verbalize

        如Figure 2所示,首先获取[MASK]的隐藏层状态来表示实例,然后将其映射到另一个嵌入空间进行原型学习。 原型被用作预测的语言表达器

Instance Representation and Similarity Function

         给定一个用模板包装的训练文本x,将[MASK]的最后一层隐藏状态h_{[MASK]}作为文本的初始表示,使用被\varphi参数化的编码器E_\varphi \left ( \cdot \right ),将x的实例表示为V=E_\varphi \left ( x \right )=Wh_{[MASK]}。然后,采用权重为W的线性编码器来度量实例之间的余弦相似度。

Loss Function

        两个目标:对于实例对,类内对应该比类间对获得更高的相似度分数;对于实例-原型对,类n的实例与原型c_n之间的相似度得分应该高于c_n与其他类实例之间的相似度得分。 为此,基于对比学习中的InfoNCE损失定义目标函数:

       

 Inference

计算查询实例与原型之间的相似度分数,

 然后通过argmax函数做预测。

        当存在其他的表达器时,首先用一个标准标量来处理不同语言表达器的logits,然后取分数的平均值得到最终分数。

Experiments

Single Verbalizer Results:

 Multiple Verbalizer Results:

相关文章:

论文笔记:Prototypical Verbalizer for Prompt-based Few-shot Tuning

论文来源&#xff1a;ACL 2022 论文地址&#xff1a;https://arxiv.org/pdf/2203.09770.pdfhttps://arxiv.org/pdf/2203.09770.pdf 论文代码&#xff1a;https://github.com/thunlp/OpenPrompthttps://github.com/thunlp/OpenPrompt Abstract 基于提示的预训练语言模型&#…...

nn.functional.softmax(X, dim=-1)

dim-1表示在最后一个维度&#xff08;大概率是一行&#xff09;应用Softmax函数&#xff0c;将值标准化为概率分布。 实例 假设我们有一个张量X&#xff0c;形状为&#xff08;2&#xff0c;3&#xff09;&#xff0c;内容如下&#xff1a; import torch import torch.nn.…...

【动态规划】子数组系列(上)

1. 最大子数组和 53. 最大子数组和 状态表示&#xff1a;以 i 位置为结尾时的所有子数组中的最大和 状态转移方程&#xff1a; i 位置为结尾的子数组又可以分为长度为 1 的和大于 1 的&#xff0c;长度为 1 就是 nums[i] &#xff0c;长度不为 1 就是 dp[i - 1] nums[i]&…...

字节青训营入门算法题:飞行棋分组

链接&#xff1a;飞行棋分组&#x1f517;&#x1f517; 题目 现在有一堆飞行棋棋子&#xff0c;每个棋子上标有数字序号。需要将这些棋子分成若干组&#xff0c;每组包含5个棋子&#xff0c;且组内所有棋子的数字序号必须相同。需要判断是否可以完成这样的分组。 解答 为了…...

# 执行 rpm -qa | grep qq 查询软件安装情况时报错 数据库损坏 db3 error(-30974)

执行 rpm -qa | grep qq 查询软件安装情况时报错 数据库损坏 db3 error(-30974) 一、问题描述&#xff1a; 在 linux 系统上&#xff0c;使用包管理工具 rpm 查询某一个软件安装情况&#xff0c;如&#xff1a;执行 rpm -qa | grep qq 时&#xff0c;报错 数据库损坏 db3 err…...

离线服务器上复现G3SR论文实验

代码地址:https://github.com/AllminerLab/Code-for-G3SR-master 论文地址:https://ieeexplore.ieee.org/abstract/document/9741079/ 因为直接按照作者的方法操作会出现问题,故笔者在这里记录一下的实验过程。 实验环境 python=3.6 pytorch pytorch的下载命令需要自行前往…...

Android 未来可能支持 Linux 应用,Linux 终端可能登陆 Android 平台

近日&#xff0c;根据 android authority 的消息&#xff0c;Google 正在开发适用于 Android 的 Linux 终端应用&#xff0c;而终端应用可以通过开发人员选项启用&#xff0c;并将 Debian 安装在虚拟机中。 在几周前&#xff0c;Google 的工程师开始为 Android 开发新的 Termi…...

PostgreSQL学习笔记十四:PL/Python自定义函数

在 PostgreSQL 中可以使用 PL/Python 语言来创建自定义函数。以下是一个示例步骤&#xff1a; 一、创建自定义函数 连接到 PostgreSQL 数据库&#xff0c;可以使用 psql 命令行工具或者通过数据库管理工具。 执行以下 SQL 语句创建一个简单的 PL/Python 函数&#xff1a; C…...

计算机毕业设计 | springboot商城售后管理系统 购物平台(附源码)

1&#xff0c;绪论 1.1 开发背景 在数字化时代的推动下&#xff0c;产品售后服务管理机构面临着信息化和网络化的挑战。传统的手工管理和纸质档案已经无法满足管理人员和读者的需求。为了提高产品售后服务管理机构的管理效率和服务质量&#xff0c;开发和实现一个基于Java的售…...

(全网独家)面试要懂运维真实案例:HDFS重新平衡(HDFS Balancer)没触发问题排查

在面试时&#xff0c;面试官为了考察面试者是否真的有经验&#xff0c;经常会问运维集群时遇到什么问题&#xff0c;解决具体流程。下面是自己遇到HDFS Balancer没执行&#xff0c;花了半天时间进行排查&#xff0c;全网独家的案例和解决方案。 目录 使用CDH自带重新平衡操作…...

【数据结构笔记】搜索树

二叉搜索树 任一节点x的左/右子树中&#xff0c;所有非空节点均不大于&#xff08;不小于&#xff09;x 必须是所有的非空节点&#xff0c;仅左右孩子不够&#xff08;左孩子的右孩子可能很大&#xff09;一棵二叉树是二叉搜索树当且仅当中序遍历序列是单调非降序列 两棵二叉…...

如何使用UART(STM32 HAL库)

UART &#xff08;通用异步收发器&#xff09;是在 USART &#xff08;通用同步异步收发器&#xff09;基础上裁剪掉了同步通信功能&#xff0c;只剩下异步通信功能。关于通信和串口的基本知识&#xff0c;可参见文章《串口通信简介-CSDN博客》和《数据通信的一些基础概念-CSDN…...

星巴克英语

用流利的英文点星巴克 一杯咖啡 英文中文英文中文barista咖啡师coffee maker家用咖啡机cup sleeve杯套coffee stirrer咖啡棒coffee cup lid咖啡杯盖子straw吸管latte art咖啡拉花for here内用to go外带 例句&#xff1a; Could I have a cup sleeve for my coffee , please…...

权重衰减与暂退法——paddle部分

权重衰减与暂退法——paddle部分 本文部分为paddle框架以及部分理论分析&#xff0c;torch框架对应代码可见权重衰减与暂退法torch import paddle print("paddle version:",paddle.__version__)paddle version: 2.6.1当我们谈论机器学习模型的性能时&#xff0c;经…...

golang获取当天最小的时间,以DateTime的string格式返回

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

2025 - 中医学基础 - 考研 - 职称

2025 - 中医学基础 - 考研 - 职称 第1章 中医学导论 1.中医学的指导思想是&#xff08;&#xff09;( ) [单选] A&#xff0e;阴阳学说 B&#xff0e;五行学说 C&#xff0e;精气学说 D&#xff0e;整体观念 E&#xff0e;辨证论治 正确答案: D 2.中医学的理论核心是&…...

Pandas库

一、安装 Pandas是一个基于Python构建的专门进行数据操作和分析的开源软件库&#xff0c;它提供了高效的数据结构和丰富的数据操作工具。 安装 pip install pandas 二、核心数据结构 Pandas库中最常用的数据类型是Series和DataFrame&#xff1a; Series&#xff1a;一维数…...

Qt网络编程: 构建高效的HTTP文件下载器

文章目录 注意事项调用示例在使用Qt进行HTTP下载时,通常会使用QNetworkAccessManager类来管理HTTP请求和响应。这个类提供了进行网络请求的能力,包括下载文件。下面是使用Qt进行HTTP下载的一个示例,以及在实现时应考虑的一些注意事项。 注意事项 1.错误处理 始终检查QNetwo…...

Python 将Word, Excel, PDF和PPT文档转换为OFD格式

目录 使用工具 Python 将Word文档转换为OFD Python 将Excel文档转换为OFD Python 将PDF文档转换为OFD Python 将PPT文档转换为OFD OFD&#xff08;Open Fixed-layout Document&#xff09;是中国国家标准的电子文档格式&#xff0c;主要用于政府、金融等行业的正式文档传输…...

QD1-P21-P22 CSS 基础语法、注释、使用方法

本节学习&#xff1a;CSS 基础语法和注释&#xff0c;以及如何使用CSS定义的样式。 本节视频 https://www.bilibili.com/video/BV1n64y1U7oj?p21 CSS 基本语法 CSS&#xff08;层叠样式表&#xff09;的基本语法相对简单&#xff0c;由选择器和一组包含在花括号 {}​ 中的声…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...