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

大模型笔记:Prompt tuning

1  NLP模型的几个阶段

1.1 第一阶段(在深度学习出现之前)

  • 通常聚焦于特征工程(feature engineering)
  • 利用领域知识从数据中提取好的特征

1.2 第二阶段(在深度学习出现之后)

  • 特征可以从数据中习得——>研究转向了结构工程(architecture engineering)
  • 通过设计一个合适的网络结构,学习好的特征

1.3 第三阶段(预训练 + 微调)

  • 用一个固定的结构预训练一个语言模型(language model, LM)
    • 预训练的方式就是让模型补全上下文(比如完形填空)
    • 预训练不需要专家知识,因此可以在网络上搜集的大规模文本上直接进行训练
  • 这一阶段的一个研究方向是目标工程(objective engineering)
    • 为预训练任务和微调任务设计更好的目标函数
    • 让下游任务的目标与预训练的目标对齐是有利的
    • 几种经典预训练任务
      • Masked Language Modeling(MLM)
        • 随机选取一个固定长度的词袋区间,然后挖掉中心部分的词,让模型预测该位置的词
      • Next Sentence Prediction(NSP)
        • 给定两个句子,来判断他们之间的关系
        • 存在三种关系
          • entailment(isNext)
            • 紧相邻的两个句子
          • contradiction(isNotNext)
            • 这两个句子不存在前后关系,例如两个句子来自于不同的文章
          • Neutral
            • 中性关系,当前的两个句子可能来自于同一篇文章,但是不属于isNext关系的

1.4 第四阶段(预训练 + Prompt Tuning)

  • 通过添加模板的方法来避免引入额外的参数,从而让语言模型可以在小样本(Few-shot)或零样本(Zero-shot)场景下达到理想的效果

2 prompt tuning

  • Prompt的目的是将Fine-tuning的下游任务目标转换为Pre-training的任务

2.1 举例说明

给定一个句子

[CLS] I like the Disney films very much. [SEP]

  • 传统的Fine-tuning方法
    • 通过BERT的Transformer获得 [CLS]表征
    • 之后再喂入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative)
    • 需要一定量的训练数据来训练
  • Prompt-Tuning
    • 构建模板(Template Construction)
      • 通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有[MASK]标记的模板
      • 拼接到原始的文本中,获得Prompt-Tuning的输入
        • [CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]
      • 将其喂入BERT模型中,并复用预训练好的MLM分类器,即可直接得到[MASK]预测的各个token的概率分布
    • 标签词映射(Label Word Verbalizer)
      • ​​​​​​​因为[MASK]部分我们只对部分词感兴趣【比如 positive/negative】
      • ——>需要建立一个映射关系
        • 如果[MASK]预测的词是“great”,则认为是positive类
        • 如果是“terrible”,则认为是negative类
    • 训练
      • ​​​​​​​​​​​​​​只对预训练好的MLM head进行微调

3 PET(Pattern-Exploiting Training)

《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》(EACL2021)

3.1 pattern 和verbalizer

3.1.1 Pattern(Template) 

  • 记作T  ,即上文提到的模板,为额外添加的带有[mask]标记的短文本
  • 通常一个样本只有一个Pattern(因为我们希望只有1个让模型预测的[mask]标记)
  • 不同的任务、不同的样本可能会有其更加合适的pattern
    • ——> 如何构建合适的pattern是Prompt-Tuning的研究点之一 

3.1.2 Verbalizer

  • 记作V  ,即标签词的映射,对于具体的分类任务,需要选择指定的标签词(label word)。
  • 例如情感分析中,期望Verbalizer可能是
    • V(positive)=great; V(negative)=terrible  
    • (positive和negative是类标签)
  •  如何构建Verbalizer是另一个研究挑战 

上述两个组件被称为Pattern-Verbalizer-Pair(PVP),一般记作P=(T,V) 

