数据规模缩小 200 倍!指令微调高效指导大模型学习

夕小瑶科技说 原创
作者 | 智商掉了一地、Python

最近大型语言模型(LLMs)的指令微调备受研究人员的关注,因为它可以开发 LLM 遵循指令的潜力,使其更加符合特定的任务需求。虽然指令微调(Instruction Tuning)作为一种微调方法,与传统的微调相比,所需要的数据较少并更具有人类友好性,还可以用于多种不同的下游任务。这为促进 LLM 适应下游任务提供了优势,但在大量数据上训练拥有数千万甚至数十亿个参数的模型会导致高昂的计算成本。

为了解决上述问题,该论文作者提出将重点放在减少 LLM 指令微调所需的数据量,以降低训练成本和提高数据效率,这被称为低训练数据指令微调(LTD instruction tuning)。具体来说,本文对 LLM 训练中使用的数据进行了初步探索,并确定了多个关于 LLM 训练任务专业化的观察结果,例如优化特定任务的性能、指令微调所需的指令类型数量以及任务特定模型所需的数据量。研究结果表明,只需要使用原始数据集的不到 0.5% 便足以训练出高性能的任务专用模型,相比使用完整任务相关数据进行训练的模型,其性能提高了 2%。

论文题目:
Maybe Only 0.5% Data is Needed: A Preliminary Exploration of Low Training Data Instruction Tuning

论文链接:
https://arxiv.org/abs/2305.09246

大模型研究测试传送门

ChatGPT传送门(免墙,可直接测试):

https://yeschat.cn

GPT-4传送门(免墙,可直接测试,遇浏览器警告点高级/继续访问即可):

https://gpt4test.com

什么是 LLM 的指令微调?

大模型由于其参数多且复杂,在实际应用中普遍存在训练时间长、计算资源耗费大等问题。为了提高模型的训练和推理效率,需要对模型进行指令微调。

指令微调(Instruction tuning)是指在少量数据或有限数据条件下,从已有数据中识别出最有价值的核心样本,并通过微调模型的指令来帮助模型获取下游任务的知识,从而实现可比甚至更好的性能。这种方法主要针对预训练语言模型,因为 LLM 需要大量数据来训练,但在某些情况下,如果我们只希望优化特定任务的性能,则只需要在目标任务数据上微调模型的指令,而不是在大量数据上进行微调,可以大大节省时间和计算资源。

指令微调通常是指微调模型的注意力机制、位置编码或其他需要微调的参数,使其适应特定任务的需求。总之,大型模型的指令微调对于提高模型的训练和推理效率至关重要,而不同的指令微调策略可以针对不同的模型和任务需求进行选择和优化。

如图 1 所示是微调和指令微调之间的区别。在微调中,语言模型预测样本的标签,而在指令微调中,语言模型回答指令集中的问题。NLI 任务涉及确定两个文本部分(通常称为“前提”和“假设”)之间的逻辑关系。NLI 的目标是根据前提中提供的信息,确定假设是否为真、假或未确定。句子完成(SC)任务涉及预测最可能的单词或一系列单词,以完成给定的句子或短语。

图1 以自然语言推理和因果推理为例

论文速览

本文主要从数据角度来探讨如何降低 LLM 训练阶段的成本,提高数据效率。为了实现该目的,作者通过从现有数据中识别出最有价值的核心样本来帮助模型获取下游任务的知识,并仅用少量数据来实现可比甚至更好的性能。

方法流程如图 2 所示,潜在空间用三个矩形表示,每个任务代表其中一个颜色系列。具有相同色系但不同色调的点,对应于来自同一任务但来自不同数据集的数据,如 NLI 任务有 5 个数据集,因此有 5 种不同的色调。

图2 低训练数据指令微调流程

主要分为以下几步:

  1. 将每个句子编码成嵌入向量,并进行均值池化和 L2 归一化的预处理。
  2. 在潜在空间中,将所有样本点聚类成几个类别。
  3. 从这些聚类样本中进行采样,找到原始分布中的核心样本。
  4. 使用这些检索到的样本来指导微调 LLM 并进行评估。

实验

作者在选择特定任务和指令格式后,在总共 11 个数据集上进行了实验,这些数据跨越 4 个自然语言处理任务:自然语言推理(NLI,1.9M 个 token)、句子补语(SC,660.6K 个 token)、词义消解(WSD,25.5K 个 token)和指代消解(CR,185.1K 个 token)。成功使用原始数据集不到 0.5% 的数据训练了一个特定任务模型,相当于将数据规模缩小了 200 倍,并与在 P3 中基于任务相关数据训练的模型具有可比性能。

