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

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

3天内不再提示

蒸馏也能Step-by-Step:新方法让小模型也能媲美2000倍体量大模型

智能感知与物联网技术研究所 来源:智能感知与物联网技术研 2023-05-15 09:35 次阅读

大型语言模型能力惊人,但在部署过程中往往由于规模而消耗巨大的成本。华盛顿大学联合谷歌云计算人工智能研究院、谷歌研究院针对该问题进行了进一步解决,提出了逐步蒸馏(Distilling Step-by-Step)范式帮助模型训练。该方法在训练用于特定任务的小型模型方面优于 LLM,训练数据远少于传统的微调和蒸馏。他们的 770M T5 模型在一个基准任务上表现优于 540B PaLM 模型。令人印象深刻的是,他们的模型只使用了可用数据的 80%。

a6df2d78-f2b5-11ed-90ce-dac502259ad0.png

虽然大型语言模型(LLMs)展现了令人印象深刻的少样本学习能力,但将这样大规模的模型部署在现实应用中是很难的。为 1750 亿参数规模的 LLM 提供服务的专门基础设施,至少需要 350GB 的 GPU 内存。更甚者,现今最先进的 LLM 是由超过 5000 亿的参数组成的,这意味着它需要更多的内存和计算资源。这样的计算要求对于大多数生产商来说都是难以企及的,更何况是要求低延迟的应用了。

为了解决大型模型的这个问题,部署者往往采用小一些的特定模型来替代。这些小一点的模型用常见范式 —— 微调或是蒸馏来进行训练。微调使用下游的人类注释数据升级一个预训练过的小模型。蒸馏用较大的 LLM 产生的标签训练同样较小的模型。但是很遗憾,这些范式在缩小模型规模的同时也付出了代价:为了达到与 LLM 相当的性能,微调需要昂贵的人类标签,而蒸馏需要大量很难获得的无标签数据。

在一篇题为「Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes」的论文中,来自华盛顿大学、谷歌的研究者引入了一种新的简单机制 —— 逐步蒸馏(Distilling step-bystep),用于使用更少的训练数据来训练更小的模型。这种机制减少了微调和蒸馏 LLM 所需的训练数据量,使之有更小的模型规模。

a6fce71e-f2b5-11ed-90ce-dac502259ad0.png

论文链接:https://arxiv.org/pdf/2305.02301v1.pdf

该机制的核心是换一种角度,将 LLM 看作是可以推理的 agent,而不是噪声标签的来源。LLM 可以产生自然语言的理由(rationale),这些理由可以用来解释和支持模型所预测的标签。例如,当被问及「一位先生携带着打高尔夫球的设备,他可能有什么?(a) 球杆,(b) 礼堂,(c) 冥想中心,(d) 会议,(e) 教堂」,LLM 可以通过思维链(CoT)推理回答出「(a)球杆」,并通过说明「答案一定是用来打高尔夫球的东西」来合理化这个标签。在上述选择中,只有球杆是用来打高尔夫的。研究者使用这些理由作为额外更丰富的信息在多任务训练设置中训练较小的模型,并进行标签预测和理由预测。

如图 1 所示,逐步蒸馏可以学习特定任务的小模型,这些模型的参数量还不到 LLM 的 1/500。与传统的微调或蒸馏相比,逐步蒸馏使用的训练示例要也少得多。

a71e0d90-f2b5-11ed-90ce-dac502259ad0.png

实验结果显示,在 4 个 NLP 基准中,有三个有希望的实验结论。

第一,相对于微调和蒸馏,逐步蒸馏模型在各数据集上实现了更好的性能,平均减少了 50% 以上的训练实例(最多可减少 85% 以上)。

第二,我们的模型在模型尺寸更小的情况下表现优于 LLM(最多可以小到 2000 倍),极大地降低了模型部署所需的计算成本。

第三,该研究在缩减模型尺寸的同时,也减少了超越 LLM 所需要的数据量。研究者使用一个 770M 的 T5 模型超越了 540B 参数的 LLM 的性能。这个较小的模型只使用了现有微调方法 80% 的标记数据集。

当只有未标记的数据时,小模型的表现相比 LLM 而言仍然有过之而无不及 —— 只用一个 11B 的 T5 模型就超过了 540B 的 PaLM 的性能。

该研究进一步表明,当一个较小的模型表现比 LLM 差时,与标准的蒸馏方法相比,逐步蒸馏可以更有效地利用额外的无标签数据来使较小的模型媲美 LLM 的性能。

逐步蒸馏

研究者提出了逐步蒸馏这个新范式,是利用 LLM 对其预测的推理能力,以数据高效率的方式训练更小的模型。整体框架如图 2 所示。

a74e0b9e-f2b5-11ed-90ce-dac502259ad0.png

该范式有两个简单的步骤:首先,给定一个 LLM 和一个无标签的数据集,提示 LLM 生成输出标签以及证明该标签成立的理由。理由用自然语言解释,为模型预测的标签提供支持(见图 2)。理由是当前自监督 LLM 的一个涌现的行为属性。

然后,除了任务标签之外,利用这些理由来训练更小的下游模型。说白了,理由能提供了更丰富、更详细的信息,来说明一个输入为什么被映射到一个特定的输出标签。

实验结果

研究者在实验中验证了逐步蒸馏的有效性。首先,与标准的微调和任务蒸馏方法相比,逐步蒸馏有助于实现更好的性能,训练实例的数量少得多,大幅提高了学习小型特定任务模型的数据效率。

a773cc4e-f2b5-11ed-90ce-dac502259ad0.png

a7930fa0-f2b5-11ed-90ce-dac502259ad0.png

其次,研究表明,逐步蒸馏方法以更小的模型大小超越了 LLM 的性能,与 llm 相比,大大降低了部署成本。