3.2 Patterns Ensembling 

  • 一般情况下,一个句子只能有一个PVP
  • 这可能并不是最优的,是否可以为一个句子设计多个不同的PVP呢?
  • ——>Prompt-Tuning的集成
    • Patterns Ensembling :同一个句子设计多个不同的pattern

3.3 Verbalizers Ensembling

  • 在给定的某个Pattern下,并非只有1个词可以作为label word。
    • 例如positive类,则可以选择“great”、“nice”、“wonderful”。当模型预测出这三个词时,均可以判定为positive类。
  • 在训练和推理时,可以对所有label word的预测概率进行加权或投票处理,并最后获得概率最大的类

3.4 PVPs Ensembling(Prompt Ensembling)

  • Pattern和Verbalizer均进行集成,此时同一个句子有多个Pattern,每个Pattern又对应多个label word

3.5  选择不同的Pattern和Verbalizer会产生差异很大的结果

4 挑选合适的pattern

  • 从3.5可以看出,不同的pattern对结果影响很大,所以如何挑选合适的pattern,是近几年学术界的一个热点
    • 离散的模板构建(Hard Prompt)
      • ​​​​​​​直接与原始文本拼接显式离散的字符,且在训练中这些离散字符的词向量(Word Embedding) 始终保持不变
      • ——>很难寻找到最佳的模板
      • ——>效果不稳定
    •  连续的模板构建(Soft Prompt)
      • 让模型在训练过程中根据具体的上下文语义和任务目标对模板参数进行连续可调
离散的模板构建

Hard Prompt
启发式法(Heuristic-based Template)通过规则、启发式搜索等方法构建合适的模板
生成(Generation)根据给定的任务训练数据(通常是小样本场景),生成出合适的模板
连续的模板构建

​​​​​​​Soft Template
词向量微调(Word Embedding)
  • 显式地定义离散字符的模板,但在训练时这些模板字符的词向量参与梯度下降
  • 初始定义的离散字符用于作为向量的初始化
伪标记(Pseudo Token)不显式地定义离散的模板,而是将模板作为可训练的参数

4.1 soft prompt

The Power of Scale for Parameter-Efficient Prompt Tuning, EMNLP 2021

  • 记Y是LLM的输出,X是输入token,θ是Transformer的权重参数
    • NLP中的文本生成任务可以表示为P_\theta(Y|X)
  • 之前的hard Prompting在生成 Y 时向模型添加额外信息以作为条件:
    • 这一过程可以表示为P_\theta(Y|[P;X])
    • 也就是将prompt的语句和输入token 连接在一起,输入给pre-train 模型,在pre-train 模型中,用它的参数生成 embedding,经过一系列的流程得到对应的输出
  • soft prompt/prompt tuning 使用一组特殊Token作为prompt
    • 给定一系列 n 个Token,\{x_1,x_2,\cdots,x_n\}
      • 第一步是将这些Token向量化,形成一个矩阵X_e \in R^{n \times e} 
        • 【使用pre-train 模型的参数】
        • (e是向量空间的维度)
      • soft prompt以参数P_e\in R^{p\times e}的形式表示
        • (p是prompt的长度)
      • 将prompt与向量化后的输入连接起来,形成一个整体矩阵[P_e;X_e] \in R^{(p+n) \times e}
      • 该矩阵接着正常地通过编码器-解码器流动
      • 模型旨在最大化 P_{\theta,\theta_P}(Y|[P_e;X_e])的概率,但仅更新prompt参数θP

参考内容:一文详解Prompt学习和微调(Prompt Learning & Prompt Tuning)

相关文章:

大模型笔记:Prompt tuning

1 NLP模型的几个阶段 1.1 第一阶段(在深度学习出现之前) 通常聚焦于特征工程(feature engineering)利用领域知识从数据中提取好的特征 1.2 第二阶段(在深度学习出现之后) 特征可以从数据中习得——>…...

【Ambari】Ansible自动化部署大数据集群