对于自然语言推理(NLI)任务,得出了以下观察结果:

  • 如果只是为了优化特定任务的性能,仅在目标任务数据上微调的 LLM 模型很可能比在不同类型任务数据上微调的模型更优。
  • 另外,在专门针对单个任务时,似乎只需要一个指令进行指令微调。虽然增加指令类型数量可以提高性能,但边际效应变得不那么显著,甚至可能有单一指令优于十种指令的情况。
  • 与为整体任务性能训练模型相反,结果还表明,16000 个实例(1.9M 个 token,占 P3 的 0.5%)可能足以训练一个 NLI 任务特定的模型。

综合来看,在特定任务和指令格式下,仅使用少量的数据就可以训练具有可比性能的模型。

小结

本文主要从低训练数据指令微调的角度研究任务特定模型的性能,这为降低训练成本、提高数据效率提供了一些初步发现和洞见。由于计算资源的限制,该研究还存在一些限制,未来的工作可以在更大的模型上验证这些思路,并使用更广泛的任务和数据集。

基于这些研究结果,我们可以期待未来在低训练数据下的指令微调方面能够有更深入的探究和应用。除了这种方法,作者还探索了另外两种方法来减少 fine train 所需的训练数据,期待后续完善的论文。总而言之,本文迈出了重要一步,它为未来探索低训练数据下的指令微调方向指明了一定方向,我们也期待能够看到该领域的更多发展和创新,希望有朝一日 DIY 大模型不再是梦~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT是否可以写出一篇论文

利用AI反哺教育和学术,在训练它写论文的过程中你学到的,比你自己写一篇论文学到的更多。让工具回归工具,让我们变成更好的我们! 第一步:现象确认 第二步:学术概念化 第三步:定位优质的学术资源 …

网页版即时通讯聊天工具,支持主流浏览器,无需安装即可使用

基于信贸通即时通讯系统开发的网页版即时通讯,无需安装支持主流浏览器在线直接运行。可以与电脑版本和手机版本互通。支持文本聊天,标签,图片,文件传输,还支持位置接收等。 特点: 1、简单快速的集成到自己…

Ims跟2/3G会议电话(Conference call)流程差异介绍

2/3G Conference call 合并(Merged)通话前,两路电话只能一路保持(Hold),一路通话(Active)。 主叫Merged操作,Hold的一路会变成Active,进入会议通话。 例如终端A跟C通话,再跟B通话,此时B就是Active状态,C从Active变成Hold状态。Merged进入会议通话后,C又从Hold变…

英文学术会议参会必读-青年学者会议和演讲英语指南

本书介绍 本书讨论并展示在学术会议上使用的英语话语的类型,并从多角度为准会议参与者提供了指导。它是根据参加的众多学术会议的研究结果和作者的观察结果而得出的,基于对应用语言学的公认研究方法,以及针对学生,ESP老师&#xf…

jitsi-meet 主持人退出会议后结束会议室(网页访问)

实现功能: 当主持人退出当前会议后,要求参与会议的其他人员也都退出当前会议。 修改代码: 修改后,通过make编译代码。 将css/all.css 和 libs文件夹下的文件上传至会议服务器的对应目录下。重启会议服务器即可。 /usr/share/ji…

chatgpt赋能python:Python根据IP地址获取地理位置

Python根据IP地址获取地理位置 随着全球化的发展,网络已经成为人们获取信息和交流的主要渠道。在网站的开发和运营中,了解访问者的地理位置和所处时区是非常重要的。这样可以更好地定位目标受众并制定针对性的营销策略。本文将介绍如何使用Python根据IP…

一文读懂信息量、信息熵、相对熵(KL散度)和交叉熵

在人工智能深度学习的应用中,损失函数绝对是模型网络学习质量的关键。我们使用损失函数来表示的真实值与预测值之间的距离,进而指导模型的收敛方向。对于标量来说,我们能够很容易想到使用方差来描述误差。那么,如何表示向量之间的…

面板数据进行熵值法

面板数据熵值法分析流程如下: 一、案例背景 当前有9家公司连续5年(2018-2022年)的财务指标数据,想要通过这份数据,确定各个财务指标的权重。熵值法根据指标离散程度确定赋权大小,客观公正准确度高。本次收…

