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

ChatGPT 学习笔记 | 什么是 Prompt-tuning?

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

Prompt-tuning is an efficient, low-cost way of adapting an AI foundation model to new downstream tasks without retraining the model and updating its weights.

提示调优是一种高效且低成本的方法,它能在无需重新训练模型和更新权重的前提下,将 AI 基础模型适配至新的下游任务。

基础模型旨在引领下一波人工智能企业应用的浪潮(未来的人工智能是灵活、可重复使用的人工智能模型,可以应用于几乎任何领域或行业任务)。

这些大型、可重复使用的模型已经在互联网的广泛知识上进行了预训练,使它们更容易定制,用于分析法律合同或检测金融文件中的欺诈行为。

MJ 生成,Artificial Intelligence; Big Models; Training; Fine Tuning; Cool; Future; Technology; Masterpieces


二、主要内容

在 ChatGPT 火爆出圈之前,微调是重新部署这些预训练模型用于专门任务的最佳方法。您会收集和标记目标任务的示例,然后对模型进行微调,而不是从头开始训练一个全新的模型。但是随着基础模型不断增大,出现了一种更简单、更高效、更节能的技术:Prompt-tuning

在 Prompt-tuning 中,最佳线索或前端提示被提供给您的 AI 模型,以为其提供特定任务的上下文。这些提示可以是由人类引入的额外单词,也可以是引入到模型嵌入层中的 AI 生成的数字。就像填字游戏的提示一样,这两种提示类型都会引导模型朝着所需的决策或预测方向发展。Prompt-tuning 允许一家数据有限的公司将大型模型定制为垂直领域的任务。它还消除了更新模型的数百亿(甚至万亿)个权重或参数的需要。

重新部署 AI 模型而无需重新训练可以将计算成本和能源使用减少至少 1000 倍,从而节省数千美元。IBM 的 David Cox 表示,这种 “Prompt-tuning” 可以快速为特定需求创建一个强大的模型,同时也可以加快速度和进行实验。Prompt-tuning 是一种通过给模型提供提示来生成输出的方法,起源于大型语言模型,但现在已扩展到其他基础模型,如处理其他序列数据类型(包括音频和视频)的 Transformers。Prompt 可以是文本片段、图像、语音流或静态图像或视频中的像素块。

IBM 的 MIT-IBM 实验室专家 Ramewsar Panda 表示:“这是一种从这些大型模型中提取知识的快速和可持续的方法。我们不会触及模型。它是冻结的。”

一个面向专门任务的,无数据的前置提示,是指在特定任务中提供指导和信息的线索,而不依赖于实际数据。最初,通过手工设计的方式,即所谓的提示工程,来设计提示。假设您想要为翻译任务调整一个语言模型。您给模型提供目标任务的描述或几个示例。例如,“将英语翻译成法语”,并使用提示:“cheese”(奶酪)。然后模型输出其预测结果:“fromage”(奶酪)。这个手动提示使模型从其记忆库中检索出其他法语单词。如果任务足够困难,可能需要数十个提示。

Prompt Engineering 是在 OpenAI 发布 GPT(Generative Pretrained Transformer)之后出现的,它是一个比之前任何语言模型都大 10 倍的大模型。在 2020 年的一篇论文中,OpenAI 的研究人员展示了 GPT-3 的规模为 1750 亿个参数,使其能够在推理时只需引入少量的文字即可执行专门的任务。在没有重新训练的情况下,GPT-3 的表现几乎与在标记数据上进行微调的模型一样好

手工制作的提示可能很快会被由一串数字组成的优秀 AI 设计的提示所取代。在随后的一篇论文中,谷歌研究人员介绍了所谓的 “软” 提示,由 AI 设计,胜过了人工设计的 “硬” 提示。大约在同一时间,斯坦福的研究人员引入了前缀调整(Prefix-tuning),这是另一种自动提示设计方法,允许模型逐个学习任务。前缀调整将软提示与注入到深度学习模型层中的提示相结合,以增加灵活性。虽然前缀调整更高效,但这两种技术都可以让您冻结模型并跳过昂贵的重新训练。

与硬提示不同,由 AI 设计的软提示对人眼来说是无法识别的。每个提示都由一个 Embeddings 或数字字符串组成,它从更大的模型中提取知识。高级或任务特定的提示作为额外训练数据的替代品。研究人员最近估计,一个好的语言分类器的 Prompt 相当于数百到数千个额外的数据点。Prompt-tuning 的一个缺点是其缺乏可解释性。人工智能发现了针对特定任务进行优化的提示,但无法解释为什么选择了这些 Embeddings。与深度学习模型本身一样,软提示也是不透明的。Panda 说:“你正在学习提示,但是对于模型如何帮助你,了解得很少。这仍然是一个谜。”

Prompt-tuning 的新兴应用。基础模型正在发现新的企业应用,从药物和材料发现到解读汽车手册等技术文档。与此同时,Prompt-tuning 也在不断发展。多任务学习是指基础模型需要快速切换任务,例如从回答客户问题到识别在线评论中的负面评论。研究人员正在探索创建通用提示的方法,以便可以轻松地复用。Panda 表示:“将多任务迁移学习应用于提示,可以将任务共享的知识整合到单个提示中,以便快速适应模型。”

