引言:从TF-IDF到Prompt-Tuning(提示词微调),NLP的四次变革
自然语言处理(NLP)技术从最早的手工特征设计到如今的Prompt-Tuning,经历了四个重要阶段。随着技术的不断发展,我们的目标从"更高精度"逐渐转向"更少监督"甚至"无监督"。本篇文章将带你全面解析NLP任务的四大范式,并剖析Fine-Tuning和Prompt-Tuning的核心原理。
1. NLP四种范式的进阶历程
1.1 第一范式:传统机器学习模型的起点
• 核心特征:
• 基于手工设计特征(如TF-IDF、n-gram),并结合朴素贝叶斯、支持向量机等经典算法完成任务。
• 案例:
假设要解决文本分类任务(如垃圾邮件识别),可以用TF-IDF提取邮件关键词特征,结合朴素贝叶斯判断一封邮件是否为垃圾邮件。
• 优点:
• 简单高效,适合小规模数据集。
• 计算成本低,模型易解释。
• 缺点:
• 特征工程依赖人工设计,难以扩展到复杂任务。
• 无法捕获上下文语义信息,模型精度有限。
1.2 第二范式:深度学习模型的崛起
• 核心特征:
• 使用分布式词表示(如word2vec、GloVe)将单词编码为语义向量。
• 借助LSTM、GRU等深度学习模型,捕获上下文依赖关系。
• 案例:
在情感分析任务中,用word2vec将"我今天很开心"转化为向量后,使用LSTM网络提取句子特征,再预测句子情感。
• 优点:
• 自动学习特征,无需复杂的手工设计。
• 能捕获一定的上下文语义关系。
• 缺点:
• 依赖大规模标注数据集,成本高昂。
• 模型复杂度提升,对硬件资源要求高。
1.3 第三范式:预训练模型与微调的黄金时代
Fine-Tuning(微调) 属于一种迁移学习方式,在自然语言处理(NLP)中,Fine-Tuning(微调) 是用于将预训练的语言模型适应于特定任务或领域。**Fine-Tuning(微调)**的基本思想是采用已经在大量文本上进行训练的预训练语言模型,然后在小规模的任务特定文本上继续训练它.
经典的Fine-Tuning(微调) 方法包括将预训练模型与少量特定任务数据一起继续训练。在这个过程中,预训练模型的权重被更新,以更好地适应任务。所需的Fine-Tuning(微调) 量取决于预训练语料库和任务特定语料库之间的相似性。如果两者相似,可能只需要少量的Fine-Tuning(微调) ,如果两者不相似,则可能需要更多的Fine-Tuning(微调).
但是,在大多数下游任务微调时,下游任务的目标和预训练的目标差距过大导致提升效果不明显(过拟合),微调过程中需要依赖大量的监督语料等等。至此,以GPT3、PET等为首的模型提出一种基于预训练语言模型的新的微调范式--Prompt-Tuning.该方法的目的是通过添加模板的方法来避免引入额外的参数,从而让模型可以在小样本(few-shot)或者零样本(zero-shot)场景下达到理想的效果。
• 核心特征:
• 使用大规模预训练模型(如BERT、GPT)学习通用语言表示,通过**Fine-Tuning(微调)**完成特定任务。
• 案例:
在命名实体识别任务中,加载预训练好的BERT模型,微调后即可高效完成"识别句子中的地名、人名"等任务。
• 优点:
• 小数据集即可实现高精度。
• 模型捕获了丰富的语言知识,表现优于传统方法。
• 缺点:
• 模型体积庞大,对计算资源要求高。
• 不同任务需要单独微调,效率较低。
1.4 第四范式:Prompt-Tuning的崭新未来
在大多数下游任务微调时,下游任务的目标和预训练的目标差距过大导致提升效果不明显(过拟合),微调过程中需要依赖大量的监督语料等等。至此,以GPT3、PET等为首的模型提出一种基于预训练语言模型的新的微调范式--Prompt-Tuning (提示微调).该方法的目的是通过添加模板的方法来避免引入额外的参数,从而让模型可以在小样本(few-shot)或者零样本(zero-shot)场景下达到理想的效果。
Prompt-Tuning **(提示微调)**主要解决传统Fine-Tuning方式的两个痛点:
- 降低语义偏差:预训练任务主要以MLM为主,而下游任务则重新引入新的训练参数,因此两个阶段目标差异较大。因此需要解决Pre-Training(预训练) 和Fine-Tuning(微调) 之间的Gap(gap就是差距的意思)。
- 避免过拟合:由于Fine-Tuning阶段需要引入新的参数适配相应任务,因此在样本数量有限的情况下容易发生过拟合,降低模型泛化能力。因此需要解决预训练模型的过拟合能力。
prompt顾名思义就是"提示"的意思,应该有人玩过你画我猜这个游戏吧,对方根据一个词语画一幅画,我们来猜他画的是什么,因为有太多灵魂画手了,画风清奇,或者你们没有心有灵犀,根本就不好猜啊!这时候屏幕上会出现一些提示词比如3个字,水果,那岂不是好猜一点了嘛,毕竟3个字的水果也不多呀。看到了吧,这就是prompt的魅力.
基于Fine-Tuning的方法是让预训练模型去迁就下游任务,而基于Prompt-Tuning (提示微调) 的方法可以让下游任务去迁就预训练模型, 其目的是将Fine-tuning的下游任务目标转换为**Pre-Training(预训练)**的任务。那么具体如何工作呢?我们以一个二分类的情感分析为例子,进行简单理解:
- eg: 定一个句子
[CLS] I like the Disney films very much. [SEP]
- 传统的Fine-tuning方法: 将其通过BERT的Transformer获得
[CLS]
表征之后再喂入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative),因此需要一定量的训练数据来训练。 - Prompt-Tuning执行步骤:
- 1.构建模板(Template Construction): 通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有
[MASK]
标记的模板。例如It was [MASK].
,并拼接到原始的文本中,获得Prompt-Tuning的输入:[CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]
。将其喂入BERT模型中,并复用预训练好的MLM分类器(在huggingface中为BertForMaskedLM),即可直接得到[MASK]
预测的各个token的概率分布。 - 2.标签词映射(Label Word Verbalizer) :因为
[MASK]
部分我们只对部分词感兴趣,因此需要建立一个映射关系。例如如果[MASK]
预测的词是"great",则认为是positive类,如果是"terrible",则认为是negative类。 - 3.训练:根据Verbalizer,则可以获得指定label word的预测概率分布,并采用交叉信息熵进行训练。此时因为只对预训练好的MLM head进行微调,所以避免了过拟合问题。
- 1.构建模板(Template Construction): 通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有
注意思考:不同的句子应该有不同的template和label word,没错,因为每个句子可能期望预测出来的label word都不同,因此如何最大化的寻找当前任务更加合适的template和label word是Prompt-tuning非常重要的挑战。
其实我们可以理解,引入的模板和标签词本质上属于一种数据增强,通过添加提示的方式引入先验知识。
• 核心特征:
• 借助Prompt将任务转化为语言模型擅长的填空或问答问题。
• 案例:
对于情感分析任务,用"这句话的情感是[MASK]"形式提示模型,BERT通过填空即可直接预测"积极"或"消极"。
• 优点:
• 无需微调整个模型,仅需优化Prompt模板。
• 极大减少标注数据需求,适合少样本甚至零样本学习。
• 缺点:
• 设计高质量Prompt模板需要领域知识。
• 对复杂任务的适配能力有待提升。
1.5 Prompt-Tuning **(提示微调)**技术发展历程
Prompt-Tuning自GPT-3被提出以来,从传统的离散、连续的Prompt构建、走向面向超大规模模型的In-Context Learning、Instruction-tuning和Chain_of_Thought.
2. Fine-Tuning模型微调的核心原理
2.1 什么是Fine-Tuning?
• 定义:
基于预训练模型,通过有监督微调适配特定任务。Fine-Tuning是第三范式的核心技术。
• 训练流程:
-
预训练阶段: 在大规模通用语料库(如Wikipedia)上无监督训练,学习通用语言表示。
-
微调阶段: 在下游任务数据上有监督微调,调整模型参数适配任务需求。
2.2 Fine-Tuning优缺点
• 优点:
• 小数据集即可达高精度,显著降低标注成本。
• 能适配多种任务,如文本分类、翻译、问答等。
• 缺点:
• 每个任务需要单独微调一个模型,适配效率低。
• 模型训练成本高,对硬件资源要求大。
3. Prompt-Tuning模型微调原理揭秘
3.1 什么是Prompt-Tuning?
• 定义:
Prompt-Tuning通过设计提示词将下游任务转化为语言模型擅长的生成任务。例如,"这句话的情感是[MASK]"将情感分析转化为填空任务。
3.2 Prompt-Tuning的实现流程
- 任务转化:
• 将任务转化为填空、问答等语言生成问题。
• 示例:"今天的天气如何?它是[MASK]"。
- 模板优化:
• 优化Prompt模板提升任务适配性,可以手动设计或自动优化。
- 轻量训练:
• 仅优化少量Prompt相关参数,而非整个模型。
3.3 优缺点
• 优点:
• 训练效率高,适合少样本甚至零样本任务。
• 极大降低对计算资源的需求。
• 缺点:
• 设计Prompt模板需要领域知识,复杂任务适配性不足。
4. 未来展望:从少监督到无监督,NLP的未来趋势
• 更少监督,更多迁移:
Prompt-Tuning极大减少了对标注数据和计算资源的需求,将引领未来NLP的发展。
• 从少样本到零样本:
NLP模型的泛化能力将持续提升,通过高效Prompt设计,模型在无标注数据情况下即可完成任务。
• 跨领域应用扩展:
未来的预训练模型将结合更多领域数据,适配更广泛的任务场景。
总结
• NLP的四大范式从传统机器学习到Prompt-Tuning,展现了技术从高监督到少监督甚至无监督的进化路径。
• Fine-Tuning是第三范式的核心技术,为小数据集带来高精度,但效率较低。
• Prompt-Tuning作为第四范式的代表,通过减少训练需求,实现了轻量化适配,展现了NLP的未来趋势。
当前大模型阶段,提示词工程已经很主流了,下一篇文章我们将会详细的讲解 Prompt-Tuning,敬请关注!
你是否尝试过Prompt-Tuning?它在你的任务中表现如何?欢迎在评论区留言分享你的看法!