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

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

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.xdnf.cn/news/563401.html

相关文章:

  • vscode打开的文件被覆盖/只能打开两个文件(Visual Studio Code)
  • 基于Resnet-34的树叶分类(李沐深度学习基础竞赛)
  • WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来
  • 缓存穿透、缓存击穿、缓存雪崩解决方案
  • NIFI的处理器:JSLTTransformJSON 2.4.0
  • 第19天-Python自动化生成PPT图文教程(基于python-pptx)
  • Python 训练营打卡 Day 31
  • Sign签证绕过
  • MyBatis 关联映射与多表查询实战教程
  • 人工智能在生物医学研究中的创新应用
  • 基于两阶段交互控制框架的互联多能系统协同自治优化
  • JVM 与容器化部署调优实践(Docker + K8s)
  • 如何在Java中处理PDF文档(教程)
  • 【C/C++】探索单例模式:线程安全与性能优化
  • MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)
  • 制作跨平台AppImage包的方法
  • 基于STM32的智能台灯_自动亮度_久坐提醒仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)
  • SQLMesh 宏操作符详解:@IF 的条件逻辑与高级应用
  • React---day1
  • asp.net web form nlog的安装
  • 9.PostgreSQL初体验
  • Flink SQL 计算实时指标同比的实现方法
  • vue3使用 Tailwind CSS (4.多版本)
  • UML 图的细分类别及其应用
  • virtualbox选项“启用套嵌vt-x/amd-v“不可用
  • 【论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角】
  • 论文篇-1.2.如何读好一篇论文
  • [实战]用户系统-1-基础功能完善
  • 笔记:NAT
  • 【笔记】排查并解决Error in LLM call after 3 attempts: (status code: 502)