发布于: Oct 14, 2022

机器学习的发展是艰难却又不断上升的过程。今天,我们高兴地宣布,Amazon SageMaker 已经在大型深度学习模型的训练方面迎来简化,帮助更多缺少丰富硬件资源的客户踏入高阶深度学习之门。

过去十年以来,作为机器学习技术的重量级子集,深度学习(DL)席卷了整个世界。深度学习算法以神经网络为基础,具有非凡的效能,可以提取隐藏在大量非结构化数据(例如图像、视频、语音或文本)当中的信息模式。实际上,深度学习在各种以往只能由人类完成的高复杂度任务上,特别是计算机视觉与自然语言处理方面,已经迅速取得令人瞩目的成就。实际上,随着深度学习在 ImageNet 大规模视觉识别挑战赛(ILSVRC)、通用语言理解评估(GLUE)或者斯坦福问题解答数据集(SQUAD)等参考任务上不断提升自身能力,其创新速度也全面进入新的层级。

为了应对越来越复杂的任务,深度学习研究人员设计出愈发精妙的模型、添加更多神经元层与更多连接,旨在提高模式提取能力与预测准确性,而这一切又直接影响到模型的体量。例如,使用 100 MB 的 ResNet-50 模型已经能够在图像分类方面取得良好结果。但如果要实现对象检测或者实例区分等更为困难的任务,我们就得使用更大的模型,例如大小约为 250 MB 的 Mask R-CNN 或者YOLO v4。

毫无疑问,模型体量的增长也会影响到模型训练所需要的时间及硬件资源。也正因为如此,图形处理单元(GPU)才成为长期以来大型深度学习模型训练与调优方面的首选方案。为了适应 GPU 当中的大规模并行架构与庞大的内置内存,行业开发出分批训练技术。相关方案会向 GPU 一次性发送多个数据样本,借此减少通信开销,大大加快了训练速度。例如,Amazon Elastic Compute Cloud (EC2) p4 家族提供的英伟达 A100 包含 7000 多个计算核心与 40 GB 的高速内存,看来足以支持用大量数据训练超大模型,是不是?

遗憾的是,没这么简单……OpenAI GPT-2 拥有约 15 亿项参数,T5-3B 拥有约 30 亿项参数,GPT-3 甚至包含约 1750 亿项参数,这些专司自然语言处理的庞然大物需要占用几十甚至数百 PB 的 GPU 内存。同样的,处理高分辨率 3D 图像的最新模型同样远超 GPU 内存的容纳能力,甚至就连单一批次都很消化。

为了应对这样的严苛挑战,深度学习研究人员只能尝试将多种技术整合起来,例如:

  • 购买更多强大的 GPU,但对于某些特定模型,使用顶级 GPU 已经成为一种必选项。
  • 转而使用功能较弱的模型,牺牲一定准确性。
  • 建立梯度检查点,即将中间训练结果保存至磁盘上(而非将所有内容留存在内存内),但这会将训练速度降低 20% 至 30%。
  • 实现模型并行,即手动拆分模型,并在不同 GPU 上训练模型的某个部分。毫无疑问,即使对于专家来说,这也是一项极度困难、耗时且充满不确定性的任务。

相关文章