a7b7f388-f2b5-11ed-90ce-dac502259ad0.png

a7dc5872-f2b5-11ed-90ce-dac502259ad0.png

最后,研究者调查了逐步蒸馏方法在超过 LLM 的性能方面所需的最低资源,包括训练示例数量和模型大小。他们展示了逐步蒸馏方法通过使用更少的数据和更小的模型,同时提高了数据效率和部署效率。

a8025f5e-f2b5-11ed-90ce-dac502259ad0.png

a82024b2-f2b5-11ed-90ce-dac502259ad0.png

审核编辑 :李倩

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

    关注

    1789

    文章

    46576

    浏览量

    236899
  • 语言模型
    +关注

    关注

    0

    文章

    497

    浏览量

    10236
  • 自然语言
    +关注

    关注

    1

    文章

    284

    浏览量

    13319

原文标题:蒸馏也能Step-by-Step:新方法让小模型也能媲美2000倍体量大模型

文章出处:【微信号:tyutcsplab,微信公众号:智能感知与物联网技术研究所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言step-by-step

    C语言step-by-step
    发表于 12-27 09:59

    Altium19 3D STEP模型的导出

    我们的3D模型一般是提供给专业的3D软件进行一个结构核对,那么Altium Designer 提供导出3D STEP模型的这个功能,结构工程师可以直接导出进行结构核对。接下来以AD19进行讲解。1. 首先,我们在AD19中,在F
    发表于 11-22 10:07

    Kicad6.0导出step模型遇到无法导出元件的问题

    RT,kicad6.0版本导出PCB的step文件中,只有pcb的板子模型,而没有上面元件,有时想确认pcb是否与设计结构相干涉,望大家解答。
    发表于 12-16 15:39

    STEP与WRL 3D模型的区别

    “ KiCad 7支持两种格式的3D模型STEP和WRL。本文简述了STEP与WRL的区别,以及这两种格式在哪些场合应用更合理。 ” 简介 这两种格式在本质上是不同的。wrl格式是一种细分的表面
    发表于 06-16 11:26

    keras顺序模型与函数式模型

    Sequential,所以顺序模型可看做是函数式模型的一种特殊情况。 还有另外一种Model子类的搭建方法,这是利用python call方法
    发表于 08-18 06:01

    提高软件可靠性模型精度的新方法

    本内容介绍了提高软件可靠性模型精度的新方法,希望对大家学习上有所帮助
    发表于 05-26 15:50 0次下载
    提高软件可靠性<b class='flag-5'>模型</b>精度的<b class='flag-5'>新方法</b>

    如何使用STEP-BY-STEP在KEIL5中建立TM4C1294项目

    本文档的主要内容详细介绍的是如何使用STEP-BY-STEP在KEIL5中建立TM4C1294项目。
    发表于 05-20 17:37 23次下载
    如何使用<b class='flag-5'>STEP-BY-STEP</b>在KEIL5中建立TM4C1294项目

    ADL6012三维模型(*.step文件)

    ADL6012三维模型(*.step文件)
    发表于 03-22 22:51 5次下载
    ADL6012三维<b class='flag-5'>模型</b>(*.<b class='flag-5'>step</b>文件)

    ADIS16460 3-D模型(.step文件)

    ADIS16460 3-D模型(.step文件)
    发表于 06-01 11:16 6次下载
    ADIS16460 3-D<b class='flag-5'>模型</b>(.<b class='flag-5'>step</b>文件)

    STM32 Step-by-Step如何加快开发速度

    STM32 Step-by-Step 的另一个基本方面是我们的新社区。多年来,许多成员都表达了学习如何在我们的平台上开始编程的愿望,而这一新举措为他们提供了专业知识。
    的头像 发表于 05-16 16:23 1312次阅读

    Altium Designer导出3D STEP模型方法

    3D STEP 模型一般是提供给专业的3D软件进行结构核对,如Pro/Engineer。Altium Designer 提供导出3D STEP模型的功能,结构工程师可以直接导出进行结构
    的头像 发表于 10-12 09:22 4.2w次阅读

    南开/南理工/旷视提出CTKD:动态温度超参蒸馏新方法

    一直保持静态固定的温度超参对学生模型来说不是最优的。基于课程学习的思想,人类在学习过程中都是由简单到困难的学习知识。那么在蒸馏的过程中,我们会希望模型一开始
    的头像 发表于 01-04 14:49 767次阅读

    基于一步步蒸馏(Distilling step-by-step)机制

    为优化LLM为“小模型/少数据/好效果”,提供了一种新思路:”一步步蒸馏”(Distilling step-by-step
    的头像 发表于 05-16 10:24 1109次阅读
    基于一步步<b class='flag-5'>蒸馏</b>(Distilling <b class='flag-5'>step-by-step</b>)机制

    任意模型都能蒸馏!华为诺亚提出异构模型的知识蒸馏方法

    相比于仅使用logits的蒸馏方法,同步使用模型中间层特征进行蒸馏方法通常能取得更好的性能。然而在异构
    的头像 发表于 11-01 16:18 924次阅读
    任意<b class='flag-5'>模型</b>都能<b class='flag-5'>蒸馏</b>!华为诺亚提出异构<b class='flag-5'>模型</b>的知识<b class='flag-5'>蒸馏</b><b class='flag-5'>方法</b>

    模型应用Step-By-Step

    导读: 本文主要介绍:智能聊天、PPT生成、与PDF文件智能对话、数字人创作、艺术创作。 作者:王禹展 部门:京东健康-技术产品部-供应链研发部-B2B研发组 一、大模型应用分享 1 Monica
    的头像 发表于 07-01 18:03 292次阅读
    大<b class='flag-5'>模型</b>应用<b class='flag-5'>Step-By-Step</b>