当前位置: 首页 > news >正文

NLP任务四大范式的进阶历程:从传统TF-IDF到Prompt-Tuning(提示词微调)

引言:从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进行微调,所以避免了过拟合问题。

注意思考:不同的句子应该有不同的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是第三范式的核心技术。

训练流程:

1. 预训练阶段: 在大规模通用语料库(如Wikipedia)上无监督训练,学习通用语言表示。

2. 微调阶段: 在下游任务数据上有监督微调,调整模型参数适配任务需求。

2.2 Fine-Tuning优缺点

优点:

• 小数据集即可达高精度,显著降低标注成本。

• 能适配多种任务,如文本分类、翻译、问答等。

缺点:

• 每个任务需要单独微调一个模型,适配效率低。

• 模型训练成本高,对硬件资源要求大。


3. Prompt-Tuning模型微调原理揭秘

3.1 什么是Prompt-Tuning?

定义:

Prompt-Tuning通过设计提示词将下游任务转化为语言模型擅长的生成任务。例如,“这句话的情感是[MASK]”将情感分析转化为填空任务。

3.2 Prompt-Tuning的实现流程

1. 任务转化:

• 将任务转化为填空、问答等语言生成问题。

• 示例:“今天的天气如何?它是[MASK]”。

2. 模板优化:

• 优化Prompt模板提升任务适配性,可以手动设计或自动优化。

3. 轻量训练:

• 仅优化少量Prompt相关参数,而非整个模型。

3.3 优缺点

优点:

• 训练效率高,适合少样本甚至零样本任务。

• 极大降低对计算资源的需求。

缺点:

• 设计Prompt模板需要领域知识,复杂任务适配性不足。


4. 未来展望:从少监督到无监督,NLP的未来趋势

更少监督,更多迁移:

Prompt-Tuning极大减少了对标注数据和计算资源的需求,将引领未来NLP的发展。

从少样本到零样本:

NLP模型的泛化能力将持续提升,通过高效Prompt设计,模型在无标注数据情况下即可完成任务。

跨领域应用扩展:

未来的预训练模型将结合更多领域数据,适配更广泛的任务场景。


总结

• NLP的四大范式从传统机器学习到Prompt-Tuning,展现了技术从高监督到少监督甚至无监督的进化路径。

• Fine-Tuning是第三范式的核心技术,为小数据集带来高精度,但效率较低。

• Prompt-Tuning作为第四范式的代表,通过减少训练需求,实现了轻量化适配,展现了NLP的未来趋势。 


当前大模型阶段,提示词工程已经很主流了,下一篇文章我们将会详细的讲解 Prompt-Tuning,敬请关注!

你是否尝试过Prompt-Tuning?它在你的任务中表现如何?欢迎在评论区留言分享你的看法!

相关文章:

NLP任务四大范式的进阶历程:从传统TF-IDF到Prompt-Tuning(提示词微调)

引言:从TF-IDF到Prompt-Tuning(提示词微调),NLP的四次变革 自然语言处理(NLP)技术从最早的手工特征设计到如今的Prompt-Tuning,经历了四个重要阶段。随着技术的不断发展,我们的目标…...

GAMES101:现代计算机图形学入门-笔记-09