在 2023 ICLR 上,Panda 和他的同事展示了他们的多任务提示调优(MPT)方法优于其他方法,甚至比针对特定任务进行微调的模型表现更好。Panda 表示,与花费数千美元重新训练一个拥有 20 亿参数的专门任务模型相比,MPT 可以以不到 100 美元的成本为您定制模型。另一个正在兴起的研究领域涉及到 AI 模型在不断学习新任务和概念时即时寻找提示。获取新知识涉及到在新数据上更新模型,但有时旧知识会被覆盖,这被称为灾难性遗忘。CODA-Prompt 是一种技术,可以发现连续的、以前从未见过的任务的提示,比如对绘画、绘画和照片进行分类,而不会使模型忘记最初学到的知识。CODA-Prompt 是一种灵活的提示方式,用于持续学习,可以在出现错误时进行修正,而不会保留数据并违反隐私法规。这种技术的共同开发者、IBM 研究员 Leonid Karlinsky 表示:“在用户数据的聊天会话中可能会观察到错误, CODA-Prompt 可以让您在不保留个人数据的情况下纠正错误。”

最近,IBM 研究人员在 2022 年 NeurIPS 会议上发的论文,旨在利用 AI 设计的提示来对抗大型语言和视觉模型中的种族和性别偏见,从而显示出减轻算法偏见的快速和低成本工具的潜力。一种方法称为 FairIJ,它识别出模型训练集中最具偏见的数据点,并通过附加到模型原始提示的提示将它们排除在外。研究人员发现,在薪资预测任务中经过 FairIJ 调整的模型比几种顶级偏见缓解方法实现了更准确、更少偏见的结果。另一种方法:FairReprogram,通过附加到原始提示上的提示,为在美容杂志上训练的 AI 提供了与性别敏感性培训相当的训练。为了重新定位一个错误地学习将只有金发女性与 “女性” 联系起来的分类器,IBM 的研究人员在一张有棕色头发的女性照片上添加了一个由黑色像素组成的 AI 设计边框。他们发现,这些像素能够欺骗模型,使其扩大对女性的概念,包括那些有棕色头发的女性。

Prompt-tuning 不仅可以减少将大型模型定制到新应用程序的成本,IBM 的 Cox 表示,它还可以纠正模型的行为:在这种情况下,减轻偏见。Prompt-tuning 让你既能拥有蛋糕,又能吃掉它。你可以更快速、更可持续地将你的模型适应于专门的任务,同时更容易地找到和解决问题。


三、总结

Prompt-tuning 是一种高效、低成本的方法,可以将 AI 基础模型快速适配于新的下游任务,而无需重新训练模型和更新权重。通过给 AI 模型提供最佳线索或前端提示,可以将大型模型定制并适配于垂直领域的任务,同时减少计算和能源使用。

Prompt-tuning 还可以用于多任务学习、持续学习和减轻算法偏见等领域的研究


📚️ 参考链接:

  • IBM Research - What is prompt-tuning?
  • Niklas Heidloff - Introduction to Prompt Tuning
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

相关文章:

ChatGPT 学习笔记 | 什么是 Prompt-tuning?

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 Prompt-tuning is an efficient, low-cost way of adapting an AI foundation model to new downstream tasks without retraining the model and upd…...

[红明谷CTF 2021]write_shell %09绕过过滤空格 ``执行

