LM-BFF——语言模型微调新范式

news2025/5/25 20:13:20

gpt3(GPT3——少样本示例推动下的通用语言模型雏形)结合提示词和少样本示例后,展示出了强大性能。但大语言模型的训练门槛太高,普通研究人员无力,LM-BFF(Making Pre-trained Language Models Better Few-shot Learners)的作者受gpt3启发后,将gpt3的少样本学习思路与常规语言模型(如BERT、RoBERTa)相结合,最终提出了一种新颖的微调方法,大大降低了微调所需样本量,也为我们理解提示词的重要性带来了新的启发。

本文主要分享这种新颖微调方法的好处,不对细节做过多展开。

方法

传统的微调方法是,给定训练好的预训练模型后,再利用该预训练模型在各类监督数据集上结合标签进行监督训练。输入和输出由不同的数据集决定。

LM-BFF作者的思路是,在监督训练时,通过引入提示模板 (prompt template)任务示例 (task demonstrations/examples),将原始输入和输出(标签)转换成一种更接近语言模型预训练任务的格式(即完形填空或文本生成)进行训练。

例如,对于一个传统的文本分类任务:

  • 传统微调输入(以RoBERTa为例)[CLS] No reason to watch. [SEP] ,预测输出通常是数据集的标签(如positive,negative)
  • LM-BFF微调输入示例[CLS] No reason to watch. [SEP] It was [MASK]. [SEP] A fun ride. It was great. [SEP] The drama discloses nothing. It was terrible. [SEP],预测输出是标签词映射得到的词(如great,terrible)

在这个LM-BFF的例子中:

  1. No reason to watch. 是原始输入文本。
  2. It was [MASK]. 是应用于原始输入文本的提示模板,模型需要预测 [MASK] 位置最合适的词。
  3. A fun ride. It was great.The drama discloses nothing. It was terrible. 是任务示例(demonstrations)。其中 greatterrible 是原始标签(如“正面”、“负面”)通过标签词映射 (label word mapping) 转换成的具体词语。这些示例为模型提供了当前任务的上下文信息。

下图是更详细的过程:

在这里插入图片描述

LM-BFF的四个关键部分

  1. 三个输入部分:原始输入 + 提示模板 + 任务示例
  2. 输出标签词映射。

其中提示模板和输出词映射可以手动指定也可以自动得出,作者提出了自动推断提示模板和输出词映射的方法。任务示例从训练样本中抽样。

自动推断输出标签映射词的方法:

  • 使用预训练语言模型(如 RoBERTa)来预测与标签语义最相关的词。
  • 对于每个标签,构造一个模板(如“It was [MASK].”),然后通过模型预测 [MASK] 位置的词,选择概率最高的词作为标签映射词。
  • 例如,对于“positive”标签,模型可能预测“great”作为映射词;对于“negative”标签,预测“terrible”。
  • 这种方法减少了手动指定标签词的负担,提高了方法的通用性。

自动推断提示模板的方法:

  • 利用 T5 模型的填空能力,将模板字符作为掩码序列输入T5,使其通过预测掩码序列生成候选提示模板。
  • 例如,对于文本分类任务,T5 可能生成“It was [MASK].”或“The sentiment is [MASK].”作为提示模板。
  • 然后通过少量验证数据评估每个模板的性能,选择效果最好的模板。
  • 这种方法通过自动化生成提示模板,减少了人工设计的成本。

实验

作者在GLUE数据集和SNLI数据集上做了实验。

在不同的数据集上,作者手工指定了提示模板和标签词映射。当然后面有手工,也有自动推断的实验结果。

在这里插入图片描述

实验效果

作者对比了若干方法:

第一部分:

  1. Majority(选取数据最多的类做标签)
  2. 使用作者手工指定的提示词进行零样本学习,不微调训练
  3. 使用作者手工指定的提示词 + 任务示例,不微调训练
  4. 使用少量样本进行传统微调训练

