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

GPT2 GPT3

what is prompt

  • 综述1.Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(五星好评)

  • 综述2. Paradigm Shift in Natural Language Processing(四星推荐)

  • 综述3. Pre-Trained Models: Past, Present and Future

img

Prompt即提示学习,是继预训练+微调范式后众望所归的第四范式。在预训练+微调的范式中我们调整预训练模型来匹配下游任务数据,本质是对预训练学到的众多信息进行重新排列和筛选。而Prompt是通过引入“提示信息”,让模型回忆起预训练中学过的语言知识,也就是调整下游数据来适配预训练模型,进而把所有NLP任务都统一成LM任务。

举几个例子,以下[x]为prompt提示词,[z]为模型预测

  1. 分类任务: 相比情绪分类对应的多分类0~N的输出,Prompt会输出对应代表情绪的token

img

  1. 抽取任务

img

  1. 生成任务

img

看着非常玄妙!但其实部分原理就来自于于超大的预训练数据中包含的丰富文本知识。例如English2French的翻译任务,在预训练文本中会自然出现一些英法的对应文本如下。而提示词的加入可以理解为尝试还原模型在以下场景中的上下文(Attention)

img

那和预训练+微调的范式相比,Prompt有什么优势?

  • 微调参数量更小:这几年模型越来越大,连微调都变成了一件很奢侈的事情,而prompt出现提供了新的选择,可以freeze模型只对提示词进行微调

  • 小样本场景: 不少Prompt模型是面向zero-shot,few-shot场景设计的

  • 多任务范式统一:一切皆为LM!

Prompt模型的设计主要包含以下几个模块,

  • Pretrain Model Choice:GPT等Decoder,BERT等Encoder,BART等Encoder-Decoder

  • Prompt Engineering:离散模板(文本),连续模板(embedding)的设计。模型效果对模板的敏感性,以及人工模板设计的不稳定的和难度是需要解决的问题

  • Answer Engineering: 包括答案文本的搜索,和预测文本到标签的映射。相比分类标签,Prompt范式输出的答案多为文本,因此多了一步文本到标签的解析

  • Training Strategy:主要有4种不同类型,LM和Prompt都冻结的Tunning-free,微调LM冻结Prompt,冻结LM微调Prompt,和LM+Prompt微调

我们先按照Training Strategy的不同,来梳理下各个方向的基础模型,再进阶的前沿模型,哈哈所以得花点时间才能轮到ChatGPT。第一章介绍Tunning-Free Prompt,在下游任务使用中LM和Prompt都是冻结的,不需要针对下游任务进行微调,可以用于Zero-shot和few-shot场景,主要介绍下GPT2,GPT3,LAMA和AutoPrompt。

GPT2

  • GPT2:Language Models are Unsupervised Multitask Learners,2019.2

  • 任务:NLG

  • Prompt: Discrete + Hand crafted Prompt

  • 核心:Language Model本身就是无监督的多任务学习

在前BERT时代,通用文本表征-GenSen就探索过通过多任务得到在不同下游任务中泛化能力更好的文本表征,而后BERT时代,MQPN,MTDNN等模型也探索过如何通过多任务学习得到更加通用的大模型。

GPT2更往前迈了一步,它认为如果语言模型足够优秀,则在拟合P(output|input)的过程中,对p(output|input,task)也会进行学习,因为NLP任务信息本身就会在丰富的预训练预料中出现,例如上面我们举的翻译的case。和GPT相比,GPT2的创新就是在“LM是无监督多任务”这个观点上,所以GPT2的评测是基于无finetune的zero-shot场景进行的,旨在证明足够优秀的语言模型是可以不经过微调直接用在不同的下游场景中的。

那如何让模型针对不同的任务给出预测呢?作者通过在原始Input上加入任务相关提示词的方式,这不prompt就来了!举个栗子

  • Translation:English = 输入 French = ?

  • Summarization:文章 + TL;DR:?,这里TL;DR是Too Long; Didn't Read的缩写,可类比咱的‘一言以蔽之‘,会出现在大段文本的末尾作为总结升华,或者对话中

几年前看GPT2的论文,只觉得模型更大了(评估是用的1542M的版本是Bert-large的5倍),样本更多了,zero-shot的能力挺新奇但是效果差点意思。如今从Prompt的角度重读,GPT2更像是在探索模型zero-shot能力的时候不小心推开了prompt的大门,从最直观的视角构建了Prompt提示词,也就是类似的任务在常规文本中是以什么形式(关键词)出现的,就以该形式构建文本输入即可~

除此之外GPT2对模型的微调以及构造了更大质量更高的数据集这里就不细说了~

