文是我们与 IEEE Xplore 合作的独家IEEE Journal Watch 系列的一部分。
人工智能掀起波澜的(多种)方式之一是其分析海量数据集的能力。但训练这些人工智能程序的计算量越来越大,这凸显出需要更有效的方法来处理数据。
在5 月 22 日发表于IEEE Transactions on Computers 的一项研究中,研究人员描述了一种名为 Waterwave 的新颖方法,可以提高在同一 GPU 上同时高效地训练多个 AI 模型的效率。他们的结果表明,在内存需求较高的场景中,Waterwave 的速度是 GPU 上现有空间共享的 12 倍,是现有时间内存共享的 1.49 倍。
当人工智能模型最初需要训练时,会使用某些计算和方法来找到用于数据分析的最佳或次优模型。通过这种方式,可以尽早识别“好”或“坏”的分析模型,从而显着加快整个训练过程。
然而,不幸的是,由于内存限制,目前大多数使用 GPU 训练人工智能模型的方法都必须逐一评估模型,而不是同时评估模型。因此,每个训练任务必须一个接一个地排队,并且所需的模型可能位于队列的末尾。
“在最坏的情况下,所有的训练任务都需要一项一项地完成,这非常耗时。”博士生彭轩解释道。华中科技大学计算机科学与技术学院博士生。
分而治之的方法
Peng 的团队设计了 Waterwave,以便将模型分解为更易于管理且大小均匀的“子模型”。来自不同模型的多个子模型可以在同一个 GPU 上同时处理,并且一旦 GPU 完成计算一个子模型,就会为队列中的下一个子模型释放内存空间。
“通过实现相似的内存大小,可以增加前一个子模型释放的内存足以满足下一个需要内存分配的子模型的可能性。这种方法使得一个模型释放的内存可以被另一个模型有效地利用,”Peng 说。
Peng 和他的同事使用几种用于计算机视觉和自然语言处理应用的流行神经网络测试了 Waterwave,并将其与NVIDIA开发的另一种内存流方法(称为多进程服务(MPS))进行了比较,该方法也在 GPU 上同时评估多个模型。
结果表明,总体而言,Waterwave 在容纳多个训练作业时表现出出色的内存共享效率,每个作业使用 76.4% 至 96.8% 的 GPU 内存。
在比较 Waterwave 和 MPS 时,研究人员发现,当 GPU 内存没有超额认购计算任务时,MPS 的性能略胜 Waterwave。然而,当 GPU 内存超额使用时,MPS 会出现显着的性能下降(超过 90%),而 Waterwave 则没有观察到这种程度的下降。
然而,Peng 指出了 Waterwave 的一些局限性。值得注意的是,如果一项计算作业失败,则会导致其他计算作业同时失败。此外,对于 GPU 计算需求较高的模型,通过并行运行任务获得的性能提升是微乎其微的。“因此,我们的下一个研究目标侧重于优化管道模型并行性,以实现更高的训练吞吐量,”Peng 说。