跨数据中心下的 Kafka 高可用架构分析

导语 本文介绍了 Kafka 跨数据中心的两种部署方式,简要分析两种方式下的不同架构以及优缺点,对这些架构可能碰到的问题也提供了一些解决思路;同时也说明了 Kafka 跨数据中心部署的社区解决方案和商业化解决方案。 背景 Kafka 作为世界上最…

分布式的流处理平台Kafka

目录: 一、简介二、基本概念三、生产者使用详解四、发送消息五、消费者代码示例 一、简介 ApacheKafka 是一个分布式的流处理平台。它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列;支持数据实时处理…

熵_相对熵_散度

1 信息量 意外越大,越不可能发生,概率就越小,信息量也就越大,也就是信息越多。比如说“今天肯定会天黑”,实现概率100%,说了和没说差不多,信息量就是0。 详见:2. 信息量 1.1 公式 …

流批一体计算引擎-4-[Flink]消费kafka实时数据

Python3.6.9 Flink 1.15.2消费Kafaka Topic PyFlink基础应用之kafka 通过PyFlink作业处理Kafka数据 1 环境准备 1.1 启动kafka (1)启动zookeeper zkServer.sh start(2)启动kafka cd /usr/local/kafka/ nohup ./bin/kafka-server-start.sh ./config/server.properties >&g…

【仿牛客网笔记】 Kafka,构建TB级异步消息系统——发送系统通知、显示系统通知

定义时间主题 判断消息内容是否为空,消息格式是否错误。 系统通知是后台发给用户 发送站内通知 构造一个Message对象 设置站内的值 判断是否有数据,然后放入到message中 对CommentController、LikeController、FollowController进行处理。 需要注入…

kafka集群压测与优化

影响kafka集群性能的因数有多个,网络带宽、cpu、内存、磁盘读写速度、副本数、分区数、broker数量、内存缓存等因素都会影响kafka集群的性能 1.优化kafka集群配置 server.properties配置文件优化 num.network.threads4 num.io.threads4 socket.send.buffer.bytes…

熵,信息熵,香农熵,微分熵,交叉熵,相对熵

2019-07-13 https://blog.csdn.net/landstream/article/details/82383503 https://blog.csdn.net/pipisorry/article/details/51695283 https://www.zhihu.com/question/41252833 https://cloud.tencent.com/developer/article/1397504 按顺序查看更容易理解 0、背景 在信息论中…

【Hive】云任务大量卡住故障分析

项目场景: 上一章节我们简单介绍到了JVM调优相关的知识,本章节结合日常故障处理进一步说明相关的使用 问题描述 在云上,hive任务出现大面积卡住的现象,但并无任何报错信息,具体如下: 原因分析&#xff1…

Linux服务器出现异常和卡顿排查思路和步骤

目录 前言一、查看内存使用情况二、查看磁盘使用情况三、top命令3.1 jmap分析堆内存配置信息和使用情况3.2 jstack分析线程的执行情况3.3 jstat查看各个区域占堆百分比 四、其他指令总结 前言 Linux 服务器出现异常和卡顿的原因有很多,以下是一些常见的原因&#x…

熵、交叉熵和散度

熵 自信息 I(x) - log p(x) 对于分布为P(x)的随机变量X,自信息的数学期望 即熵H(X)定义为: 熵越高,随机变量信息越高,反之越少。不同概率分布对应熵如下:P p()熵10001/21/41/41/31/31/3 概率分布越均匀&#xff0…

【腾讯轻量应用服务器上部署kafka并通过flink读取kafka数据】

环境准备 经过1个月的摸索,最终选择在腾讯云上搭建一个学习环境。当时选择原因还是新用户有优惠(150左右3年),但现在看1核2g的配置勉强够用,建议后续小伙伴选择时最好是2核4g配置。 由于是单节点安装,需要准备如下资源&#xff1…

【Twitter Storm系列】flume-ng+Kafka+Storm+HDFS 实时系统搭建

技术交流群:59701880 深圳广州hadoop好友会 微信公众号:后续博客的文档都会转到微信公众号中。 一直以来都想接触Storm实时计算这块的东西,最近在群里看到上海一哥们罗宝写的FlumeKafkaStorm的实时日志流系统的搭建文档,自己也跟…