目录 一.版本说明和介绍信息 1.1 大数据组件版本 1.2 Apache Components 1.3 Databases支持版本 二.安装包上传和说明 三.服务器基础环境配置 3.1global配置修改 3.2主机名映射配置 3.3免密用户名密码配置 3.4 ansible安装 四. 安…...

RTSP/Onvif视频安防监控平台EasyNVR调用接口返回匿名用户名和密码的原因排查

视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。平台拓展性强、支持二次开发与集成,可应用在景区、校园、水利、社区、工地等场…...

opencv基础图行展示

"""试用opencv创建画布并显示矩形框(适用于目标检测图像可视化) """ # 创建一个黑色的画布,图像格式(BGR) img np.zeros((512, 512, 3), np.uint8)# 画一个矩形:给定左上角和右下角坐标&#xff0…...

GIF在线生成器

上传图片就能生成GIF的前端WEB工具 源码也非常简单 <!DOCTYPE html> <html lang"zh" class"dark"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1, m…...

使用JavaScript制作一个简单的天气应用

随着Web开发技术的不断发展&#xff0c;JavaScript已经成为前端开发中不可或缺的一部分。它不仅可以用于创建动态和交互式的用户界面&#xff0c;还可以用于处理各种复杂的任务&#xff0c;如数据验证、动态内容更新、实时通信等。以下是一个使用JavaScript来创建一个简单天气应…...

说说对WebSocket的理解?应用场景?

文章目录 一、是什么二、特点全双工二进制帧协议名握手优点 三、应用场景参考文献 一、是什么 WebSocket&#xff0c;是一种网络传输协议&#xff0c;位于OSI模型的应用层。可在单个TCP连接上进行全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通迅 客户端和…...

网路维护基础知识

1、路由器 路由器&#xff1a;路由器就是将一个可以接入互联网的网路地址分成若干个网路地址可供终端设备连接的网路设备&#xff0c;设备既可以通过有线连接也可以通过无线连接进入互联网 2、交换机 交换机&#xff1a;个人感觉交换机只是为那些有线网路设计的&#xff0c;…...

【GD32】MQ-3酒精检测传感器

2.31 MQ-3酒精检测传感器 MQ-3气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(Sn0)。当传感器所处环境中存在酒精蒸气时&#xff0c;传感器的电导率随空气中酒精蒸气浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。…...

