解密Prompt系列2. 冻结Prompt微调LM:T5  PET  LM-BFF
这一章我们介绍固定prompt微调LM的相关模型他们的特点都是针对不同的下游任务设计不同的prompt模板在微调过程中固定模板对预训练模型进行微调。以下按时间顺序介绍支持任意NLP任务的T5针对文本分类的两篇PET和LM-BFF。在小样本场景固定prompt微调LM对比常规微调的优点在分类任务上比较直观我能想到的有三点(在下面PET中会细说无需额外的分类层的参数引入微调成本低标签词本身前置语义信息的引入无需重头学习可类比MRC微调和预训练的Gap更小任务转化成LM任务后一致性高T5paper: 2019.10 Exploring the Limits of Transfer Learning with a Unified Text-to-Text TransformerTask: EverythingPrompt: 前缀式人工promptModel: Encoder-DecoderTake Away: 加入前缀Prompt所有NLP任务都可以转化为文本生成任务T5论文的初衷如标题所言是为了全面公平的对比不同预训练和迁移策略的贡献和效果避免在A模型上效果不好的预训练目标在B上可能效果更优的情况对比项包括预训练目标语言模型乱序还原MLM(不同的掩码率)Span掩码, etc预训练数据构建C4数据集从C4抽取不同领域语料来训练模型架构: Encoder-DecoderDecoder OnlyEncoder Only迁移策略逐步解冻全量微调局部微调其他多任务预训练模型大小说句题外话再看论文结果发现Encoder-Decoder的模型结果SpanMLM损失函数效果最好。不知道这是否是谷歌押注T5而没有像OpenAI一样选择Deocder结构的原因。具体对比结果这里不细说本文只关注T5为了公平对比以上差异提出的Text2Text的通用建模框架用相同的模型相同的预训练相同的损失函数和解码方式把文本分类摘要翻译QA都转化成了生成任务而转化的方式就是通过加入前缀prompt。针对不同的下游微调任务我们看下T5提出的Text2Text是如何构建prompt模板的WMT英语到德语的翻译任务输入是’translate English to German:‘input, 输出是翻译结果CNN Mail摘要任务: 文本摘要任务输入是‘Summarize:’input输出是摘要MNLI任务输入是’mnli hypothesis:‘假设‘premise:’叙述输出是contradiction, entailmentneutralSTS文本相似任务输入是’stsb sentence1:’input1‘sentence2’input2, 输出是1~5的打分离散化问答SQuAD任务输入是’question:提问 ‘context:’上下文输出是答案不难发现在T5的时代prompt模板的构建还比较粗糙更多是单纯的任务名称任务类型来区分不同的NLP任务只是让模型在解码时多一层条件概率既给定不同prompt前缀在解码时采用不同的条件概率attention。并没有太多从语义和上下文关联的角度去进行prompt模板的构建我猜这是T5在论文中提到他们尝试了不同的prompt模板发现效果影响有限的原因哈哈因为都不太好所以没啥差异不不能否定T5在通用LM上做出的贡献~PET-TC(a)paper a: 2020.1 Exploiting Cloze Questions for Few Shot Text Classification and Naturalprompt: 单字完形填空式人工PromptTask Text ClassificationModel: Roberta-large, XLM-RTake Away: 加入完形填空式Prompt把文本分类任务转化成单字MLM和第一章的LAMA相似PET-TC也是把输入映射成完形填空式的prompt模板对掩码词进行预测作为分类标签。不过PET没有直接使用prompt而是用了半监督的方案。用多个prompt模板微调模型后对大规模无监督数据进行预测然后在伪标签上进行常规的模型微调哈哈绕了一个圈最后还是输出的常规微调的模型。我大胆猜测作者很看好prompt范式在微调时引入的前置语义信息以及无额外参数的设定但是对不同prompt和answer模板带来的不稳定性感到头疼于是搞出这么个折中的方法~prompt Answer EngineerPET针对每个数据集人工设计了prompt模板和Answer词对标签的映射。针对单双文本输入分别举两个例子以下ab为原始输入文本_位置为MASK词单输入Yelp评论1~5星打分标签词分别为terrible, badokaygoodgreat双输入AG’s News新闻四分类问题, 标签词分别为分类名称WorldsSports, Business, Science/Tech,可以看出作者构建prompt模板的思路是尽可能还原文本所在的上下文场景Answer词的选取是一对一的构建模式每个label只选取一个词来表示。固定prompt微调LM完形填空式的prompt模板在微调时的优势我认为主要有以下三点没有额外参数的引入常规微调需要引入hidden_size * label_size的额外参数classify head作为每个标签对应的空间表征这部分需要针对下游任务重头学习。而完形填空的token是在原始vocab中的于是只需要调整标签词的预训练表征让它在label上线性可分即可前置语义信息的引入因为标签词的选取本身符合label的原始语义例如以上YELP评论打分中的5个形容词本身就是隐含了评论质量信息的所以会引入部分前置信息避免重头学习这一点和MRC有些相似预训练和微调的一致性高都是解决完形填空问题学习目标一致微调的损失函数是交叉熵作者没有引入额外参数而是把MASK位置上模型的预估logits在label上归一化来得到分类预测。例如上面的AG新闻分类任务先得到MASK位置worldssportsbusinessscience这四个词的预测logits然后归一化得到预估概率再和分类标签计算交叉熵。为了避免灾难遗忘作者在下游任务微调时加入了预训练的MLM任务于是微调的损失函数如下L(1−α)LCEαLMLM半监督蒸馏这部分的设计可以和prompt的部分分开来看是一个半监督方案。以上每个任务对应的多个prompt模板分别固定prompt微调LM得到一版模型然后在大量的未标注样本上进行预测再对多个模型的预测值进行加权得到伪标签。最终在为标签上使用常规的微调方案加classifier head训练模型作为输出这一步类比知识蒸馏。所以PET最后输出的还是常规的监督微调模型Prompt只是被当做了一种半监督方案。效果上在小样本的设定上比直接使用监督微调都有一定的效果提升。作者还做了iPET对以上过程通过迭代逐步扩大数据集提高伪标签准确率的方案不过这么麻烦的实现一点都不适合我这种懒人哈哈就不细说了~针对PET有几点疑问完形填空类的prompt在微调过程中可能的灾难遗忘是否因为对label词的微调偏离了词在原始文本中语义表征以及和其他词的相对位置prompt模板差异带来的效果差异尚未解决人工构建的prompt模板不一定是最优的Answer词单token以及和label一一对应的设定限制性较强。这部分在后面的续作里作者做了改良后面介绍的几个模型大多是基于PET上述问题的改良~PET-TC(B)paper b: 2020.9 It’s not just size that matters: Small language models are also few-shot learners.Prompt 多字完形填空式人工PromptTaskText ClassificationModel: Albert-xxlarge-v2Take Away: 支持多字的完形填空Prompt效果超越GPT3这篇paper和上面的PET-TC是同一作者算是上文的续作主要优化了Answer词单token设定支持多个token作为标签词不过限制性依旧较强是预先设定任务最大的token数然后使用最大token数作为MASK数量而非动态的任意数量的MASK填充。论文对推理和训练中的多MASK填充做了不同的处理。在推理中需要向前传导K次如下图所示使用标签最大的label词长度K生成k个MASK位置对K个位置同时预估得到K个预估词选取概率最高的1个词进行填充针对填充后的新文本对剩余K-1个位置再进行预估直到所有位置都被填充分类概率由所有填充标签词的概率累乘得到p(Y−1|x)P1M(ble|x)∗P2M(terri|~x)在训练过程中为了提升效率论文使用了一次向前传导对多个位置同时完成预估这时MASK长度是所有标签的最大长度。例如情感分类问题terr##ble长度为2great长度为1这时MASK填充长度为2,great只取第一个MASK词的概率后面的忽略概率计算如下p(Y−1|x)P1M(ble|x)∗P2M(terri|~x)p(Y1|x)P1M(great|x)(1)(2)其他部分和PET基本一样这里不再重复。效果上这篇论文换成了Albert-xxlarge-v2模型和GPT-3 few-shot在superGLUE上进行效果对比。不过以下参数对比并不太合理虽然Albert是层共享参数但是推理速度并无提升12层的xxlarge模型参与计算的参数量级应该是223M*12~2B所以并不是严格意义上的小模型。调整参数后32个小样本上PET的效果也是超过同等量级甚至更大的GPT3在few-shot上的效果的LM-BFFpaper: 2020.12 Making Pre-trained Language Models Better Few-shot LearnersPrompt: 完形填空自动搜索promptTask: Text ClassificationModel: Bert or RobertaTake Away: 把人工构建prompt模板和标签词优化为自动搜索LM-BFF是陈丹琦团队在20年底提出的针对few-shot场景自动搜索模板和触发词的Prompt方案prompt模板延续了PET的完型填空形式把人工构建prompt和标签词的构建优化成了自动搜索。论文先是验证了相同模板不同标签词,和相同标签词不同模板对模型效果都有显著影响如下以下介绍自动搜索的部分标签词搜索考虑在全vocab上搜索标签词搜索空间太大在少量样本上直接微调选择最优的标签词会存在过拟合的问题。作者先通过zero-shot缩小候选词范围再通过微调选择最优标签词。如下固定prompt模板(L)作者用训练集中每个分类©的数据在预训练模型上分别计算该分类下MASK词的概率分布选择概率之和在Top-k的单词作为候选词。再结合所有分类Top-K的候选词得到n个标签词组合。这里的n和k都是超参在100~1000不等。然后在n个候选标签词组合中针对微调后在验证集的准确率选择效果最好的标签词组合。prompt模板搜索固定标签词作者使用T5来进行模板生成让T5负责在标签词前、后生成符合上下文语义的prompt指令再在所有训练样本中选择整体表现最优的prompt模板。如下, 固定二分类的标签词是great和terribleT5的模型输入为InputMASK标签对应标签词MASK让模型来完成对MASK部分的填充。现在预训练模型中通过Beam-Search得到多个模板再在下游任务中微调得到表现最好的一个或多个prompt模板以上自动搜索prompt和标签词得到的部分结果如下该说不说这种方案得到的标签词至少直观看上去比AutoPrompt合人理类不能少懂固定prompt微调LM经过以上搜素得到最优标签词组合和prompt模板后作者的微调过程模仿了GPT3的few-shot构建方式。如上图先把输入填充进prompt模板再从各个分类中各采样1个样本作为指令样本拼接进输入为待预测文本补充更丰富的上下文一起输入模型。在训练和推理时补充的指令样本都是从训练集中采样。同时为了避免加入的指令样本和待预测样本之间差异较大导致模型可能直接无视接在prompt后面的指令样本作者使用Sentence-Bert来筛选语义相似的样本作为指令样本。效果上作者给出了每类采样16个样本的小样本场景下 Roberta-Large的效果可以得到以下insights部分场景下自动模板是要优于手工模板的整体上可以打平自动搜索是人工成本的平价替代加入指令样本对效果有显著提升在16个样本的few-shot场景下prompt微调效果是显著优于常规微调和GPT3 few-shot效果的

相关新闻

音乐解锁终极指南:3分钟解密QQ音乐、网易云音乐加密文件,实现跨平台自由播放

音乐解锁终极指南:3分钟解密QQ音乐、网易云音乐加密文件,实现跨平台自由播放

音乐解锁终极指南:3分钟解密QQ音乐、网易云音乐加密文件,实现跨平台自由播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-mu…

2026/10/2 18:30:46 阅读更多 →
天龙八部GM工具:5分钟掌握游戏数据自由编辑的终极解决方案

天龙八部GM工具:5分钟掌握游戏数据自由编辑的终极解决方案

天龙八部GM工具:5分钟掌握游戏数据自由编辑的终极解决方案 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 还在为《天龙八部》单机版繁琐的升级过程而烦恼吗?想要快速体验游戏…

2026/10/13 11:02:16 阅读更多 →
DFT/FFT原理与应用:从信号处理到5G技术

DFT/FFT原理与应用:从信号处理到5G技术

1. 从音乐播放器到雷达系统:DFT/FFT为何无处不在十年前我第一次用MATLAB做音频频谱分析时,被一个现象震撼:当我把采样点数从512增加到2048时,频谱分辨率突然变得清晰锐利。这个经历让我意识到,离散傅里叶变换&#xff…

2026/10/11 17:35:41 阅读更多 →

最新新闻

机器学习入门第一性原理:线性模型核心推导与工程实践

机器学习入门第一性原理:线性模型核心推导与工程实践

1. 为什么线性模型是机器学习入门的“第一性原理”很多人学机器学习,一上来就被各种深度网络、注意力机制、Transformer 架构唬住了,觉得线性模型太简单、太基础,不值得花时间。但我带了这么多届学生、看了这么多份简历和项目,一个…

2026/10/13 11:02:04 阅读更多 →
HarmonyOS实战:用PixelMap实现图片颜色翻转与负片效果

HarmonyOS实战:用PixelMap实现图片颜色翻转与负片效果

如果你在搜索HarmonyOS开发里关于 PixelMap 的资料,看到最多的解释多半是“PixelMap是一张位图对象”。这句话没错,但基本等于没说。真正上手做图像处理时你会发现, PixelMap 既不是 Image 组件里那个能直接显示的图片,也不…

2026/10/13 11:02:04 阅读更多 →
免费绘画软件FireAlpaca完全指南:轻量替代PS/SAI的插画与动画实践

免费绘画软件FireAlpaca完全指南:轻量替代PS/SAI的插画与动画实践

1. 我为什么从 PS 和 SAI 换到 FireAlpaca 先交代背景。我一直是个靠画图吃饭的人,平时主要用 Photoshop 做商业插画和排版,但说实话,PS 对我的工作负担太重了:启动慢、吃内存、订阅费一年比一年贵。前几年还流行用 SAI&#xff0…

2026/10/13 11:02:04 阅读更多 →
级联故障风险评估:随机化学算法如何高效搜索最坏停电场景

级联故障风险评估:随机化学算法如何高效搜索最坏停电场景

做电力系统风险评估的同行,应该都遇到过这个尴尬:蒙特卡洛抽样跑了几万次,期望损失算出来漂漂亮亮,可一旦想回答“哪几组初始故障组合能把系统搞瘫”,统计结果往往是“查无此案”。原因很简单,大面积停电属…

2026/10/13 11:02:04 阅读更多 →
全链路 Trace 标签化染色与慢执行步骤智能归因

全链路 Trace 标签化染色与慢执行步骤智能归因

在传统的微服务架构中,一次 HTTP 请求通常沿着“网关 -> 业务中台 -> 缓存/数据库”的确定性静态调用拓扑展开,分布式追踪系统(如 Jaeger、Zipkin、SkyWalking)能够非常清晰地展现各服务的 RPC 耗时与依赖拓扑。 然而&#…

2026/10/13 11:02:04 阅读更多 →
C++数组指针字符串:从内存视角彻底搞懂核心难点

C++数组指针字符串:从内存视角彻底搞懂核心难点

我知道很多人第一次翻开郑莉这本《C语言程序设计》,到第六章"数组、指针和字符串"就开始心里打鼓。说实话,我当年也是这样:前面的流程控制、函数调用,照着抄总能写出来,可数组和指针一上来,什么&…

2026/10/13 11:01:04 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →