• Prompt Tuning训练过程


    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由向量替代)

  • 相关阅读:
    缓存相关问题
    maven离线模式及设置
    Qt如何在视频画面上新增车道线显示
    天翼云Serverless边缘容器下沉服务 促进企业聚焦业务创新
    DarkNet网络结构
    数据结构之图(遍历广度优先BFS和深度优先DFS)
    String的解析
    13【JSR303校验】
    samba 共享目录write permission deny问题修复 可读取内容但不可修改 删除 新增文件
    破局模块总结 -- 宁向东的清华管理学课总结
  • 原文地址:https://blog.csdn.net/qq_24729325/article/details/132673944