0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为提出Sorted LLaMA:SoFT代替SFT,训练多合一大语言模型

深度学习自然语言处理 来源:深度学习自然语言处理 2023-09-26 16:26 次阅读

ChatGPT、LLaMa等大型语言模型(LLMs)在自然语言处理领域带来的革命性进步。通过有监督微调(SFT)的训练方式,这些模型拥有强大的上下文学习能力,在各种任务中都展现了超凡的表现。然而,它们也有一个不小的问题——庞大的存储空间和高昂的计算资源成本。

但现在,研究人员们为我们带来了一项新的解决方案——SortedNet。它允许我们在一个大型模型内创建多个“子模型”,每一个都有自己专门的任务责任区。这意味着我们可以根据自己的需求和可用资源来选择适合的子模型,从而大幅度减少存储空间和计算资源的需求。

而这一切的背后,是一项名为Sorted Fine-Tuning(SoFT)的新训练技术。SoFT让我们可以在一个训练周期内产出多个子模型,无需任何额外的预训练步骤。此外,这项技术还揭示了模型的中间层也能够产生高质量的输出,这一点在之前的研究中常常被忽视。

为了证明这种方法的有效性,研究人员使用了LLaMa 2 13B和Stanford Alpaca数据集进行测试和验证。他们不仅对比了SFT和SoFT这两种方法,还创建了多个不同层次的子模型来确定哪些层最能产出高质量的结果。测试结果令人鼓舞——使用SoFT创建的子模型不仅运行速度更快,而且能够保持或甚至超越原始模型的性能水平。

让我们一起深入了解一下SortedNet和SoFT技术吧!

02d06996-5c36-11ee-939d-92fbcf53809c.png

Paper:Sorted LLaMA: Unlocking the Potential of Intermediate Layers of Large Language Models for Dynamic Inference Using Sorted Fine-Tuning
Link:https://arxiv.org/abs/2309.08968

Many-in-One LLMs

在介绍这篇研究之前,先让我们了解一下什么是Many-in-One。

深度神经网络通常存在过多的参数,导致模型部署的成本增加。此外,在实际应用中,这些过度参数化的深度神经网络需要为具有不同需求和计算预算的客户提供服务。为了满足这些多样化的需求,可以考虑训练不同大小的模型,但这将非常昂贵(涉及训练和内存成本),或者另一种选择是训练Many-in-One网络。

Many-in-One解决方案是在一个神经网络模型内部包含多个子网络,每个子网络可以执行不同的任务或具有不同的结构。这个方法的目标是将多个任务或模型结构整合到一个统一的网络中,从而提高模型的通用性和适应性。例如:

早期退出(Early Exit):在训练过程中,Early Exit在除了最后的预测层之外,还在网络的特定中间层上添加了额外的预测头。这些预测头在需要时提供中间预测,可以实现更快的推断速度。

层丢弃(Drop Layer),通过在训练期间随机丢弃层来训练具有任意深度的网络。

最近,LLMs引起了广泛的关注。为了使LLMs适应这些多样化的需求,研究者提出了两种适应方法:参数高效调整(PEFT)和模型压缩。

PEFT:核心主干模型保持不变,而只更新一些适配器参数。这些适配器的作用就像是在LLMs上进行微调,使其适应不同的任务和需求。有一些PEFT的变种,比如LoRA、KRONA、Adapter、DyLoRA、Ladder Side-Tuning和Compacter等。这些方法可以让LLMs更加灵活,但仍然无法提供动态大小的LLMs。

模型压缩:在模型压缩中,大型模型通过知识蒸馏、修剪和量化等压缩方法来减小尺寸。这些方法可以生成不同尺寸的模型,但需要分别对每个压缩模型进行训练,而且它们也不是多合一模型。

