本文主要是介绍Prompt Tuning 和instruct tuning,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Prompt Tuning 是啥?
prompt的思想是,把下游任务的输入转化为预训练模型的原始任务。
以bert作为举例,假设任务是文本分类。“今天天气很好。”我们想判断一下这句话的情感是正面还是负面
fine-tune的方法是在bert之后接一个head,然后调整整个模型。
prompt 的方法是把下游任务转化为预训练任务,我们知道bert的预训练任务是MLM,于是把
“今天天气很好。”转化为“今天天气很好。我很[mask][mask]”,我们希望bert预测出"开心"两个字。然后对“开心”映射到正面情感。
prompt-tuning:我们知道prompt的方法是把下游任务转化为预训练任务,但是怎么转化效果会好呢。比如如下几种prompt:
1.“今天天气很好。我很[mask][mask]”
2.“今天天气很好。我非常[mask][mask]”
3.“今天天气很好。我的心情是[mask][mask]”
我们并不知道哪种prompt是最好的,于是我们希望模型可以自己去学习,于是就提出了prompt-tuning(提示微调),该方法会固定预训练模型的参数(与fine-tune不同之处),增加额外的参数来训练,常见的方法有prompt-tuning, prefix-tuning, p-tuning,与fine-tune不同,可训练参数一般都是加载embbeding层,而不是加在最后
提示学习Prompt Tuning:面向研究综述 - 知乎
huggingface上的一篇博文也解释的很清楚
Prompt Tuning 出自哪篇论文?
《The Power of Scale for Parameter-Efficient Prompt Tuning》
instruct tuning
出自《FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS》
instruct tuning (指令微调)是特指对数据有要求的微调,它不是一种微调方法,而是对用一种特定数据来微调的称呼。这种数据的特点是,input是一条指令(或者要求,命令)
例如:(这种数据是为了让模型学会听从指令)
1.帮我写一篇关于XX主题的文章
2. 将下列内容翻译成英语:{具体内容}
3.根据下面的聊天信息回答问题,{聊天信息},{问题}
而常规数据通常如下: (这种数据更像于是让模型理解知识)
1. 极昼是什么?
2. 怎么减肥
3.熬夜对健康有什么影响?
对比以上两种数据,可以看出特点,指令数据一般是在要求模型干一件事,而常规数据通常是在问模型“是什么”
这篇关于Prompt Tuning 和instruct tuning的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!