Beyond FLOPs: Energy-Aware Knowledge Distillation for Sustainable LLMs on Code-Related Task
本文表明,通过由直接能量代理模型(而非传统的 FLOPs 指标)引导的能量感知知识蒸馏,可以在保持性能的同时,显著降低大型语言模型在软件工程任务中的推理能耗和内存占用。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代软件世界中,一种新型的智能已经出现:大型语言模型。这些是庞大的计算机系统,经过海量代码库的训练,能够理解编程语言并帮助开发者编写、修复和解释软件。虽然这些工具功能极其强大,但它们也伴随着高昂的价格。运行它们需要充满专门硬件的大型数据中心,这些硬件会大量消耗电力,从而对能源消耗和环境造成显著压力。由于这些系统规模如此之大,它们通常无法在大多数人每天使用的笔记本电脑或个人电脑上运行。为了使这些工具更具可持续性和可及性,研究人员转向了一种称为“知识蒸馏”的技术。想象一下一位大师教师将知识传授给一名更小的学生;在这个数字版本中,一个庞大且复杂的模型教会一个更小、更简单的模型如何执行相同的任务。目标是保持较小模型的智能化程度以使其有用,同时使其足够小,以便能在日常硬件上高效运行。
代尔夫特理工大学的一个研究小组致力于测试这一过程在软件工程任务中的表现,特别是研究如何衡量这些模型的能量成本。多年来,业界一直依赖于一个名为“浮点运算次数”(FLOPs)的标准指标来估算模型将消耗多少能量。这个数字计算的是一个模型必须执行的理论数学计算量。然而,研究人员怀疑这个数字可能会产生误导,就像在计算旅途中的步数时,却没有考虑到地形或天气一样。为了寻找真相,他们使用了一种能够自动搜索最佳小型模型的复杂方法进行了受控实验。他们在两种不同类型的任务上测试了该方法:查找重复代码和预测软件安全漏洞。
研究始于一个简单但至关重要的问题:理论上的计算次数是否真的与实际消耗的能量相匹配?研究人员在真实的计算机硬件上运行模型,并测量了处理器和图形卡在工作期间消耗的电量。结果令人惊讶且不一致。对于查找重复代码的任务,理论计算次数与实际消耗的电量几乎没有联系。一个执行计算量较少的模型有时反而比执行更多计算的模型消耗更多能量。相比之下,对于预测安全漏洞的任务,计算次数确实显示出与能量使用的关系,但即便如此,它也不是一个完美的指南。一些具有高计算量的模型使用的功率明显低于那些计算量较低的模型。这证明了标准的行业指标并不是衡量不同软件任务能量效率的可靠方式。
由于旧的指标存在缺陷,该团队开发了一种新的方法。与其根据数学计数来猜测能量使用情况,不如构建一个能从真实测量中学习的系统。他们训练了一个辅助模型,根据学生模型的特定设置,利用从硬件收集的实际数据来预测能量消耗。当他们使用这种新的、具备能量感知能力的系统来设计较小的模型时,结果得到了显著改善。对于重复代码任务,新方法找到的模型比使用旧方法设计的模型节省了39%的能量,且没有损失任何准确性。对于安全预测任务,结果也类似,表明即使在旧指标看似有效的情况下,新方法也能找到高效的解决方案。
随后,研究人员进一步推进了这一方法,将其应用于一个更复杂的挑战:代码摘要生成。这项任务涉及生成一段关于代码功能的、人类可读的描述,这比简单的分类要困难得多。他们使用了一个名为CodeT5+的大型模型作为老师,并尝试将其蒸馏成一个较小的学生模型。结果非常惊人。这种以能量为中心的新方法生成的学生模型,其内存占用大小减少了86%,运行时的能量消耗降低了高达90%。代价是准确性略有下降,但生成的摘要仍然连贯且有用。研究人员发现,对于这些复杂的生成任务,传统的“尽可能缩小模型”的规则并不奏效;模型需要足够大以理解代码,但新方法找到了一个既能保证理解力又能实现高效的平衡点。
这项工作凸显了我们在思考人工智能和可持续性时应当进行的重大转变。研究表明,依赖理论数值来估算能量使用会导致工程师选择那些实际上并非最高效的模型。通过测量真实的能量消耗并利用这些数据来指导小型模型的设计,我们完全可以创造出既强大又可持续的软件工具。这些更小、更节能的模型最终可以在消费级硬件上运行,在无需承担云端计算带来的巨大环境成本的情况下,将先进人工智能的益处带到本地设备。研究结果表明,为了实现更绿色的软件未来,我们必须超越简单的运算计数,去衡量我们所构建工具的实际能量足迹。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。