让模型训练速度提升2到4倍,「彩票假设」作者的这个全新PyTorch库火了

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 让模型训练速度提升2到4倍,「彩票假设」作者的这个全新PyTorch库火了
登陆 GitHub 以来,这个项目已经收获了 800 多个 Star。


随着越来越多的企业转向人工智能来完成各种各样的任务,企业很快发现,训练人工智能模型是昂贵的、困难的和耗时的。

一家公司 MosaicML 的目标正是找到一种新的方法来应对这些层出不穷的挑战。近日, MosaicML 推出了一个用于高效神经网络训练的 PyTorch 库「Composer」,旨在更快地训练模型、降低成本,并获得表现更好的模型。

Composer 是一个用 PyTorch 编写的开源库,旨在集成更好的算法来加速深度学习模型的训练,同时实现更低的成本和更高的准确度。目前项目在 GitHub 平台已经收获了超过 800 个 Star。

项目地址:https://github.com/mosaicml/composer

Composer 具有一个功能界面(类似于 torch.nn.functional),用户可以将其集成到自己的训练循环中;它还包含一个 Trainer,可以将高效的训练算法无缝集成到训练循环中。

项目中已经部署了 20 几种加速方法,只需几行代码就能应用在用户的训练之中,或者与内置 Trainer 一起使用。

总体而言,Composer 具备几个亮点:

  • 20 多种加速计算机视觉和语言建模训练网络的方法。当 Composer 为你完成工作时,你就不需要浪费时间尝试复现研究论文。
  • 一个易于使用的 Trainer,其编写的目的是尽可能提高性能,并集成了高效训练的最佳实践。
  • 所有加速方法的功能形式,都允许用户将它们集成到现有的训练循环中。
  • 强大、可重现的基线,让你尽可能地快开始工作。


那么,使用 Composer 能够获得怎样的训练效果提升呢?

多个模型系列的训练中减少的时间和成本。

据项目信息介绍,使用 Composer 训练,你可以做到:

  • ResNet-101 在 ImageNet 上的准确率在 1 小时 30 分钟内达到 78.1%(AWS 上 49 美元),比基线快 3.5 倍,便宜 71%。
  • ResNet-50 在 ImageNet 上的准确率在 1 小时 14 分钟内达到 76.51%(AWS 上 40 美元),比基线快 2.9 倍,便宜 65%。
  • 在 4 小时 27 分钟内将 GPT-2 在 OpenWebText 上的困惑度提高到 24.11(AWS 上 145 美元),比基线快 1.7 倍,便宜 43%。


在 Reddit 社区,项目作者 Jonathan Frankle 现身说法,他介绍说,Composer 是自己关于彩票假设研究的直接延续。

2019 年,Frankle 和 Carbin 的《The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks》获得了 ICLR 2019 的最佳论文荣誉。在这篇论文中,Frankle 等人发现标准的剪枝技术会自然地发现子网络,这些子网络经过初始化后能够有效进行训练。二人基于这些结果提出了「彩票假设」(lottery ticket hypothesis):密集、随机初始化的前馈网络包含子网络(「中奖彩票」),当独立训练时,这些子网络能够在相似的迭代次数内达到与原始网络相当的测试准确率。

目前,Frankle 是 Mosaic 公司的首席科学家,推动了 Composer 的打造。

这次,Frankle 表示,深度学习背后的「数学」并没有什么神圣之处。从根本上改变「数学」是完全没问题的(比如删除很多权重)。你将获得与其他方式不同的网络,但这不像原始网络是「正确的」网络。如果改变「数学」让你的网络变得同样好(例如同样的准确性)而速度更快,那就是胜利。

如果你愿意打破深度学习背后的「数学」,彩票假设就是一个例子。Composer 有几十种技术可以做到这一点,并且拥有与之匹配的加速。

同时,项目作者们也将 Composer 与 PyTorch Lightning 进行了对比:「PyTorch Lightning 是一个具有不同 API 的不同训练库。实际上,我们在 PTL 之上构建了我们的第一个 Composer 实现。」

PyTorch Lightning 的创建者 William Falcon 也出现在了后续讨论中,但二人似乎未达成共识。

