CLIP论文拜读及理解

news2024/10/7 5:23:00

文章目录

  • 一、clip论文阅读
  • 二、prompt
    • 1.除prompt之外的预训练语言模型
    • 2.prompt
      • 2.1. prompt定义
      • 2.2. prompt类型
      • 2.3. prompt重构
        • `2.3.1 prompt template`
        • `2.3.2 Answer engineering`
      • 2.4 多个 prompt的使用
      • 2.5 prompt的训练
  • 总结
  • 参考(博文、论文)


一、clip论文阅读

论文阅读是跟随沐神视频:CLIP 论文逐段精读【论文精读】

二、prompt

在阅读clip论文时,注意到里面提到的prompt。所以想了解并学习一下。

1.除prompt之外的预训练语言模型

在这里插入图片描述
这三种预训练语言模型需要人力

  1. feature engineering 需要人工提取特征
  2. architecture engineering 需要人工设计网络结构
  3. objective engineering 需要人工设计目标函数

2.prompt

2.1. prompt定义

prompt learning :提示学习

prompt learning 对 输入的文本信息 按照 特定模板 进行处理把任务重构成一个 更能够充分利用预训练语言模型处理的形式

以情感分析为例,传统情感分析是如下的:
Input: 你是个好人。
Output: positive 或 negative
而采用 prompt learning 的话,输入输出就会变为如下:
Input: 你是个好人。那么她____和你耍朋友。
Output: 想 或者 不想

简而言之:
将输入文本作为一个 提示(prompt),接着拼一个语句,再让模型来对这个语句进行完形填空

prompt 的重构方式可以总结为:

  1. 输入数据不变;
  2. 给定一个 prompt 模板;
  3. 给定一个答案范围。(后面会分别简单讲解这三个步骤)

进行完形填空的目的是,因为 BERT 的训练任务就是做完形填空。就是为了让下游任务更适配语言模型,而基于目标工程的预训练语言模型则是让模型去适配下游任务比如传统的 BERT 要做情感分析还要在输入时第一个位置添加一个 [CLSL,然后输出这个ICLS] 的隐藏状态后还要再接全连接层才能预测情感标签),

下图展示了几个不同的语言模型之间的关系(图来自刘鹏飞大佬的论文中):
在这里插入图片描述

与前三种预训练语言模型一样,prompt learning 同样需要人工在里面,即人工设计 提示模板(prompt template)答案模板(answer template)

2.2. prompt类型

prompt 分为了两类:cloze promptprefix prompt


首先介绍一下4种预训练方法:
由于每一类 prompt 都要让下游任务满足 预训练方法,所以作者在论文里把这些方法抽象成了以下4种。
在这里插入图片描述
在这里插入图片描述


基于以上4种预训练语言类型,我们再来讨论两类 prompt:cloze promptprefix prompt

  1. cloze prompt:在 prompt 中有插槽 (slot) 的类型为 cloze prompt
    这类 prompt 就是需要模型去填充这个 slot。这类可以选用 L2R LM (ELMo) 或者 Masked LM (BERT) 来实现。
  2. prefix prompt:输入的文本全部在 answer 前的类型为 prefix prompt
    这类 prompt 通常是需要模型去预测或者生成这个 slot。这类模型可以选用 L2R LM (RNN)Prefix LM,以及 Encoder-Decoder (GPT) 去实现。

针对不同任务的 prompt 都可以用下表展示:
在这里插入图片描述

2.3. prompt重构

在 prompt 重构的过程中,就需要两个关键的模板:prompt templateanswer template

2.3.1 prompt template

