更好地学习:提高深度学习模式的效率

Flatiron研究员布雷特·拉森正在开发更好的方法来训练深度学习模型。

布雷特·拉森(Brett Larsen)是Flatiron研究院研究员,与FlatironInstitute的计算神经科学和计算数学中心(Centers for Computation Neuroscience and Computation Mathematics)联合任命。

在过去的五年里,机器学习和神经网络的规模和普及度都在爆炸式增长。但现在该领域的研究人员正面临成长的痛苦。随着更大、更强大的模型的出现,这些系统变得难以处理,尤其是对于试图以科学严谨的方式理解其结果的科学家来说。

扁钢研究员布雷特·拉森一直在研究如何通过开发更好的培训方法和更好的数据集来提高深度学习模型的效率。这项工作有助于使大型深度学习模型更易于科学应用,并有助于提高这些模型在许多应用中的准确性和效率。

Larsen在扁钢研究所的中心计算神经科学(CCN)和计算数学(CCM)自2022年起。在此之前,他获得斯坦福大学博士学位,并在桑迪亚国家实验室担任访问研究员。他还拥有斯坦福大学统计学硕士学位、剑桥大学科学计算硕士学位以及亚利桑那州立大学物理和电气工程学士学位。

拉森最近向西蒙斯基金会讲述了他的工作和深度学习的未来。

 

你目前在做什么?

我研究的主题是高效深度学习,这是机器学习的一个分支。现在,我们有越来越多的计算能力,所以我们正在利用它来训练越来越大的模型。事实证明,这种方法在提高模型能力方面取得了令人难以置信的成功,但它也导致我们经常忽视神经网络的训练和部署效率问题。问题是,你只能扩大这么长时间——这是不可持续的。当存在计算限制时,效率提供了另一种改进途径。我们也已经到了这样一个地步:没有数百万美元计算预算的研究小组,尤其是学术界的研究小组无法获得最先进的模型。

此外,这种深度学习的方法使科学变得非常困难,因为需要大量的重复实验才能理解模型。这对我来说可能是最重要的部分。当你训练一个模型,比方说,图像分类时,你给它一组图像,让它贴上标签。如果你想公布你的结果,你必须多次重复实验,以验证你所观察到的通常是真实的,而不是那次试验的侥幸——这与我们在自然科学中重复实验的方式非常相似。当我们有较小的模型时,这一点很有效。但现在,由于我们培训的网络规模庞大且成本高昂,你很幸运能有足够的资金或时间来运行一次。通过提高模型的效率,我们可以降低成本,并能够研究和理解模型的作用。

 

你的工作如何使模型更有效?

有三种主要方法可以提高效率:制定更好的训练算法(称为优化);减少参数数量(或者在不增加参数的情况下改进架构);或者用更少的数据训练模型。我正在研究后两者。

我最近完成了一个专注于参数问题的项目。这个项目着眼于一个叫做“神经网络修剪”的主题当你训练一个模型时,它有一组权重来定义你的网络所学习的功能。2018年,我的一位合作者乔纳森·弗兰克尔(Jonathan Frankle)和他的顾问迈克尔·卡宾(Michael Carbin)提出了一个名为“彩票假说”的想法它建议您可以以特定的方式去掉这些权重,并且仍然能够训练模型在像图像分类这样的任务上具有相同的性能。从本质上讲,在整个网络中隐藏着一个较小的网络,可以达到相同的精度,这对于机器学习中的许多常见任务来说都是如此。这个较小的网络可能要小一个数量级,因此发现它有可能大大减少运行网络所需的计算预算。如果我们有一个网络,我们希望在训练后尽可能少地用电运行,比如分析手机上照片的网络,这尤其有帮助。

用于查找较小网络的过程称为迭代幅度修剪(IMP)。基本上,你需要对大网络进行训练,然后删除或删减一些权重。然后,在没有这些权重的情况下重新训练模型,并使用越来越小的网络不断重复此过程,直到性能下降。这是一个非常耗时的过程,因为您必须不断重新训练以确定要修剪的下一组权重。然而,值得注意的是,在某些图像分类任务中,您可以删减80%到90%的权重,并且仍然可以获得与原始图像相同的性能。我们想了解为什么这种方法有效,以及是什么最终阻止了你削减更多体重。

我和同事最近发表的作品ICLR 2023年提供了这些问题的答案。我们询问,在您重新培训这些越来越小的网络时,您是否会相同的解决方案或类似的解决方案?你可以考虑训练一个人际网络,比如在有山脉和山谷的地方旅行。您希望到达最低的山谷,这表示模型功能的特定权重组合,但在同一高度的景观中可能有许多山谷。我们想知道修剪是把你带到同一个最佳山谷还是类似的山谷。如果它最终变成了同一个山谷,这会告诉你修剪方法是如何工作的;这意味着我们删除权重的方式是,仍然存在返回同一山谷的路径。通过我们的实验,我们发现模型确实反复回到同一个山谷,因此很可能无法删除该修剪算法的再训练部分来加快速度。

我们还展示了IMP最终停止工作的原因。在较高水平上,由于山谷变得过于“陡峭”,最终不可能找到一条返回同一山谷的路径的较小网络这意味着我们可以查看经过训练的网络,并确定可以删除的权重的最大百分比,以保持相同的性能,这大大加快了过程。

 

您正在进行哪些项目来提高网络的数据效率?

我最近对我们如何管理更好的数据集非常着迷。通常模型都是用数据集训练的,这些数据集基本上是从互联网上搜集所有信息,然后扔给模型。浏览数据并实际检查数据可能会很痛苦,所以人们往往会忽略这一点。但重要的是,不要在你的模型中加入随机的胡言乱语,因为这样它会学习并反刍胡言乱说;数据定义了模型学习的模式。所以,我正在研究的一件事是一种量化高质量数据集外观的方法,并改进过滤数据集的方法,以便我们能够更好地塑造我们展示模型的模式。

我还确定了可以更有效地训练模型的数据集。例如,如果你正在训练一个识别猫和狗的模型,那么你可以使用一些比其他图像更容易识别的图像。与狗站在人群中或被栅栏挡住相比,狗站在田里的照片更容易识别。事实证明,在训练的某些部分,模型可以使用易于识别的图像更快地训练,而在其他情况下,更具挑战性的图像才是真正有帮助的。

最后,与在同一图像上多次训练模型的图像分类任务相比,在语言模型中只对数据进行一次传递是非常常见的。但随着我们扩大这些模型,数据有限的情况越来越多。我还研究了什么会影响模型在看到收益递减之前看到示例的次数,以及这如何取决于不同类型数据的混合,例如自然语言与代码。归根结底,这一切都取决于什么是为模型提供数据的正确数据,以及我们如何为人们提供指导,以帮助他们选择和管理这些数据。

 

这项工作如何帮助当今深度学习网络面临的一些更大问题,例如偏见和错误答案?

应对这些挑战需要深度学习社区开发一系列工具,但我当然希望管理和增强您在培训中使用的数据能发挥重要作用。例如,即使只是简单地将标签附加到某些数据,以便模型了解它是您不想要的东西的示例,也已被证明是塑造模型行为的有效方法。

对于我的工作,总体目标是更好地在您希望模型做什么和如何塑造数据集之间进行转换。这仍然是一个雄心勃勃的挑战,但我希望最终结果之一是为人们提供帮助解决这些更大问题的工具。