GPT3

  • GPT3: Language Models are Few-Shot Learners, 2020.5

  • Making pre-trained language models better few-shot learners

  • 任务:无所不能

  • Prompt: Discrete + Hand crafted Prompt + Prompt Augmentation

  • 核心:大力出奇迹!175B大模型在few-shot,zero-shot的模型表现甚至可以比肩微调

GPT3是GPT2的延续,一方面旨在进一步提高模型的zero-shot能力,方法简单粗暴加参数就完事了!175Billion的参数首次证明了规模的量变会带来质变![Ref8]详细论证了大模型会带来一些奇迹般的能力,包括更强的复杂推理,知识推理,和样本外泛化能力!

另一方面GPT3在few-shot场景做了很多尝试,提出了自带神秘光环的in-context learning,可以被归类为multi-prompt中的prompt augmentation方案~

175Billon!

img

GPT3的模型结构延续GPT系列,但测试了不同模型参数量级的8个模型在不同下游任务上的效果,从125M到175B,模型效果在zero/one/few-shot的设定下都有稳步提升。在TriviaQA等任务上175B的GPT3甚至超越微调模型拿到了SOTA,算是预训练模型超越微调模型的第一次。但在NLI(判断两个句子是相似,对立,中性),WiC(判断一个单词是否在两个句子中含义相同)两个任务上GPT3的表现非常差,看起来似乎对涉及两个句子间逻辑推断的任务并不擅长。或许因为类似两个文本的逻辑推断在预训练文本中未出现过?

针对GPT3变态的模型大小,咱不聊技术垄断,OpenAI好有钱blabla我更好奇的是增长的参数究竟是如何提升模型能力?是更多的参数可以记忆更多的知识?还是更大的向量空间可以让模型学到更加线性可分的空间表征,使得下游任务对信息的解码更加简单,所以在few-shot场景有更好的表现?还没看到较严谨的论证,有知道的盆友求答疑解惑

In-context learning

论文在GPT2已有的zero-shot的基础上,提出了In-Context learning的概念,也称类比学习,上下文学习或者语境学习。有one-shot和few-shot两种方案,对应不同的增强Prompt的构建方式。随着模型参数量级的提升,few-shot,one-shot带来的效果提升更加显著。以英翻法任务为例

  1. zero-shot: Prompt为任务描述

img

  1. one-shot: Prompt Augmentation,任务描述+一个带答案的样本

img

  1. few-shot: Prompt Augmentation,任务描述+多个带答案的样本

img

GPT3对其他NLP任务的prompt构建方案详见论文附录G~

对于Prompt Augmentation带来的效果提升,个人感觉in-context这个词的使用恰如其分,就是带答案的样本输入其实做了和任务描述相似的事情,也就是让待预测的输入处于和预训练文本中任务相关语料相似的上下文。带答案的样本比任务描述本身更接近自然的上下文语境。

不过prompt增强的构建还有许多细节待研究,例如抽取哪些样本更好,不同样本模型预测结果是否稳健,样本答案的构建方式,样本的顺序是否有影响等等。针对素材生成的场景没啥所谓,但是对抽取,分类,QA等任务,如果不同的prompt会得到显著不同的结果,就让人很头疼了~

[Ref6]的论文更深入的探究了in-context具体提供了哪些信息,作者定位到以下4类信息

  1. 输入标签的对应关系: 把样本标签改成错误标签,模型效果下降有限

  2. 标签分布:把标签改成随机单词,模型效果有显著下降

  3. 输入分布:在prompt中加入领域外文本,模型效果有显著下降

  4. 输入输出格式:改变双输入格式,在prompt中只保留标签或者只保留输入,模型效果都会有显著下降

GPT3正式推开了in-context learning的大门,模型参数也断层式的增长进入了Billon级别,后面的Flan,PaLM,LaMDA皆是这个大小。不过就效果而言GPT3在部分任务上依旧会被小模型T5吊打,以至于模型规模增长到底是否是正确的技术方向一度被质疑,直到之后的Chain of Thought出现才被逆转,这个放在后面章节再说~

相关文章:

GPT2 GPT3

what is prompt 综述1.Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(五星好评) 综述2. Paradigm Shift in Natural Language Processing(四星推荐) 综述3. Pre-Trained Models: Past, Present and Future Pro…...

2024年人工智能顶会/顶刊截稿时间汇总

人工智能顶会/顶刊汇总 ,方便查阅,持续更新,若有错误烦请大家及时提出! 一、CCF A类 简称 全称录用率频次内容官网截稿日期IJCAIInternational Joint Conference on Artificial Intelligence2020年12.55%,2021年13.9%…...

AI芯片:神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速

