LLM基础模型系列:Prompt-Tuning

------->更多内容,请移步“鲁班秘笈”!!<------

大型预训练语言模型的规模不断扩大,在许多自然语言处理 (NLP) 基准测试中取得了最先进的结果。自GPT和BERT开发以来,标准做法一直是在下游任务上微调模型,这涉及调整网络中的每个权重(即模型调优)。但是,随着模型变得越来越大,为每个下游任务存储和提供模型的优化副本变得不切实际。

一个有吸引力的替代方案是在所有下游任务中共享一个冻结的预训练语言模型,其中所有权重都是固定的。冻结模型可以通过“上下文”学习来执行不同的任务。通过这种方法,用户通过提示设计为给定任务启动模型,即手工制作带有手头任务描述或示例的文本提示。例如,为了给模型进行情感分析,可以在输入序列之前附加提示“下面的电影评论是正面的还是负面的?”,“这部电影太棒了!”。

在任务之间共享相同的冻结模型大大简化了服务,并允许高效的混合任务推理,但不幸的是,文本提示需要手动设计,即使是精心设计的提示,也会影响精确性,而本文带来的技术将破解手动的难题。

微调与转移学习

Prompt Tuning是通过训练一组提示参数来适应LLMs新任务的过程。这些提示被附加到输入文本之前,以指导生成LLM所需的输出。它在每个样本之前加入了一些虚拟的Token,这些Token用于不同任务的Embedding。

为了更加直观的简述Prompt Tuning。之前先看下面的两张图,第一张图是全微调,也就是说准备好的样本数据,然后继续二次微调模型的参数。

微调

第二张图是将大模型的参数冻结,然后针对不同的任务训练前缀(粉红色的部分)。下面的训练一个批次是4条样本。

Prompt Tuning

Prompt Tuning的超参数们

那么在样本之前要填充多少的虚拟Token才是最为合适的呢?以T5为例,针对不同任务的标准模型微调实现了强大的性能,但需要为每个特定的任务准备分支副本。

假定使用T5系列的模型,每个调整后的模型副本需要11B参数。相比之下,采用Prompt Tuning技术之后,若填充的虚拟Token为5,那么每个任务只需要20480个参数,减少了5个数量级以上。

回头看看采用Prompt Tuning技术的T5,随着大模型规模的增加,表现不断地提升,而且这个过程中基座模型是冻结的,只有一份。仔细观察下图会发现,其实这种技术在大参数模型还是比较合适的,而在小参数模型中的表现一般,注意黄色(模型微调)和绿色(Prompt Tuning)在不同参数规模的模型的间隙。

上面这幅图是在各种不同的情况下研究一些超参数对这种技术的性能影响。值得注意的是,这种技术的质量随着模型大小的增加而稳定提高。在所有研究中,特大号参数的模型对超参数选择最为稳健。

  • a图说明增加到 20多个虚拟Token通常会带来很大的提升,但是对于特大号的模型而言,增加一个虚拟的Token就足够了。是不是很神奇!

  • b表明随机均匀初始化参数数值落后于使用采样词汇或类标签嵌入的更“高级”初始化,但这种差异在特大号模型下消失。

  • c表明LM Adaptation在跨领域的表现优越,即使在下游任务目标中添加了标记

  • d展示较长的适应步伐(Step)通常会带来更大的收益

Prompt Tuning的优点

采用prompt tuning技术的好处在于它可以自动从一个新的模型中学习最佳的Prompt,就是如何引导大模型能够根据新的任务,给出针对性的回答。之前网上有很多教程,教读者如何学会写高效的Prompt,采用这种技术将自动化的训练对应任务的虚拟Token,然后自动的找出最佳的引导方法。

Prompt 调优保留了模型调优的强大任务性能,同时保持预训练模型的冻结状态,从而实现高效的多任务服务。

大白话说,就是你和蚂蚁沟通,你可以采用很多方式,但是你也可以“烘烘哈衣,@@#¥……”,结果蚂蚁听懂了。“烘烘哈衣,@@#¥……” 就是那些训练出来的虚拟Token,人很难听懂。这么说,有点和禅宗的大喝一声,用力一棒异曲同工。最重要的是,采用这种技术,只需要一个基座模型,对于模型迁移具有很强的弹性。


http://www.ppmy.cn/devtools/59457.html

相关文章

开发指南047-前端模块版本

平台前端框架内置了一个文件version.vue <template> <div> <br> 应用名称: {{name}} <br> 当前版本&#xff1a;{{version}} <br> 服务网关: {{gateway}} </div> </template> <scrip…

RocketMQ~架构与工作流程了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…

移动UI:具备什么特征,可以被认定为科技风格。

移动UI设计在科技风格上通常具备以下特征&#xff1a; 1. 清晰简洁的排版&#xff1a; 科技风格的移动UI通常采用清晰简洁的排版&#xff0c;注重信息的层次感和结构化&#xff0c;以便用户能够快速、直观地获取所需信息。 2. 几何形状和线条&#xff1a; 科技风格的移动UI常…

java vue 做的一个商城发布系统

下面是一个基本的商城发布系统的关键代码和配置示例&#xff0c;使用Java和Vue实现&#xff1a; 后端代码&#xff08;Java&#xff09;&#xff1a; 创建商品实体类&#xff08;Product.java&#xff09;&#xff1a; public class Product {private String id;private Str…

《征服数据结构》二叉树