有两种方法来生成:人工设计模板自动生成模板

  1. 人工设计模板:人工设计模板是最直观的方法。抽象来看,设文本为 [ X ],插槽为 [ Z ],人工设计的模板为 [ X ] template words [ Z ]
    尽管这样非常直觉,易于理解,而且无需额外的计算代价,但是人工设计模板有很大的缺陷:
    1. 人工设计模板是很花费时间且需要先验知识的;
    2. 人工设计也会有失败的情况在内。
      为了解决上面的问题,就提出了通过训练的方式自动生成模板。
  2. 自动生成模板: 自动生成模板有两种类型。
    1. discrete prompts (离散提示, a. k. a. hard prompts),这类型 prompts 就是让模型在一组离散模板的空间中选择一个最优的模板
    2. continuous prompts (连续提示, a. k. a. soft prompts),这类型 prompts 就是让语言模型自动训练一个 prompts 出来

2.3.2 Answer engineering

Answer engineering 目的是找到一个答案 **[ Z ]**的空间,并且将这个空间映射到输出的标签 y上。

答案会有三种种类,tokens (比如文本分类),span (比如方面级情感分析中的方面识别),Sentence (比如机器翻译)。

与 prompt engineering 相同,answer engineering 同样有人工设计与自动获取两种方法。

  1. 人工设计答案: 人工设计分为两类 [ Z ]空间。
    1. Unconstrained spaces 中的 [ Z ]空间包含了输出空间的所有结果,token 级的话则是全部词表中的词 (比如 W2V 的输出层),其余类型相同。这类方法可以直接找到 [ Z ]与 y的映射关系。
    2. Constrained spaces,这类方法通常输出是在一个限定范围内 (比如 positive 和 negative),这类方法就需要一个映射关系来映射 [ Z ]与 y。
  2. 自动学习答案: 与 prompt engineering 相同,有 discrete answer search 和 continuous answer search
    1. discrete prompts
    2. continuous prompts

2.4 多个 prompt的使用

根据研究显示,使用多个 prompt 可以有效提升性能。 由于多个 prompt 集成后,每个 prompt 都会有一个输出,对这些输出我们也需要有相应的取舍。最简单的方法就是对每个 prompt 的输出概率求和取平均。但是这样有个问题就是可能有的 prompt 占比高,有的占比低,于是就有了带权平均方法。也有研究是采用 majority voting 的方法 (我没看过论文,但是我个人觉得就是对于分类问题,选择最多分类的那一类)。还有采用知识蒸馏和集成做文本分类的方法

对于 prompt ensembling有以下四种方法:
在这里插入图片描述
在这里插入图片描述

2.5 prompt的训练

在这里插入图片描述
在这里插入图片描述

总结

Prompt Learning激活了很多新的研究场景,比如小样本学习,可以成为那些GPU资源受限研究者的福音。

Prompt Learning最重要的一个作用在于给我们prompt(提示)了NLP发展可能的核心动力是什么。

参考(博文、论文)

参考的博文:
博主:野指针小李

参考的论文:

刘鹏飞大佬的论文
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系统安装WSL,并安装docker服务

背景 因为工作需要,要在电脑上执行sh脚本,并启动docker服务执行具体逻辑。因为我的电脑是windows系统,对做本任务来说,比较吃力,所以想到使用wsl,让windows电脑具有linux电脑的能力。 什么是 WSL 2 WSL 2 …

JVM的类加载的过程以及双亲委派模型