现在,再回到Many in one LLMs的概念。这是一种非常有趣的想法,它们可以同时适应多种不同的任务和需求。但到目前为止,我们还没有看到发布的多合一LLM模型。因此,在这项研究中,研究人员将一种SortedNet的训练方法应用到LLaMA 13B模型上,这将成为第一个Many in one LLM。

方法

这项研究的方法涉及将大型语言模型(LLMs)转化为多合一模型,灵感来自SortedNet方法,主要步骤如下:

形成子网络:首先需要将LLMs划分为多个子网络。子网络的深度(即前n层的子模型)用fn(x; θn)表示。在这项研究中,选择的语言模型是LLaMA2 13B,总共包括40层。因此,定义了一系列不同层数的子网络,如12层、16层、20层等。

计算子网络的输出:每个子模型的输出将通过使用原始网络最后一层的共享输出预测头来进行预测。需要注意的是,在LLaMA模型中,输出预测头之前存在一个RMSNorm层,该归一化层被添加到每个子模型的共享预测头之前。研究人员认为,这种归一化对于Sorted LLama在所有子模型上更好地泛化至关重要。

目标函数:为了训练这些子网络,定义了每个子模型的损失函数Ln(x; θn)。总损失L是所有子模型和主模型的损失之和。

训练数据集:在这项研究中,使用了Stanford Alpaca数据集,该数据集包含了5.2万个指令跟随示例的演示。

评估:除了评估最后一层的嵌入质量外,还评估了从第1到第n个块的中间输出的嵌入质量。Panda-LM基准用于比较不同子模型的输出。Panda-LM使用一个大型语言模型来评估来自两个源的生成文本的质量。最终的评估结果包括胜利次数、失败次数和验证集中的平局次数。最终得分是通过特定的公式计算出来,表示模型在指令跟随任务上的性能,得分范围在-1到1之间。

Baseline:作者对LLama2 13B模型进行了微调,采用了两种不同的设置作为基线:常规监督微调(SFT)和排序微调(SoFT)。其中,常规监督式微调是常见做法,主要关注网络的最后一层的训练。在这种情况下,只对网络的最后一层进行微调。排序微调(SoFT)下,计算从第12层到第40层(最后一层)的多个输出的损失,分为四个间隔,并同时训练多个模型,就像在前面的部分中解释的那样。

实验结果

对于生成模型的不同层排序信息的影响是什么?

研究者首先关注了在不同层次的生成模型中对信息进行排序的效果。他们进行了一系列实验,生成了不同层次的响应,并使用PandaLM评估器进行了成对比较。结果显示,Sorted Fine-Tuning对于将学到的知识传递到中间层具有显著影响。在自动评估中,Sorted LLaMA在几乎所有层次上都表现出色,远远超过了常规微调(SFT)。

02f0d654-5c36-11ee-939d-92fbcf53809c.png

需要注意的是,尽管对SoFT的性能进行了zero-shot评估,但为了更好地理解SFT层次的结果,研究者进行了额外的训练——对每个子模型的分类层进行训练。可以注意到,与Sorted LLaMA的第12层相比,SFT的第12层性能略好。下表是一个生成的回复例子,可以看到SFT中较早层的生成文本大多是乱码的。当我们进入SFT中的较高层时,生成的文本变得越来越有意义,这使得与Sorted LLAMA层的比较更加合理。

03109f5c-5c36-11ee-939d-92fbcf53809c.png

这一部分的实验结果呈现出了Sorted Fine-Tuning对于LLama2模型性能的积极影响,尤其是在中间层次的性能上,这为后续的研究提供了重要基准。

此外,结果还突显了Sorted Fine-Tuning能够生成性能强大且尺寸较小的子模型,这些子模型与原始模型的性能相媲美。在接下来的图表中,研究者进行了SFT和SoFT在不同条件下的评估,结果显示,无论是零-shot还是Early-Exit,两种方法的结果几乎没有变化。这些实验证明了Sorted Fine-Tuning的鲁棒性和有效性。

0333c626-5c36-11ee-939d-92fbcf53809c.png