目前,Composer 的训练器可以应用于众多模型,包括对于 Resnet-50、Resnet-101、UNet 和 GPT-2 的加速。

作者表示,未来还将扩展至更多模型,比如 ViT、BERT、分割和目标检测等等。

相关文章
|
6天前
|
并行计算 PyTorch 算法框架/工具
基于CUDA12.1+CUDNN8.9+PYTORCH2.3.1,实现自定义数据集训练
文章介绍了如何在CUDA 12.1、CUDNN 8.9和PyTorch 2.3.1环境下实现自定义数据集的训练,包括环境配置、预览结果和核心步骤,以及遇到问题的解决方法和参考链接。
基于CUDA12.1+CUDNN8.9+PYTORCH2.3.1,实现自定义数据集训练
|
6天前
|
机器学习/深度学习 PyTorch 调度
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
在深度学习中,学习率作为关键超参数对模型收敛速度和性能至关重要。传统方法采用统一学习率,但研究表明为不同层设置差异化学习率能显著提升性能。本文探讨了这一策略的理论基础及PyTorch实现方法,包括模型定义、参数分组、优化器配置及训练流程。通过示例展示了如何为ResNet18设置不同层的学习率,并介绍了渐进式解冻和层适应学习率等高级技巧,帮助研究者更好地优化模型训练。
14 4
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
|
12天前
|
机器学习/深度学习 监控 PyTorch
PyTorch 模型调试与故障排除指南
在深度学习领域,PyTorch 成为开发和训练神经网络的主要框架之一。本文为 PyTorch 开发者提供全面的调试指南,涵盖从基础概念到高级技术的内容。目标读者包括初学者、中级开发者和高级工程师。本文探讨常见问题及解决方案,帮助读者理解 PyTorch 的核心概念、掌握调试策略、识别性能瓶颈,并通过实际案例获得实践经验。无论是在构建简单神经网络还是复杂模型,本文都将提供宝贵的洞察和实用技巧,帮助开发者更高效地开发和优化 PyTorch 模型。
19 3
PyTorch 模型调试与故障排除指南
|
14天前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
67 8
|
22天前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
64 3
|
2月前
|
机器学习/深度学习 PyTorch 编译器
PyTorch 与 TorchScript:模型的序列化与加速
【8月更文第27天】PyTorch 是一个非常流行的深度学习框架,它以其灵活性和易用性而著称。然而,当涉及到模型的部署和性能优化时,PyTorch 的动态计算图可能会带来一些挑战。为了解决这些问题,PyTorch 引入了 TorchScript,这是一个用于序列化和优化 PyTorch 模型的工具。本文将详细介绍如何使用 TorchScript 来序列化 PyTorch 模型以及如何加速模型的执行。
49 4
|
2月前
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与边缘计算:将深度学习模型部署到嵌入式设备
【8月更文第29天】随着物联网技术的发展,越来越多的数据处理任务开始在边缘设备上执行,以减少网络延迟、降低带宽成本并提高隐私保护水平。PyTorch 是一个广泛使用的深度学习框架,它不仅支持高效的模型训练,还提供了多种工具帮助开发者将模型部署到边缘设备。本文将探讨如何将PyTorch模型高效地部署到嵌入式设备上,并通过一个具体的示例来展示整个流程。
169 1
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
219 1
|
2月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
75 2
|
2月前
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与 ONNX:模型的跨平台部署策略
【8月更文第27天】深度学习模型的训练通常是在具有强大计算能力的平台上完成的,比如配备有高性能 GPU 的服务器。然而,为了将这些模型应用到实际产品中,往往需要将其部署到各种不同的设备上,包括移动设备、边缘计算设备甚至是嵌入式系统。这就需要一种能够在多种平台上运行的模型格式。ONNX(Open Neural Network Exchange)作为一种开放的标准,旨在解决模型的可移植性问题,使得开发者可以在不同的框架之间无缝迁移模型。本文将介绍如何使用 PyTorch 将训练好的模型导出为 ONNX 格式,并进一步探讨如何在不同平台上部署这些模型。
108 2

相关产品

  • 人工智能平台 PAI
  • 下一篇
    无影云桌面