目录 1.正常短标签 2.短标签配合内联执行 看看代码 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){ 过滤了 木马类型的东西// if(preg_match("/| |_||php/&quo…...

JVM学习笔记

JVM学习笔记 复习之前学的内容&#xff0c;同时补充以下知识点&#xff1a;JVM的双亲委派机制、伊甸区与老年代相关知识&#xff1b; 双亲委派机制 首先介绍Java中的类加载器 Java中的类加载器 Bootstrap ClassLoader&#xff08;启动类加载器&#xff09;&#xff0c;默认…...

使用 gst-element-maker 创建一个完全透传的 videofilter 插件

系列文章目录 创建 gstreamer 插件的几种方式 使用 gst-template 创建自己的 gstreamer 插件 使用 gst-plugins-bad 里面的 gst-element-maker 工具创建gstreamer 插件 使用 gst-element-maker 创建一个完全透传的 videofilter 插件 文章目录 系列文章目录前言一、使用gst-ele…...

华为ensp单臂路由及OSPF实验

单臂路由及OSPF实验 1.1实验背景 在这个实验中&#xff0c;我们模拟了一个复杂的网络环境&#xff0c;该网络环境包括多个子网和交换机。这个实验旨在帮助网络工程师和管理员了解如何配置单臂路由和使用开放最短路径优先&#xff08;OSPF&#xff09;协议来实现不同子网之间的…...

Android LiveData 介绍

Android LiveData 介绍 系列文章目录前言一、LiveData是什么&#xff1f;二、简单使用依赖测试数据准备1.创建可观察的livedata2.观察它3.更新它 总结 系列文章目录 Android LiveData 介绍&#xff08;本文&#xff09; 前言 本系列根据官网介绍Jetpack中的数据通信组件&…...

好看的货架效果(含3D效果)

搭配thymeleaf layui合成 货架一 1. css #gudinghuojia2F .layui-row { display: flex; justify-content: space-between; height: 100%;} #gudinghuojia2F .layui-col-xs10 {margin-right: 4%;} #gudinghuojia2F .layui-col-xs10:last-child {margin-right: 0;} .inner-ti…...

【每日一题】1498. 满足条件的子序列数目

1498. 满足条件的子序列数目 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大&#xff0c;请将结果对 109 7 取余后…...

Go语言数据类型实例讲解 - Go语言从入门到实战

Go语言数据类型实例讲解 - Go语言从入门到实战 基础数据类型 bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte rune float32 float64 complex64 complex128类型描述bool布尔型&#xff08;bool&#xff09;&#xff1a;可以是true或f…...

RocketMQ 事务消息发送

目录 事务消息介绍 应用场景 功能原理 使用限制 使用示例 使用建议​ 事务消息介绍 在一些对数据一致性有强需求的场景&#xff0c;可以用 RocketMQ 事务消息来解决&#xff0c;从而保证上下游数据的一致性。 应用场景 分布式事务的诉求 分布式系统调用的特点为一个核…...

后端-POST请求中只需要两个参数,后端不想创建对象时

问题&#xff1a; 在前后端对接中&#xff0c;很多前端的规范是POST&#xff0c;参数放body里面&#xff0c;媒体类型是json&#xff0c;后端就需要用RequestBody去接收&#xff0c;但是后端只用接收两个对象&#xff0c;这时候后端不想创建对象&#xff0c;使用RequestParm&a…...

UG\NX二次开发 通过点云生成曲面 UF_MODL_create_surf_from_cloud

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 Rlgun 订阅本专栏,非常感谢。 简介 有网友想做一个通过点云生成曲面的程序,我们也试一下 效果 代码 #include "me.hpp" /*HEAD CREATE_SURF_FROM_CLOUD CCC UFUN */...

Linux常用指令(二)

目录 一、 删除空目录&#xff08;rmdir&#xff09; 二、ln 硬链接与软链接 三、新建空文件或更新文件的时间戳&#xff08;touch&#xff09; 四、比较文件内容的差异&#xff08;diff&#xff09; 五、显示当前时间或设置系统时间&#xff08;date&#xff09; 六、显…...

【HUAWEI】单臂路由

目录 ​ &#x1f96e;写在前面 &#x1f96e;2.1、拓扑图 &#x1f96e;2.2、操作思路 &#x1f96e;2.3、配置操作 &#x1f363;2.3.1、LSW4配置 &#x1f363;2.3.2、R2配置 &#x1f363;2.3.3、测试网络 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &…...

安全学习_开发相关_Java第三方组件Log4jFastJSON及相关安全问题简介

文章目录 JNDI&#xff1a;(见图) Java-三方组件-Log4J&JNDILog4J&#xff1a;Log4j-组件安全复现使用Log4j Java-三方组件-FastJsonFastJson&#xff1a;Fastjson-组件安全复现对象转Json(带类型)Json转对象Fastjson漏洞复现&#xff08;大佬文章 JNDI&#xff1a;(见图) …...

零代码编程:用ChatGPT批量自动下载archive.org上的音频书

http://archive.org 是一个神奇的网站&#xff0c;可以下载各种古旧的软件、书籍、音频、视频&#xff0c;还可以搜索各个网站的历史网页。 比如说&#xff0c;一些儿童故事音频就可以在http://archive.org下载到&#xff0c;可以用来做英语听力启蒙用。 举个例子&#xff0c…...

力扣用队列实现栈

自己写的栈&#xff0c;再让其他函数去调用自己写的栈 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;//单链表QDataType data;//放数据 }QNode;typedef struct Queue {QNode* phead;//头节点QNode* ptail;//尾节点QDataType size; //统计有多少节…...

一朵华为云,如何做好百模千态?

点击关注 文丨刘雨琦、郝鑫 2005年华为提出网络时代的“All IP”&#xff0c;2011年提出数字化时代的“All Cloud”&#xff0c;2023年提出智能时代的“All Intelligence”。 截至目前&#xff0c;华为的战略升级经历了三个阶段。 步入智能化&#xff0c;需要迎接的困难依然…...

华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 Docker

华为云云耀云服务器L实例评测 &#xff5c; 实例使用教学之软件安装&#xff1a;华为云云耀云服务器环境下安装 Docker 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器是什么华为云云耀云…...

小程序编译器性能优化之路

作者 | 马可 导读 小程序编译器是百度开发者工具中的编译构建模块&#xff0c;用来将小程序代码转换成运行时代码。旧版编译器由于业务发展&#xff0c;存在编译慢、内存占用高的问题&#xff0c;我们对编译器做了一次大规模的重构&#xff0c;采用自研架构&#xff0c;做了多线…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南&#xff0c;适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者&#xff0c;都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...