[论文阅读]Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smal

中文译名:逐步蒸馏!以较少的训练数据和较小的模型规模超越较大的语言模型

发布链接:http://arxiv.org/abs/2305.02301

Accepted to Findings of ACL 2023

阅读原因:近期任务需要用到蒸馏操作,了解相关知识

核心思想:改变视角。原来的视角:把LLMs视为噪声标签的来源。现在的视角:把LLMs视为能够推理的代理。

方法好在哪?需要的数据量少,得到的结果好。

文章的方法概览:

 对上图的解释:1.给定一个 LLM 和一个未标记的数据集,提示 LLM 生成输出标签以及证明标签合理性的基本原理。基本原理是为模型的预测标签提供支持的自然语言解释。2.除了任务标签之外,我们还利用这些基本原理来训练较小的下游模型。
直观地说,基本原理提供了更丰富、更详细的信息,说明为什么输入映射到特定的输出标签,并且通常包含可能很难仅从原始输入推断的相关任务知识。

下面是蒸馏过程的设计:

从LLM中提取基本原理

文中采用思维链CoT提示,从LLMs中引出和提取出基本原理,给定一个没有标记的数据集,首先策划一个提示模板P,阐明任务应该如何解决。
每一个提示词都是一个三元组:(示例输入,用户提供的解释为什么输入可以被归类为输出的理由,输入示例对应的标签)
把每一个输入添加到提示模板P中,将其用作输入来提示LLM为每一个示例输入都生成 从输入到输出的基本原理 以及 输出的标签。 通过学习P中的输入输出演示,LLM可以模拟刚才的演示来生成 基本原理和输出标签

使用基本原理训练较小的模型

标准微调和任务型蒸馏:小模型的训练都是取最小化标签预测损失。如果对比标签是人工标注的,那就是微调任务;如果对比标签是LLM的预测标签,那就是蒸馏任务。

带有基本原理的多任务学习:提取出原理是作为额外的观测值来强化以及量化输入和输出之间的关系。
一种直接的方法:把输入x和原理r同时作为输入喂给模型得到输出,来最小化输出标签和给定标签之间的损失值。这种方法设计需要LLM先生成推理的基本原理,然后小模型才可以做预测,在构建小模型的时候还需要大模型的参与。
本文的方法:不把推理原理当作模型的额外输入,而是让小模型做一个多任务学习,给定输入文本,不仅要给出预测的类别输出,还要给出预测的原理。这个方法loss的计算是label loss+加权的原理loss值。原理loss的计算则是输出原理和给定原理的loss计算。

实验结果及分析:略

这篇文章倒是让我有了一些小想法🤔

将神经网络中的知识进行提取,是一种将模型的信息转化为更为简洁和易于理解形式的过程。 神经网络是一种由许多神经元组成的复杂计算模型,它们通过学习和调整权重来解决各种问题。然而,神经网络通常具有大量的参数和复杂的结构,这使得它们难以解释和应用到其他领域。因此,我们需要一种方法来提取和总结神经网络中的知识,以便更好地理解和应用这些模型。 在进行神经网络知识提取时,有几种常见的方法。一种常见的方法是使用可视化技术,如热力图、激活图和网络结构图等,来可视化网络中不同层的活动模式。这些可视化技术能够帮助我们发现网络中的模式和特征,并从中推断出网络的知识。 另一种方法是使用特征提取技术,如卷积神经网络(CNN)的滤波器、自动编码器的隐藏层和循环神经网络(RNN)的隐状态等,来提取网络学习到的重要特征。这些重要特征可以帮助我们更好地理解网络学习到的信息,并将其应用到其他问题中。 此外,还有一种被称为知识蒸馏的技术,它通过训练一个较小的模型来提取大型模型中的知识。知识蒸馏通过引入目标函数和额外的训练策略,使小模型能够学习到大模型中的重要知识,并在不损失太多性能的情况下将其应用到实际问题中。 总而言之,提取神经网络中的知识是一项重要任务,它能够帮助我们更好地理解和应用这些复杂的模型。通过可视化、特征提取和知识蒸馏等方法,我们能够从神经网络中提取出有用的信息,并将其应用到其他领域或解决其他问题中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值