AI芯片: 神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速 神经网络研发加速器神经网络编译器各自实现的神经网络编译器 神经网络加速与压缩(算法层面)知识蒸馏低秩分解轻量化网络剪枝量化 通用芯片 CPU 加速x86…...

系列七、Spring Security中基于Jdbc的用户认证 授权

一、Spring Security中基于Jdbc的用户认证 & 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式,其实Spring Security中还提供了基于Jdbc的用户认证 & 授权,再说基于Jdbc的用户认证 & 授权之前,不得不说一下Spring Se…...

网络安全(网络安全)—2024自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...

python爬虫小练习——爬取豆瓣电影top250

爬取豆瓣电影top250 需求分析 将爬取的数据导入到表格中,方便人为查看。 实现方法 三大功能 1,下载所有网页内容。 2,处理网页中的内容提取自己想要的数据 3,导入到表格中 分析网站结构需要提取的内容 代码 import requests…...

Vulnhub靶机:driftingblues 2

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues2(10.0.2.18) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…...

CentOS 7 权限管理实战指南:用户组管理相关命令详解

前言 深入了解 CentOS 7 用户组管理的命令,掌握关键的用户组操作技巧。从创建和删除用户组、修改组属性,到设置组密码和管理组成员,这篇文章详细介绍了 CentOS 7 系统下常用的用户组管理命令,为读者小伙伴提供了实用而全面的指南…...

Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课

创建数据库 create database gx character set utf8mb4;连接数据库 #!/usr/bin/python3import mysql as pymysql# 打开数据库连接 db pymysql.connect(hostlocalhost,port3306,userroot,passwordzhangdapeng520,databasegx)# 使用 cursor() 方法创建一个游标对象 cursor cur…...

面试 React 框架八股文十问十答第七期

面试 React 框架八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 废弃了哪些生命…...

Docker教程

docker 安装 官方文档 wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker your-user sudo usermod -aG docker ${USER} newgrp docker # 更新docker用户组 cat /etc/group | grep docker docker --version 使用非root用户管理 帮助启动类 命令 system…...

数据结构:二叉树

数据结构:二叉树 文章目录 数据结构:二叉树1.一些特殊的二叉树1.满二叉树2.完全二叉树 2.手动创建一颗二叉树3.二叉树深度优先遍历4.二叉树层序遍历5.二叉树基础操作1.创建二叉树2.二叉树节点个数3.二叉树叶子节点个数4.二叉树的高度5.二叉树第k层节点个…...

HTTP超文本传输协议

原文链接: 1.5 万字 40 张图解 HTTP 常见面试题(值得收藏)_图解http 小林-CSDN博客https://blog.csdn.net/qq_34827674/article/details/124089736?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170521531616777224478386%252…...

视频SDK的技术架构优势和价值

为了满足企业对于高质量视频的需求,美摄科技推出了一款强大的视频SDK(软件开发工具包),旨在帮助企业轻松实现高效、稳定的视频功能,提升用户体验,增强企业竞争力。 一、美摄视频SDK的技术实现方式 美摄视…...

Invalid bound statement (not found)(xml文件创建问题)

目录 解决方法: 这边大致讲一下我的经历,不想看的直接点目录去解决方法 今天照着老师视频学习,中间老师在使用动态SQL时,直接复制了一份,我想这么简单的一个,我直接从网上找内容创建一个好了,…...

正则表达式2 常见模式

继上次的正则表达式速攻1/2-CSDN博客 还有一些常见的匹配模式可以直接使用 电子邮箱 xxxxxx.域名 的情况 \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\bhttp或者https网址 的情况 http[s]?://(?:[a-zA-Z]|[0-9]|[$-_.&]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F…...

前端对接电子秤、扫码枪设备serialPort 串口使用教程

因为最近工作项目中用到了电子秤,需要对接电子秤设备。以前也没有对接过这种设备,当时也是一脸懵逼,脑袋空空。后来就去网上搜了一下前端怎么对接,然后就发现了SerialPort串口。 Serialport 官网地址:https://serialpo…...

LeeCode前端算法基础100题(18)整数转罗马数字

一、问题详情: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1…...

【C++ 程序设计入门基础】- 第4节-函数

1、函数 函数是对实现某一功能的代码的模块化封装。 函数的定义&#xff1a; 标准函数&#xff1a; 输入 n 对整数的 a、b &#xff0c;输出它们的和。 #include <iostream> #include <windows.h> using namespace std;int add(int a,int b);//函数原型声明int…...

华为数通HCIA题库(750题)

完整题库在这里&#xff1a;华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧&#xff0c;其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是&#xff08; )。 A.它是一个单播MAC地址 B.它是一个广播…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...