久违的101图形学回归咯 今天的话题应该是比较轻松的:聊一聊在渲染中比较先进的topics Advanced Light Transport 首先是介绍一系列比较先进的光线传播方法,有无偏的如BDPT(双向路径追踪),MLT(梅特罗波利斯…...

【Db First】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 &#x1f…...

MySQL聚合查询分组查询联合查询

#对应代码练习 -- 创建考试成绩表 DROP TABLE IF EXISTS exam; CREATE TABLE exam ( id bigint, name VARCHAR(20), chinese DECIMAL(3,1), math DECIMAL(3,1), english DECIMAL(3,1) ); -- 插入测试数据 INSERT INTO exam (id,name, chinese, math, engli…...

告别照相馆!使用AI证件照工具HivisionIDPhotos打造在线证件照制作软件

文章目录 前言1. 安装Docker2. 本地部署HivisionIDPhotos3. 简单使用介绍4. 公网远程访问制作照片4.1 内网穿透工具安装4.2 创建远程连接公网地址 5. 配置固定公网地址 前言 本文主要介绍如何在Linux系统使用Docker快速部署一个AI证件照工具HivisionIDPhotos,并结合…...

通信原理第三次实验

实验目的与内容 实验操作与结果 5.1 刚开始先不加入白噪声,系统设计如下: 正弦波参数设置如下: FM设计如下: 延迟设计如下: 两个滤波器设计参数如下: 输出信号频谱为(未加入噪声)&a…...

【halcon】Metrology工具系列之 get_metrology_object_result_contour

get_metrology_object_result_contour (操作员) 名称 get_metrology_object_result_contour — 查询测量对象的结果轮廓。 签名 get_metrology_object_result_contour( : Contour : MetrologyHandle, Index, Instance, Resolution : ) 描述 get_metrology_object_result_…...

A052-基于SpringBoot的酒店管理系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

NLP信息抽取大总结:三大任务(带Prompt模板)

信息抽取大总结 1.NLP的信息抽取的本质?2.信息抽取三大任务?3.开放域VS限定域4.信息抽取三大范式?范式一:基于自定义规则抽取(2018年前)范式二:基于Bert下游任务建模抽取(2018年后&a…...

python常见问题-pycharm无法导入三方库

1.运行环境 python版本:Python 3.9.6 需导入的greenlet版本:greenlet 3.1.1 2.当前的问题 由于需要使用到greenlet三方库,所以进行了导入,以下是我个人导入时的全过程 ①首先尝试了第1种导入方式:使用pycharm进行…...

迅为RK3588开发板Android系统开发笔记-使用ADB工具

1 使用 ADB 工具 ADB 英文名叫 Android debug bridge ,是 Android SDK 里面的一个工具,用这个工具可以操作管理 Android 模拟器或者真实的 Android 设备,主要的功能如下所示:  在 Android 设备上运行 shell 终端,用命…...

什么是分布式数据库?

随着现代互联网应用和大数据时代的到来,分布式数据库成为了解决大规模数据存储和高并发处理的核心技术之一。本文将通过深入浅出的方式,带你全面理解分布式数据库的概念、工作原理以及底层实现技术。无论你是刚刚接触分布式数据库的开发者,还…...

Leetcode 3363. Find the Maximum Number of Fruits Collected

Leetcode 3363. Find the Maximum Number of Fruits Collected 1. 解题思路2. 代码实现 题目链接:3363. Find the Maximum Number of Fruits Collected 1. 解题思路 这一题是一道陷阱题…… 乍一眼看过去,由于三人的路线完全可能重叠,因此…...

【数据仓库 | Data Warehouse】数据仓库的四大特性

1. 前言 数据仓库是用于支持管理和决策的数据集合,它汇集了来自不同数据源的历史数据,以便进行多维度的分析和报告。数据仓库的四大特点是:主题性,集成性,稳定性,时变性。 2. 主题性(Subject-Oriented) …...

springboot配置多数据源mysql+TDengine保姆级教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pom文件二、yamlDataSourceConfigServiceMapper.xml测试总结 前言 Mybatis-plus管理多数据源&#xff0c;数据库为mysql和TDengine。 一、pom文件 <de…...

dns实验2:反向解析

启动服务&#xff1a; 给虚拟机网卡添加IP地址&#xff1a; 查看有几个IP地址&#xff1a; 打开配置文件&#xff1a; 重启服务&#xff0c;该宽松模式&#xff0c;关闭防火墙&#xff1a; 本机测试&#xff1a; windows测试&#xff1a;&#xff08;本地shell&#xff09;...

ZooKeeper 基础知识总结

先赞后看&#xff0c;Java进阶一大半 ZooKeeper 官网这样介绍道&#xff1a;ZooKeeper 是一种集中式服务&#xff0c;用于维护配置信息、命名、提供分布式同步和提供组服务。 各位hao&#xff0c;我是南哥&#xff0c;相信对你通关面试、拿下Offer有所帮助。 ⭐⭐⭐一份南哥编写…...

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法 1. npm库xss依赖的使用方法1.1 xss库定义1.2 xss库功能 2. vue3 中 wangeditor 使用xss库解决 XSS 攻击的方法和示例2.1 在终端执行如下命令安装 xss 依赖2.2 在使用 wangeditor 的地…...

微信小程序蓝牙writeBLECharacteristicValue写入数据返回成功后,实际硬件内信息查询未存储?

问题&#xff1a;连接蓝牙后&#xff0c;调用小程序writeBLECharacteristicValue&#xff0c;返回传输数据成功&#xff0c;查询硬件响应发现没有存储进去&#xff1f; 解决&#xff1a;一直以为是这个write方法的问题&#xff0c;找了很多相关贴&#xff0c;后续进行硬件日志…...

5G NR:带宽与采样率的计算

100M 带宽是122.88Mhz sampling rate这是我们都知道的&#xff0c;那它是怎么来的呢&#xff1f; 采样率 子载波间隔 * 采样长度 38.211中对于Tc的定义&#xff0c; 在LTE是定义了Ts&#xff0c;在NR也就是5G定义了Tc。 定义这个单位会对我们以后工作中的计算至关重要。 就是在…...

go 和java 编写方式的理解

1. go 推荐写流水账式的代码&#xff08;非贬义&#xff09;&#xff0c;自己管自己。java喜欢封装各种接口供外部调用&#xff0c;让别人来管自己。 2. 因为协程的存在&#xff0c; go的变量作用域聚集在方法内部&#xff0c;即函数不可重入&#xff0c;而java线程的限制&…...

C# 7.1 .Net Framwork4.7 VS2017环境下,方法的引用与调用

方法的调用比较好理解&#xff0c;就是给方法传递实参&#xff0c;执行方法代码。 方法引用涉及委托&#xff0c;委托签名与其引用的方法必须一致。以下demo说明方法调用与引用在写程序时的区别&#xff1a; using System; using System.Collections.Generic; using System.L…...

etcd、kube-apiserver、kube-controller-manager和kube-scheduler有什么区别

在我们部署K8S集群的时候 初始化master节点之后&#xff08;在master上面执行这条初始化命令&#xff09; kubeadm init --apiserver-advertise-address10.0.1.176 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --service…...

每日一题 LCR 057. 存在重复元素 III

LCR 057. 存在重复元素 III 滑动窗口二分查找 有序集合 有lower_bound(num) ,可以找到第一个大于其的数字 class Solution { public:bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {set<long> win;for(int i0;i<nums.size();i){a…...

使用IDEA编写测试用例,复杂度校验

最近我们公司要求开发人员必须写测试用例&#xff0c;组织了TDD培训&#xff0c;测试驱动开发&#xff0c;同时衡量代码的圈复杂度&#xff0c;我记录下初次使用的过程。 编写测试用例&#xff0c;查看用例覆盖度 1、要编写测试用例&#xff0c;并看下测试用例的覆盖度&#…...

搭建私有云存储

1、安装LNMP环境 yum install nginx -y yum install -y nginx mariadb-server php php-fpm php-mysqlnd systemctl restart nginx.service --- 启动Nginx systemctl start mariadb.service ---启动数据库 mysql -e create database lxdb character set utf8 ---创建数据库 my…...

【从零开始的LeetCode-算法】3304. 找出第 K 个字符 I

Alice 和 Bob 正在玩一个游戏。最初&#xff0c;Alice 有一个字符串 word "a"。 给定一个正整数 k。 现在 Bob 会要求 Alice 执行以下操作 无限次 : 将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串&#xff0c;并将其 追加 到原始的…...

深入解析分布式遗传算法及其Python实现

目录 深入解析分布式遗传算法及其Python实现目录第一部分:分布式遗传算法的背景与原理1.1 遗传算法概述1.2 分布式遗传算法的引入1.3 分布式遗传算法的优点与挑战优点:挑战:第二部分:分布式遗传算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于多种交叉与变异…...

gitee:创建仓库,存入本地文件至仓库

一、git下载 git:下载与安装-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/144107485?sharetypeblogdetail&sharerId144107485&sharereferPC&sharesourceweixin_46001736&spm1011.2480.3001.8118 二、创建仓库 1、主页面->右上角新增…...

计算分数的浮点数值

计算分数的浮点数值 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 两个整数a和b分别作为分子和分母&#xff0c;既分数 a/b &#xff0c;求它的浮点数值&#xff08;双精度浮点数&#xff0c;保留小数点…...

制作网页和做网站是一个意思吗/网站查询服务器

本文欢迎转载&#xff0c;转载请注明出处和作者。由于各种监控系统的实时告警&#xff0c;都需要使用邮箱进行发送&#xff0c;而其中使用SMTP协议的邮箱&#xff0c;各种监控系统、ITSM系统等支持最广泛。为测试监控系统的告警功能&#xff0c;需要先搭建1个SMTP邮箱。实验环境…...

网站关键词排名/今日热搜榜

折纸王子帮你找折纸图解你好&#xff0c;我是折纸王子&#xff0c;欢迎来到我的公众号。折纸王子教你折纸&#xff0c;讲解详细&#xff0c;演示清楚&#xff0c;容易听懂&#xff0c;一学就会。往期精彩&#xff1a;圣诞节剪纸折纸大全43款万圣节折纸大全专辑 29款折纸张口霸王…...

哪里找专业做网站的人常熟/找个免费的网站

2019独角兽企业重金招聘Python工程师标准>>> 1 集操作 定义&#xff1a;把多个sql的结果集&#xff0c;通过逻辑上的整合运算&#xff0c;拼在一起显示。 集操作缺省下都是按第一个查询的第一列升序排序&#xff0c;当然除了union all&#xff1a; …...

如何租用服务器做网站/长安seo排名优化培训

MPI简介在程序中&#xff0c;不同的进程需要相互的数据交换&#xff0c;特别是在科学计算中&#xff0c;需要大规模的计算与数据交换&#xff0c;集群可以很好解决单节点计算力不足的问题&#xff0c;但在集群中大规模的数据交换是很耗费时间的&#xff0c;因此需要一种在多节点…...

wordpress 客户端使用/百度ai营销中国行

38-博客网站数据库-博文分类信息数据操作(二) 项目描述 当今网上微博、博客发布信息已经成为主要的信息发布、传播的系统&#xff0c;如何对这些数据进行管理&#xff0c;本项目主要是对博客网站中的博文分类信息表、博文信息表进行操作。 博客网站的数据库操作要求如下&…...

做网站先做前台还是后台/百度指数是怎么计算的

前言 在使用 python 制作网页的过程中&#xff0c;我们往往需要先将站点的目录“虚拟化”。虚拟化其实就是将当前文件下程序的运行环境与整个系统的环境隔离。那么为什么我们要将一个项目虚拟化呢&#xff1f; 1.不进行虚拟化会产生的问题 在平时使用 python 时&#xff0c;有可…...