第二部分(LM-BFF)

  1. 手工指定提示词(原始输入 + 提示模板),微调训练
  2. 手工指定提示词+任务示例(原始输入 + 提示模板+ 任务示例 ),微调训练
  3. 自动指定提示词(原始输入 + 提示模板),微调训练
  4. 自动指定提示词+任务示例(原始输入 + 提示模板+ 任务示例 ),微调训练

第三部分:

全量样本传统微调训练

实验结果确实显著的表明,在少样本设定下,LM-BFF具有显著的优势,比传统微调性能大幅提高(大多在百分之10以上)

在这里插入图片描述

结合提示词微调的优势

另一篇论文(How Many Data Points is a Prompt Worth?)通过实验清楚的表明了结合提示微调的好处:

作者用SuperGLUE数据集对比了结合提示微调和传统微调在不同数据量情况下的表现,横坐标代表样本量,黄色代表提示词微调在使用不同样本量数据时的性能,紫色为传统微调的性能。大部分数据集上提示词微调的效果都要好于传统微调。
在这里插入图片描述

结果表明结合提示微调对训练样本的需求大大少于传统微调,几十个样本可以达到较好效果,不同数据量下的效果也大多好于传统微调。这也充分证明了语言模型的提示词的重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NVMe高速传输之摆脱XDMA设计2

NVMe IP放弃XDMA原因 选用XDMA做NVMe IP的关键传输模块,可以加速IP的设计,但是XDMA对于开发者来说,还是不方便,原因是它就象一个黑匣子,调试也非一番周折,尤其是后面PCIe4.0升级。 因此决定直接采用PCIe设…

pycharm无需科学上网工具下载插件的解决方案

以下是两种无需科学上网即可下载 PyCharm 插件的解决思路: 方法 1:设置 PyCharm 代理 打开 PyCharm选择菜单:File → Settings → Appearance & Behavior → System Settings → HTTP Proxy在代理设置中进行如下配置: 代理地…

Halcon计算点到平面的距离没有那么简单

Halcon计算点到平面距离 1. 一些基本概念2. 浅谈有无符号的距离2.1 无符号距离的用武之地2.2 有符号距离的必要性 3. 无符号距离怎么算3.1 创建一个无限延展的基准平面,对距离有什么影响?Halcon代码图示 3.2 创建一个小小小的基准平面,对距离…

数据中台如何设计?中台开发技术方案,数据治理方案,大数据建设方案合集

中台的价值与核心理念 中台的核心在于“企业级能力复用”,其价值体现在四大维度: 能力整合:将分散的数字化能力(如营销、供应链)集中管理,形成核心竞争力; 业务创新:通过跨领域融合…

Adminer 连接mssql sqlserver

第一步 docker-compose.yml adminer部分: version: 3.8 services: adminer: image: adminer:latest container_name: adminer restart: unless-stopped volumes: - ./freetds/freetds.conf:/etc/freetds.conf:rw # 确保 :rw 可读写 co…

C++系统IO

C系统IO 头文件的使用 1.使用系统IO必须包含相应的头文件,通常使用#include预处理指令。 2.头文件中包含了若干变量的声明,用于实现系统IO。 3.头文件的引用方式有双引号和尖括号两种,区别在于查找路径的不同。 4.C标准库提供的头文件通常没…

DELL EMC PowerStore BBU更换手册

写在前面 上周给客户卖了一个BBU电池,客户要写一个更换方案。顺利完成了更换,下面就把这个更换方案给大家share出来,以后客户要写,您就Ctrlc 和Ctrlv就可以了。 下面的步骤是最理想的方式,中间没有任何的问题&#xff…

css五边形

五边形 .fu{width: 172rpx;height: 204rpx;overflow: hidden;border-radius: 10rpx;clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); }六边形 clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);

三种常见脉冲神经网络编码方式解读