摘要&#xff1a; 1&#xff0c;二叉树的介绍 2&#xff0c;树的常见术语 3&#xff0c;二叉树的特性 1&#xff0c;二叉树的介绍 二叉树(Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构&#xff0c;两个分支分别是左子树和右子树。除了根节点以…

本人学习保存-macOS打开Navicat提示「“Navicat Premium”已损坏,无法打开。 你应该将它移到废纸篓。」的解决方法

新安装了macOS Ventura&#xff0c;打开Navicat Premium&#xff0c;发现会提示&#xff1a; “Navicat Premium”已损坏&#xff0c;无法打开。 你应该将它移到废纸篓。 遇到这种情况&#xff0c;千万别直接移到废纸篓&#xff0c;是有办法解决的。在这里记录一下解决方案。 …

Linux C++ 052-设计模式之享元模式

Linux C 052-设计模式之享元模式 本节关键字&#xff1a;Linux、C、设计模式、享元模式 相关库函数&#xff1a; 概念 享元模式&#xff08;FlyWeight&#xff09;&#xff0c;运用共享技术有效的支持大量细粒度的对象。 典型的享元模式的例子为文书处理器中以图形结构来表…

视频播放器的问题

<template><div class"app-container"><el-form :model"queryParam" ref"queryForm" :inline"true"><el-form-item label"题目ID&#xff1a;"><el-input v-model"queryParam.id" cle…

安全面试经验分享 | 某安全厂商北京安服工程师实习岗

所面试的公司&#xff1a;某安全厂商 所在城市&#xff1a;北京 面试职位&#xff1a;安服工程师实习岗 面试过程&#xff1a; 腾讯会议&#xff08;视频&#xff09; 面试过程&#xff1a;整体流程就是自我介绍加上一些问题问题balabalabala。。。由于面的岗位是安服工程师…

UNiapp微信小程序Ucharts

效果图如下 以上为加载接口所得数据的玫瑰图与折线图 具体步骤如下 1&#xff0c;将插件导入Hbuiler 所需要的项目中&#xff08;插件地址&#xff1a;秋云 ucharts echarts 高性能跨全端图表组件 - DCloud 插件市场&#xff09; 2&#xff0c;导入成功是这样的 3&#xff0c…

Dataset for Stable Diffusion

1.Dataset for Stable Diffusion 笔记来源&#xff1a; 1.Flickr8k数据集处理 2.处理Flickr8k数据集 3.Github&#xff1a;pytorch-stable-diffusion 4.Flickr 8k Dataset 5.dataset_flickr8k.json 6.About Train, Validation and Test Sets in Machine Learning Tarang Shah …

简谈设计模式之桥接模式

桥接模式是一种结构型设计模式, 它将抽象部分和它的实现部分分离, 使它们可以独立变化. 这意味着可以改变它的抽象和它的实现, 而不会相互影响 桥接模式结构 抽象 (Abstraction): 定义抽象类, 并包含一个对实现类对象的引用拓展抽象 (Refined Abstraction): 拓展抽象类, 通过…

堆、栈和队列(数据结构)

堆、栈和队列&#xff08;数据结构&#xff09; 这里写目录标题 堆、栈和队列&#xff08;数据结构&#xff09;**栈****队列**堆&#xff08;Heap&#xff09;&#xff08;&#xff09;队列&#xff08;Queue&#xff09;&#xff08;FIFO&#xff09;栈&#xff08;Stack&…

搜维尔科技:通过 Xsens MVN Link 套装测试动作捕捉动画,由虚幻引擎5渲染

通过Xsens MVN Link套装测试动作捕捉动画&#xff0c;由虚幻引擎5渲染 搜维尔科技&#xff1a;通过 Xsens MVN Link 套装测试动作捕捉动画&#xff0c;由虚幻引擎5渲染

FPGA实训报告DAY 1(Verilog HDL)

实习日志与总结 日期&#xff1a;2024 年 7 月 10 日 星期三 姓名&#xff1a;XXX 一、实习日志 上午 9:00 - 9:30 按时到达工位&#xff0c;参加部门早会&#xff0c;了解了今天的实习任务和目标&#xff0c;即初步学习 FPGA 简介和 Verilog 基础语法知识。 9:30 - 10:30…

Flask 静态文件处理

1. 静态文件目录 Flask 默认会在应用的根目录下寻找一个名为 static 的文件夹&#xff0c;并将其作为静态文件的存储目录。你可以通过 static_folder 参数来指定不同的静态文件目录路径。 from flask import Flask app Flask(__name__, static_foldermy_static) 2. 静态文件 …

图扑低代码数字孪生 Web SCADA 智慧钢厂

2024 年 4 月&#xff0c;中国钢铁工业协会发布了《钢铁行业数字化转型评估报告&#xff08;2023年&#xff09;》&#xff08;以下简称《报告》&#xff09;。《报告》指出&#xff0c;绝大部分钢铁企业建立了数字化转型相关管理组织和团队&#xff0c;并加强其规划落实&#…

LDAPWordlistHarvester:基于LDAP数据的字典生成工具

关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具&#xff0c;该工具可以根据LDAP中的详细信息生成字典列表文件&#xff0c;广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…

CentOS 7 网络配置

如想了解请查看 虚拟机安装CentOS7 第一步&#xff1a;查看虚拟机网络编辑器、查看NAT设置 &#xff08;子网ID&#xff0c;网关IP&#xff09; 第二步&#xff1a;配置VMnet8 IP与DNS 注意事项&#xff1a;子网掩码与默认网关与 第一步 保持一致 第三步&#xff1a;网络配置…

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南&#xff1a;如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…