目录 1、加载 (加载字节码文件,生成.class对象) 2、验证(验证Class文件是否符合规范) 3、准备 (为静态变量分配内存并设置变量初始值) 4、解析(初始化常量池中的一些常量&#…

索引的分类

1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…

Android opencv

install cmake cpp folder,新建c项目 获取 OpenCV4Android SDK O4A_SDK 下载,并解压 ~/Downloads/OpenCV-android-sdk$ tree -d -L 2 . ├── apk ├── samples │ ├── 15-puzzle │ ├── camera-calibration │ ├── color-blob-detection │ ├…

文件:IO流

1. 什么是IO /O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程;java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一…

Vue学习笔记(7. axios异步请求)

1. axios请求方式 方式1:axios({method:"GET",url:"..."}) 方式2:axios({method:"POST",url:"...",data:"..."}) 方式3:axios.get("url...") 方式4:axios.post(…

Python中的35个关键字

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

【 Spring MVC 核心功能(二) - 获取参数(下)】

文章目录一、使用 RequestBody 接收JSON对象二、使用 RequestPart 上传⽂件三、获取 Cookie四、获取 Header五、存储和获取 Session5.1 存储 Session5.2 获取 Session一、使用 RequestBody 接收JSON对象 有时客户端会通过 post 方式发送 json 格式的请求,那后端就可…

2.3.5双链表

单链表vs双链表 就是既有前驱指针也有后继指针,由line改为double。 双链表的插入怎么实现? s->nextp->next; p->next->priors s->priorp //把p赋给s的前驱指针指向的位置 p->nexts; 如果p刚好是最后一个元素。 p->next->prio…

基于ArcGIS的电子地图矢量化方法

一、电子地图及纸质地图矢量化的目的 地图数据来源有很多,其中栅格数据数字化是地图数据的重要来源。栅格数据的矢量化包括地理配准以及矢量化。矢量化后的地图数据往往可以为我们的空间统计分析提供实验依据,从而探究地理分布的时空差异性。 空间参考&a…

完整指南:如何安装Man手册

Man手册简介 man手册是Unix和类Unix操作系统中的命令行工具,用于提供关于特定命令、函数和文件的帮助文档。它通常包含命令的语法、选项、参数、示例以及其他相关信息。man手册可以通过在终端输入"man"命令,后跟要查看的命令或函数名称来访问…

huggingface transformer模型介绍

总结: 模型提高性能:新的目标函数,mask策略等一系列tricks Transformer 模型系列 自从2017,原始Transformer模型激励了大量新的模型,不止NLP任务,还包括预测蛋白质结构,时间序列预测。 有些模…

灌区流量监测设备-中小灌区节水改造

系统概述 灌区信息化管理系统主要对对灌区的水情、雨情、土壤墒情、气象等信息进行监测,对重点区域进行视频监控,同时对泵站、闸门进行远程控制,实现了信息的测量、统计、分析、控制、调度等功能。为灌区管理部门科学决策提供了依据&#xf…

Python 无监督学习实用指南:6~10

原文:Hands-on unsupervised learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关…

23年5月高项学习笔记12 —— 干系人管理

过程: 1. 识别干系人:定期识别干系人,分析和记录他们的利益,参与度、相互依赖性、影响力和对项目的潜在的影响 输入:立项管理文件、沟通管理计划、干系人参与计划、需求文件、变更日志、问题日志、协议(协…

今天给大家介绍一篇基于springboot的医院管理系统的设计与实现

临近学期结束,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基…

2023/4/10总结

线段树 线段树是一种二叉树,通俗易懂的来说就是对于一个线段,我们会用一个二叉树来表示。线段树是一种工具,她能把对区间(线段)的修改与维护从0(N)的时间复杂度变成0(logN)。 如图: 如上图,我…

MYSQL SQL语句优化技术技巧

MySQL是一种流行的关系型数据库管理系统,它提供了各种各样的SQL语句优化技术,下面是一些常见的优化技巧: 1. 使用索引 索引可以大大提高查询性能。在MySQL中,可以使用CREATE INDEX语句在列上创建索引。当查询包含WHERE子句并且…

Google SEO 搜索中心

在公司发展还没有那么成熟的时候,也许你的测试网站是外网可以公开访问的,也许你网站中的机密图片在测试环境(不小心上到正式环境)却被搜索引擎无情抓取,以及有些内部用户才能使用的网址,你并不想被搜索引擎…

明着呼吁暂停,暗着囤积GPU,马斯克暗度陈仓玩得溜

众所周知,此前马斯克纠集了上千名科技工作者对生成式人工智能的深度训练表示了质疑,呼吁暂停继续对深度人工智能的训练,哪怕先暂停六个月。呼吁的尘埃还没有彻底落地,就传出了马斯克已经悄悄地囤积了上万枚GPU,构建自己…