速率编码(rate coding) 速率编码使用输入特征来确定尖峰频率,例如将静态输入数据(如 MNIST 图像)转换为时间上的脉冲(spike)序列。它是将神经元发放脉冲的频率与输入值(如像素强度)…

STM32F103 HAL多实例通用USART驱动 - 高效DMA+RingBuffer方案,量产级工程模板

导言 《STM32F103_LL库寄存器学习笔记12.2 - 串口DMA高效收发实战2:进一步提高串口接收的效率》前阵子完成的LL库与寄存器版本的代码,有一个明显的缺点是不支持多实例化。最近,计划基于HAL库系统地梳理一遍bootloader程序开发。在bootloader程…

HTML回顾

html全称:HyperText Markup Language(超文本标记语言) 注重标签语义,而不是默认效果 规则 块级元素包括: marquee、div等 行内元素包括: span、input等 规则1:块级元素中能写:行内元素、块级元素&…

机器视觉6-halcon高级教程

机器视觉6-halcon高级教程 双目立体视觉原理视差外极线几何双目标定 双目立体视觉之Halcon标定一.标定结果二.Halcon标定过程1.获取左右相机图像中标定板的区域;2.提取左右相机图像中标定板的MARK点坐标和摄像机外部参数;3.执行双目标定;4.获取非标准外极线几何到标…

YOLOv8 的双 Backbone 架构:解锁目标检测新性能

一、开篇:为何踏上双 Backbone 探索之路 在目标检测的领域中,YOLOv8 凭借其高效与精准脱颖而出,成为众多开发者和研究者的得力工具。然而,传统的单 Backbone 架构,尽管已经在诸多场景中表现出色,但仍存在一…

1.4 TypeScript 编译是如何工作的?

TypeScript 是 JavaScript 的超集,最显著的优势是引入了静态类型检查。它能帮助开发者在编写代码阶段捕获错误,从而提升代码的健壮性和可维护性。虽然 TypeScript 本身不能直接在浏览器或 Node.js 中运行,但它可以被编译成标准的 JavaScript&…

Web 服务、 Nfs 服务器以及 Dns 服务器综合实验

要求: 1.web 服务的资源文件通过 nfs 服务器共享 www.luntan.com 2.确保所有主机时间同步 3.定义本地 dns 服务器解析 web 主机域名 实验: 主机服务程序192.168.96.142dns、nfs192.168.96.132web 服务器说明: 设备 IP服务端 192…

汇编语言的子程序魔法:解锁四则运算的奥秘

在嵌入式系统的世界里,汇编语言就像是魔法师手中的魔杖,能够直接操控硬件,实现各种神奇的功能。今天,我将带你走进一场充满乐趣的实验:如何用汇编语言实现四则运算,并将它们封装成子程序。这不仅是一次技术…

快速解决Linux 中yum镜像拉取失败问题

在linux中使用yum命令拉取镜像的时候,如果出现如下类似报错: 我这里是安装Erlang环境也是同样报错: 其实就是网络环境的问题,更换为国内的镜像源就行了,可以选择cmd的ssh连接方式(命令:ssh root192.168.xxx…

HarmonyOS基础组件:Button三种类型的使用

简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 HarmonyOS中的Button相较于Android原生来说,功能比较丰富,扩展性高,减…

产业互联网+三融战略:重构企业增长密码

产业互联网时代:用"三融"重构企业增长飞轮 在产业互联网浪潮下,企业面临资源分散、资金短缺、人才难聚的三重挑战。本文提出的"融人、融资、融资源"顶层设计,正为新时代企业构建增长新引擎。 一、三级合伙人体系&#x…

Centos系统资源镜像配置

主要体现 yum 命令执行报错,排除网络连接问题 解决步骤: 下载安装工具 # 安装 wget curl vim yum install -y wget curl vim 原有repo文件备份 # 进入配置文件所在文件夹 cd /etc/yum.repos.d# 创建 backup 文件夹 mkdir backup# 备份文件放置文件夹 m…