Prompt Tuning训练过程

目录

[0. 入门](#0. 入门)

[0.1. NLP发展的四个阶段:](#0.1. NLP发展的四个阶段:)


Prompt工程如此强大,我们还需要模型训练吗? - 知乎

Prompt learning系列之prompt engineering(二) 离散型prompt自动构建

Prompt learning系列之训练策略篇 - 知乎

ptuning v2 的 chatglm垂直领域训练记录_路人与大师的博客-云服务器哪家好

Pretrain + Fine-tuning(Model Tuning):

对于不同的任务,都重新 fine-tune 一个新的模型,且不能共用。但是对于一个预训练的大语言模型来说,这就仿佛好像是对于每个任务都进行了定制化,十分不高效。

Prompt Tuning:

对于不同的任务,仅需要插入不同的prompt 参数,每个任务都单独训练Prompt 参数,不训练预训练语言模型,这样子可以大大 缩短训练时间,也极大的提升了模型的使用率。

0. 入门

0.1. NLP发展的四个阶段

|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| 1st阶段 feature engineering | 需要相关研究人员或者专业人士利用自己扎实的领域知识从原始数据中定义并提取有用的特征供模型学习。依赖于大量的人工 |
| 2nd阶段architecture engineering | 如何设计一个合理的网络结果去学习有用的特征,从而减少对人工构建特征的依赖。 |
| 3rd阶段objective engineering | Pre-train, Fine-tune,**更注重于目标的设计,合理设计预训练跟微调阶段的目标函数,对最终的效果影响深远。**前面两个阶段都依赖于有监督学习,但是这个阶段里的预训练可以不需要有监督的数据,极大的降低了对监督语料的依赖。 |
| 4th阶段prompt engineering | 在特定下游任务下可以通过引入合适的模版(prompt)去重构下游任务,管控模型的行为,实现zero shot或者few shot。一个合适的模版甚至可以让模型摆脱对下游特定任务数据的要求,所以如何构建一个合理有效的prompt成为了重中之重。 |

  1. 什么是Prompt

Prompt就是提示词的意思,一种 为了更好的使用预训练语言模型的知识 ,采用在输入段 添加额外的文本 的技术。

  • 目的:更好挖掘预训练语言模型的能力
  • 手段:在输入端添加文本,即重新定义任务(task reformulation)

在NLP中Prompt代表是什么呢?

  • prompt 就是给 预训练语言模型 的一个线索/提示,帮助它可以更好的理解 人类 的问题。

例如,下图的BERT/BART/ERNIE 均为预训练语言模型,对于人类提出的问题,以及线索,预训练语言模型可以给出正确的答案。

  • 根据提示,BERT能回答,JDK 是 Oracle 研发的
  • 根据 TL;DR: 的提示,BART知道人类想要问的是文章的摘要
  • 根据提示,ERNIE 知道人类想要问鸟类的能力--飞行
  1. Prompt工作流

Prompt工作流包含一下4部分:

  • Prompt模版 (Template)的构造
  • Prompt答案空间映射(Verbalizer)的构造
  • 文本代入 Template,并且使用晕训练语言模型进行训练
  • 将预测结果映射回label

step1:prompt construction【Template】

首先,我们构造一个模版,模版的作用是将输入和输出进行重新构造,变成一个新的带有mask slots的文本,

  • 定义一个模版,包含2出带填入的slots:【x】和【z】
  • 将【x】用输入文本代入

例如:

|---------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| 输入:x = 我喜欢这个电影。 模版:【x】总而言之,它是一个【z】电影 代入(prompting):我喜欢这个电影。总而言之,它是一个【z】电影 | |

step2:answer construction【verbalizer】

对于构造的prompt,需要知道预测词和label之间的关系,并且z不是任意词,需要一个mapping function将输出词与label进行映射。

例如:

|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| | |

step3:answer prediction【Prediction】

选择合适的预训练模型,进行mask slots 【z】的预测。

例如:

step4:answer-label mapping【mapping】

得到的answer,需要使用verbalizer将其映射回原本的label

例如:fantastic 映射回label

总结:

|---------------|--------|--------------------------------------------------------------------------------------------------|
| Terminology | Notion | Example |
| Input | x | I love this movie |
| Output(label) | y | |
| Template | - | 【x】overall,it was a 【z】movie |
| Prompt | x' | I love this movie. overall,it was a 【z】movie |
| Answer | z | fantastic, boring |

  1. Prompt-based Training Strategies (训练策略选择)

Prompt-based模型子啊训练中,有多重训练策略,可以选择那些模型部分训练,哪些不训练。

根据训练数据的多少分为:

|-----------|--------------------------|
| Zero-shot | 对于下游任务,没有任何训练数据 |
| Few-shot | 对于下游任务,只有很少的训练数据,例如:100条 |
| Full-shot | 有很多训练数据,例如1W多条数据 |

  1. Prompt Mining

人工构建Prompt的方式有两个弊端,人工构建Prompt和测试Prompt效果耗费时间跟精力,另一方面专业人士也不一定能通过人工的方式构建最优的prompt。为了解决这个问题,自然而然就衍生自动构建prompt的方式,自动构建prompt分为离散型 的prompt(prompt可以用具体的字符表示)和 连续型 的prompt(prompt由向量替代)

相关推荐
十启树16 分钟前
用Qt 对接‌百度AI平台
人工智能·qt·百度
极客代码39 分钟前
OpenCV Python 深度指南
开发语言·人工智能·python·opencv·计算机视觉
simplesin40 分钟前
OpenCV 1
人工智能·opencv·计算机视觉
giszz41 分钟前
【开源大模型生态9】百度的文心大模型
人工智能·开源
奈斯。zs1 小时前
yjs08——矩阵、数组的运算
人工智能·python·线性代数·矩阵·numpy
Melody20501 小时前
tensorflow-dataset 内网下载 指定目录
人工智能·python·tensorflow
DisonTangor2 小时前
阿里通义千问开源Qwen2.5系列模型:Qwen2-VL-72B媲美GPT-4
人工智能·计算机视觉
豆浩宇2 小时前
Halcon OCR检测 免训练版
c++·人工智能·opencv·算法·计算机视觉·ocr
LLSU132 小时前
聚星文社AI软件小说推文软件
人工智能
JackieZhengChina2 小时前
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
人工智能·智能手机