034e2804-5c36-11ee-939d-92fbcf53809c.png

结果分析

SoFT和SFT学习到的概率分布对比

研究者使用Kullback-Leibler(KL)散度作为度量标准来衡量两个概率分布之间的相似性。

下图(a)比较了Sorted LLaMA和SFT子模型在不同输出位置上的概率分布。首先,图(a)左展示了与SFT模型的最后一层以及从第12层到第36层的层次之间的比较。可以明显看出,与生成初始标记后的最后一层相比,即使在较高的层次,如36和32,输出分布迅速发散。需要注意的是,这种评估是在zero-shot方式下生成的,没有调整分类器头。

03631b06-5c36-11ee-939d-92fbcf53809c.png

下图(b)显示了在Sorted LLaMA中,随着我们靠近最后一层,生成结果的可能性分布越来越接近完整尺寸子模型,至少在生成文本的初始位置上是如此。

037eb578-5c36-11ee-939d-92fbcf53809c.png

下图(c)展示了不同SFT层次与最后一个Sorted LLaMA层次之间的比较。图中显示,只有SFT的完整尺寸输出分布接近排序的完整尺寸模型,而其他层次的分布在生成文本的初始步骤中与SoFT相比迅速发散。

039d8fca-5c36-11ee-939d-92fbcf53809c.png

图(d)比较了所有排序层次的输出分布与最后一个SFT层次的输出分布。与图4c(左)相比,图4d(左)显示Sorted LLaMA甚至在较低层次的初始输出标记上也能保持与SFT完整尺寸模型接近的输出分布。

03bac7ca-5c36-11ee-939d-92fbcf53809c.png

总结

这项工作提出了Sorted LLaMA,它是一种基于Sorted Fine-Tuning而不是监督微调获得的多合一LLaMA模型,用于动态推理。Sorted LLaMA释放了中间层的潜在表示能力,提供了无需预训练或与模型压缩相关的额外开销的动态自适应能力。它为NLP领域中生成语言模型的优化提供了有前途的途径。

SoFT使这些模型的部署更加高效。由于所有子模型仍然是原始模型的组成部分,因此存储要求和不同计算需求之间的过渡成本最小化,使得在推理期间管理多个模型成为现实。

这些分析结果揭示了Sorted Fine-Tuning对于生成模型的输出分布的影响,特别是在不同的模型层次上,以及Sorted LLaMA在保持输出分布方面的能力。这些结果有助于更深入地理解Sorted Fine-Tuning方法的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    33637

    浏览量

    247171
  • 模型
    +关注

    关注

    1

    文章

    2707

    浏览量

    47706
  • 语言模型
    +关注

    关注

    0

    文章

    436

    浏览量

    10059
  • ChatGPT
    +关注

    关注

    27

    文章

    1411

    浏览量

    4776