如何在极狐GitLab 启用依赖代理功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在[极狐GitLab…...

ES6中 Promise的详细讲解

文章目录 一、介绍状态特点流程 二、用法实例方法then()catchfinally() 构造函数方法all()race()allSettled()resolve()reject() 三、使用场景# 参考文献 一、介绍 Promise&#xff0c;译为承诺&#xff0c;是异步编程的一种解决方案&#xff0c;比传统的解决方案&#xff08;…...

网站建设也会涉及商标侵权,需要注意些!

以前普推知产老杨碰到建站涉及知识产权侵权的&#xff0c;但是大多数是其它方面的&#xff0c;前几天看到某同行说由于给客户建设网站&#xff0c;由于网站名称涉及商标被起诉要索赔几十万。 当时同行给做网站时还看了下营业执照&#xff0c;上面的主体名称与网站名称也是一致…...

Leetcode算法训练日记 | day25

一、组合总和Ⅲ 1.题目 Leetcode&#xff1a;第 216 题 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺…...

第23次修改了可删除可持久保存的前端html备忘录:增加了百度引擎

第22次修改了可删除可持久保存的前端html备忘录视频背景分离&#xff0c;增加了本地连接&#xff0c;增加了纯CSS做的折叠隐藏修改说明 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport…...

vue3中使用antv-S2表格(基础功能版)

先看展示效果&#xff1a; 可以调整行宽、列宽、自定义字段图标、表头图标、添加排序、显示总计、小计等 首先确保搭建一个vue3项目环境&#xff0c;从0开始的小伙伴着重看第一点&#xff1a; 一、搭建vue3项目环境 首先创建一个vue3vitets项目&#xff0c;可以查看下面相关…...

算数逻辑单元

目录 一、王道考研ppt总结 二、个人理解 一、王道考研ppt总结 二、个人理解 74181是一款经典的ALU 可以进行加减乘除和与或非、异或等计算&#xff1b;还有移位和求补等 输入有一个CU信号&#xff0c;即控制单元信号&#xff0c;有一个M信号&#xff0c;当M为1时&#xff0c;进…...

clickhouse深入浅出

基础知识原理 极致压缩率 极速查询性能 列式数据库管理 &#xff0c;读请求多 大批次更新或无更新 读很多但用很少 大量的列 列的值小数值/短字符串 一致性要求低 DBMS&#xff1a;动态创建/修改/删除库 表 视图&#xff0c;动态查/增/修/删&#xff0c;用户粒度设库…...

TPS2041A 至 TPS2044A 、TPS2051A 至 TPS2054A

这份文件是德州仪器&#xff08;Texas Instruments&#xff09;关于一系列电流限制型电源分配开关的数据手册&#xff0c;型号包括 TPS2041A 至 TPS2044A 和 TPS2051A 至 TPS2054A。这些开关适用于可能遇到重负载电容负载和短路的应用程序。以下是该数据手册的核心内容概要&…...

Excel从零基础到高手【办公】

第1课 - 快速制作目录【上篇】第1课 - 快速制作目录【下篇】第2课 - 快速定位到工作表的天涯海角第3课 - 如何最大化显示工作表的界面第4课 - 给你的表格做个瘦身第5课 - 快速定位目标区域所在位置第6课 - 快速批量填充序号第7课 - 按自定义的序列排序第8课 - 快速删除空白行第…...

AI图书推荐:如何在课堂上使用ChatGPT 进行教育

ChatGPT是一款强大的新型人工智能&#xff0c;已向公众免费开放。现在&#xff0c;各级别的教师、教授和指导员都能利用这款革命性新技术的力量来提升教育体验。 本书提供了一个易于理解的ChatGPT解释&#xff0c;并且更重要的是&#xff0c;详述了如何在课堂上以多种不同方式…...

Redis中的集群(九)

集群 消息 集群中的各个节点通过发送和接收消息(message)来进行通信&#xff0c;我们称发送消息的节点为发送者(sender),接收消息 的节点成为接收者&#xff0c;如图所示。节点发送的消息主要有以下五种: 1.MEET消息:当发送者接到客户端发送的CLUSTER MEET命令时&#xff0c…...

funasr 麦克风实时流语音识别

参考: https://github.com/alibaba-damo-academy/FunASR chunk_size 是用于流式传输延迟的配置。[0,10,5] 表示实时显示的粒度为 1060=600 毫秒,并且预测的向前信息为 560=300 毫秒。每个推理输入为 600 毫秒(采样点为 16000*0.6=960),输出为相应的文本。对于最后一个语音…...

英语学习笔记-音节划分和字母发音对照表

国际音标 音节划分 英语音节以元音为主体构成的发音单位&#xff0c;一般说来元音发音响亮&#xff0c;可以构成音节&#xff0c;辅音发音不响亮&#xff0c;不能单独构成音节 ((m] (n] [I] 例外)。 从单词拼写形式上看&#xff0c;有几个元字组就有几个音节 音节划分规则 长…...

使用odbc链接dm8数据库

一、环境说明 windows11 VMware Workstation 17 Pro ubuntu22.04 docker $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy因docker版本的dm8中&#xff0c;没有…...

开源项目one-api的k8s容器化部署(上)-- 制作镜像及部署准备

一、背景 最近需要对开源项目one-api进行k8s容器化部署&#xff0c;主要分以下几个步骤&#xff1a; 制作docker镜像申请mysql和redis数据库docker-compose部署方式k8s部署方式 整个的篇幅比较长&#xff0c;将会分成上下两篇来阐述。 二、制作docker镜像 开源项目one-api…...

面试-数据库基础以及MySql、ClickHost、Redis简介

面试-数据库基础以及MySql、ClickHost、Redis简介 0.数据完整性1.数据库并发控制1.1事物1.2 并发读写错误1.3 锁1.3.1 乐观锁与悲观锁1.3.2 共享锁和排他锁1.3.3 行锁与表锁1.3.4 意向锁 1.4 封锁协议与隔离级别1.5 MVCC1.5.1 概念1.5.2 当前读与快照读1.5.3 MVCC in InnoDB 2.…...

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展&#xff0c;那这个网站流量也会增加&#xff0c;数据的压力也会随之而…...

数据结构课程设计选做(一)---数字排序(哈希、排序)

2.1.1 题目内容 2.1.1-A [问题描述] 给定n个整数&#xff0c;请统计出每个整数出现的次数&#xff0c;按出现次数从多到少的顺序输出。 2.1.1-B [基本要求] &#xff08;1&#xff09;输入格式&#xff1a; 输入的第一行包含一个整数n&#xff0c;表示给定数字的个数。 第二…...

Linux第90步_异步通知实验

“异步通知”的核心就是信号&#xff0c;由“驱动设备”主动报告给“应用程序”的。 1、添加“EXTI3.c” #include "EXTI3.h" #include <linux/gpio.h> //使能gpio_request(),gpio_free(),gpio_direction_input(), //使能gpio_direction_output(),gpio_get_v…...

elasticdump之python脚本

参考文章目录 elasticdump之shell备份脚本 前言 在企业实际生产环境中,避免不了要对es集群进行迁移、数据备份与恢复&#xff0c;以此来确保数据的可用性及完整性。因此&#xff0c;就涉及到了数据备份与恢复。本章主要以elasticdumppython为主&#xff0c;实现es集群索引备…...

找谁做网站比较好/汕头网站建设优化

Php 3.x与4.x中关于对象编程的不兼容问题之一 构造器说 (转)[more]3.x与4.x中关于的不兼容问题“面向对象”听起来是个很流行的词汇&#xff0c;似乎到了如果你还没有&#xff0c;那不如回家种白菜的地步。Php从版本3.x开始支持对象编程&#xff0c;虽然它的Class从一开始就饱受…...

邵阳网站建设公司/营销型企业网站的功能

ListIterator由JDK1.2开始添加&#xff0c;继承自Iterator。ListIterator是列表的迭代器&#xff0c;允许在任一方向上遍历列表&#xff0c;在迭代期间修改列表&#xff0c;并获取迭代器在列表中的当前位置。 接口中的方法&#xff1a; boolean hasNext();如果在正向遍历时&am…...

常用设计网站有哪些软件/seo推广技术

希望和正在或者想要学习使用ISAAC-GYM的朋友一起有一个讨论群&#xff0c;尝试互帮互助&#xff0c;交流学习内容~ 目前刚开始尝试&#xff0c;不知道能不能建立起来&#xff0c;如果有意向请私戳&#xff01;&#xff01; ——2023.02 一、常用命令行选项 命令作用–help打印…...

便宜营销型网站建设优化建站/企业网站首页

eclipse界面定制&#xff0c;让eclipse看着更清爽转载于:https://www.cnblogs.com/passer1991/p/3227755.html...

曲靖做网站需要多少钱/荥阳网络推广公司

Java Vector 类Vector类实现了一个动态数组。和ArrayList和相似&#xff0c;但是两者是不同的&#xff1a;Vector是同步访问的。Vector包含了许多传统的方法&#xff0c;这些方法不属于集合框架。Vector主要用在事先不知道数组的大小&#xff0c;或者只是需要一个可以改变大小的…...

山西做网站/代写企业软文

我的Docker专栏 https://blog.csdn.net/weixin_45580378/category_12276045.html docker 镜像 https://registry.hub.docker.com/r/nacos/nacos-server/tags 1.下载nacos镜像 这里下载的是2.0.3 docker pull nacos/nacos-server:2.0.32.查看镜像是否下载成功 如下图 docker…...