原文标题:华为提出Sorted LLaMA:SoFT代替SFT,训练多合一大语言模型

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【飞腾派4G版免费试用】仙女姐姐的嵌入式实验室之五~LLaMA.cpp及3B“小模型”OpenBuddy-StableLM-3B

    训练语言模型。该模型最大的特点就是基于以较小的参数规模取得了优秀的性能,根据官网提供的信息,LLaMA
    发表于 12-22 10:18

    训练语言模型设计的理论化认识

    Language Model)统一到一个框架中,并且基于它们的优势和缺点,取长补短,提出了一个新的预训练语言模型----MPNet,其混合了MLM和PLM各自的优势,达到了比两者更好
    的头像 发表于 11-02 15:09 2387次阅读

    Multilingual多语言训练语言模型的套路

    Facebook在Crosslingual language model pretraining(NIPS 2019)一文中提出XLM预训练语言模型,整体思路基于BERT,并
    的头像 发表于 05-05 15:23 2561次阅读

    一种基于乱序语言模型的预训练模型-PERT

    由于乱序语言模型不使用[MASK]标记,减轻了预训练任务与微调任务之间的gap,并由于预测空间大小为输入序列长度,使得计算效率高于掩码语言模型
    的头像 发表于 05-10 15:01 1232次阅读

    “伶荔”(Linly) 开源大规模中文语言模型

    Linly-Chinese-LLaMA:中文基础模型,基于 LLaMA 在高质量中文语料上增量训练强化中文语言能力,现已开放 7B、13B
    的头像 发表于 05-04 10:29 759次阅读
    “伶荔”(Linly) 开源大规模中文<b class='flag-5'>语言</b><b class='flag-5'>模型</b>

    基于预训练模型语言增强的零样本视觉学习

    在一些非自然图像中要比传统模型表现更好 CoOp 增加一些 prompt 会让模型能力进一步提升 怎么让能力更好?可以引入其他知识,即其他的预训练模型,包括大
    的头像 发表于 06-15 16:36 327次阅读
    基于预<b class='flag-5'>训练</b><b class='flag-5'>模型</b>和<b class='flag-5'>语言</b>增强的零样本视觉学习

    关于Llama 2的一切资源,我们都帮你整理好了

    Meta 发布的 Llama 2,是新的 SOTA 开源大型语言模型(LLM)。Llama 2 代表着 LLaMA 的下一代版本,可商用。
    的头像 发表于 08-23 15:40 755次阅读

    Meta发布一款可以使用文本提示生成代码的大型语言模型Code Llama

    今天,Meta发布了Code Llama,一款可以使用文本提示生成代码的大型语言模型(LLM)。
    的头像 发表于 08-25 09:06 955次阅读
    Meta发布一款可以使用文本提示生成代码的大型<b class='flag-5'>语言</b><b class='flag-5'>模型</b>Code <b class='flag-5'>Llama</b>

    训练语言模型带来的硬件挑战

    生成式AI和大语言模型(LLM)正在以难以置信的方式吸引全世界的目光,本文简要介绍了大语言模型训练这些
    的头像 发表于 09-01 17:14 1118次阅读
    <b class='flag-5'>训练</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>带来的硬件挑战

    LLaMA微调显存需求减半,清华提出4比特优化器

    从 GPT-3,Gopher 到 LLaMA,大模型有更好的性能已成为业界的共识。但相比之下,单个 GPU 的显存大小却增长缓慢,这让显存成为了大模型训练的主要瓶颈,如何在有限的 GP
    的头像 发表于 09-11 16:08 268次阅读
    <b class='flag-5'>LLaMA</b>微调显存需求减半,清华<b class='flag-5'>提出</b>4比特优化器

    语言模型(LLM)预训练数据集调研分析

    语言模型涉及数据的通常有有多个阶段(Aligning language models to follow instructions [1] ):pre-train、sft(supervised
    的头像 发表于 09-19 10:00 572次阅读
    大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>(LLM)预<b class='flag-5'>训练</b>数据集调研分析

    语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型
    的头像 发表于 12-04 15:51 411次阅读

    LLaMA 2是什么?LLaMA 2背后的研究工作

    Meta 发布的 LLaMA 2,是新的 sota 开源大型语言模型 (LLM)。LLaMA 2 代表着 LLaMA 的下一代版本,并且具有
    的头像 发表于 02-21 16:00 363次阅读

    Meta推出最强开源模型Llama 3 要挑战GPT

    公司这次开源了Llama 3 8B与70B两款不同规模的模型,开发者可以免费使用,而Meta公司还将陆续推出一系列具备多模态、多语言对话、更长上下文窗口等能力的新模型。 据悉Meta用
    的头像 发表于 04-19 17:00 469次阅读

    高通支持Meta Llama 3大语言模型在骁龙旗舰平台上实现终端侧执行

    高通和Meta合作优化Meta Llama 3大语言模型,支持在未来的骁龙旗舰平台上实现终端侧执行。
    的头像 发表于 04-20 09:13 174次阅读