深度学习 GPU 基准测试

社区文章 2025 年 2 月 28 日发布

社区的朋友们大家好!我叫 Aliaksei,是 Lingvanex 的创始人,这是一家专注于机器翻译和语音转录解决方案的初创公司。我们不断为工作训练语言模型。我们的团队使用数十种不同的显卡,根据不同的任务进行选择:有些地方我们需要强大的 DGX 工作站,有些地方一张旧的游戏显卡,比如 RTX 2080Ti 就足够了。选择最佳的 GPU 进行模型训练可以显著影响过程的速度和成本效益。

有趣的是,互联网上有很多关于 GPU 机器学习比较的文章,但很少有关注语言模型训练速度的。大多数只找到推理测试。当新的 H100 芯片发布时,NVidia 的报告称其在训练中比 A100 快九倍,但对于我们的任务,新卡只比旧卡快 90%。相比之下,我们的云提供商在这些 GPU 之间有 2 倍的价格差异,因此切换到新的 H100 以节省资金毫无意义。

除此之外,我们还测试了一台 DGX 工作站,它由 8 块 A100 80GB 显卡组成,每月花费 1 万美元。测试后发现,这台工作站的性价比完全不适合我们,用这些钱,我们可以买 66 块 RTX 3090,总的来说会更有用。

我们的翻译语言模型拥有多达 5 亿个参数(平均 1 亿到 3 亿)。如果我们将参数数量显著增加,DGX 的性价比可能会更好。目前,我们不训练可以一次在所有语言之间进行所有变体翻译的大型语言模型,而是为每个语言对使用单独的语言模型,例如英语-德语。每个这样的模型占用 120 到 300 MB。

值得注意的是,不同语言在互联网上的数据量不同。例如,对于西班牙语,您可以找到 5 亿个带翻译的句子,但在训练藏语等稀有语言的模型时,您需要根据可用数据为机器学习任务选择特定的 GPU。为了创建英语到西班牙语的翻译模型,我们使用一台配备 4 个 RTX 4500 和 256GB RAM 的服务器。同时,藏语可以在配备 16GB RAM 的 RTX 2080 Ti 上进行训练,因为增加神经网络的复杂性没有意义,因此,在数据量小的情况下使用更强大的服务器也没有意义。

图形处理器选择和理论数据

语言模型训练是在我们内部的 Data Studio 平台上使用 OpenNMT-tf 框架进行的。此阶段包括数据准备、模型训练和模型与参考翻译的比较。在训练期间使用 FP16 而非 FP32 使得我们能够显著缩短语言模型的训练时间,而不会降低翻译质量,但并非我们所有的 GPU 都支持这一点。

选择图形处理器时,通常会考虑处理能力 (TFLOPS)、显存 (VRAM)、GPU 基准测试结果、库和框架支持、预算以及其他因素(显卡尺寸和外形、功耗、散热以及与您系统的兼容性)等指标。在训练文本生成模型时,您还应该记住不同语言会消耗不同数量的资源。例如,拉丁语系语言编码一个字符使用 1 字节,西里尔语系语言使用 2 字节,而包含象形文字的语言使用 3 字节。了解您的显卡将具有哪些特性对学习过程的速度有显著影响。

在模型训练中,根据所使用的 GPU,显卡分为两组:早期显卡(用于首次测量学习速度)和当前使用的显卡。这些显卡的主要特性分别列于表 1 和表 2。

表 1 - 以前使用的图形处理器及其技术参数

image/png

备注

  1. 在 CUDA 大于 7.0 的情况下,使用 FP16 将根据 CUDA 版本和显卡本身的特性提高训练速度。
  2. 如果显卡规格表明 FP16 到 FP32 性能比大于 1:1,那么使用混合精度将保证以规格中指定的速度提高训练速度。例如,对于 Quadro RTX 6000,FP16 TFLOPS 值为 32.62 (2:1),训练速度将至少提高两倍(实际中为 2.4 倍)。

表 2 - 当前使用的 GPU 型号及其主要特性

image/png

    • FP16、TFLOPS 和 FP32、TFLOPS 的值取自每个 GPU 的规格

GPU 训练和测试过程

模型使用 18 个 GPU 集进行训练。在神经网络训练过程中,我们使用了大量的语言对(超过一百种语言)。GPU 测试有助于确定哪种硬件最适合特定任务。在训练我们的语言对时,以下神经网络参数作为基础

词汇量 = 30 000 单元数 = 768 层数 = 6 头数 = 16 内部维度 = 4 096

首先,我们根据表 1 对第一组 GPU 进行特征描述。我们将模型训练在约 1,000 步和批量大小为 100,000 个单位所需的时间(以分钟和秒计)作为比较指标的基础。

我们强调,对于第一组,速度测量是在使用对齐机制且仅使用 FP32 的情况下进行的。在不使用此机制的情况下,某些服务器上的学习速度可能会快得多。

对齐机制允许匹配基础文本和翻译文本中的子字符串。当翻译格式化文本(例如网页)时,如果句子中的某个子字符串可能以不同字体高亮显示,并且应该连同高亮一同翻译,就需要用到对齐机制。

考虑到上述神经网络参数,第一张表中表现最佳的是 Nvidia H100 GPU,学习时间为 22 分钟;中间表现的是同品牌的 GeForce RTX 4060 Ti,学习时间为 72 分钟;最后一名是 Tesla V100-SXM 2 GPU,学习时间为 140 分钟。

在 GPU 测试中,还有 8 张 Nvidia A10 卡,学习曲线为 20 分 28 秒;2 张 Nvidia A40 卡,时间为 56 分钟;2 张 Tesla V100-SXM 卡,时间为 86 分钟。同时应用同一系列 GPU 的多张卡可以加速模型训练过程,并与更高容量的 GPU 表现出几乎相同的时间,但这种技术在财务和程序上可能不够合理。学习速度测量结果可在表 3 中观察到。

表 3 - 以前使用的显卡的训练时间测量

image/png

接下来,我们对目前使用的图形加速卡进行比较分析(表 2)。对于这组图形处理器,速度测量是在使用对齐机制、以及使用 FP16 和 FP32 的情况下进行的。包含此机制和混合精度的速度测量将分别在下面的表 4 和表 5 中展示。

因此,在测量了该表中 GPU 的速度后,我们可以说第一名是 RTX A4500 系列 GPU,训练时间为 31 分钟,但需要强调的是,这种模型训练速度是通过将所用 GPU 的数量增加到 4 个来获得的。如果忽略这一事实,上述 GPU 的训练速度将大大提高,这将使其在最终表中排在倒数第二位。

Quadro RTX 6000 系列 GPU 以 47 分钟的学习时间位居第二。值得注意的是,这种训练速度与所用处理器的数量呈反比关系,处理器数量为四个。如果只使用一个这样的 GPU,速度损失将约为 3.2 倍,因此时间将约为 153 分钟,并使其排在最后。

第三名是 TITAN RTX 系列 GPU,时间为 75 分 85 秒。这个学习速度分数是由于使用了 2 个处理器,从而缩短了模型的训练时间。

单卡训练速度毋庸置疑的领导者将是 GeForce RTX 3090 系列 GPU,训练时间为 78 分 26 秒。增加该 GPU 的数量将加速模型训练速度,这将明显超越所有上述 GPU 型号。模型训练时间测量数据可见表 4。

表 4 - 以前使用的 GPU 上的语言模型训练速度比较分析

image/png

以下训练速度测量使用 FP16 进行。与 FP32 相比,半精度可以减少模型训练期间的内存消耗并加速 GPU 上的计算。表示精度将低于使用 FP32。

测量上一表中 FP32 模型的训练时间,我们可以说神经网络的训练时间缩短了近两倍。根据性能测量结果,我们可以从表 4 中的机器学习 GPU 基准测试中观察到,GPU 的位置基本保持不变。Quadro RTX 6000 系列显卡从第五位上升到第六位,比 GeForce RTX 3090 GPU 快了 96 秒。最终数据如表 5 所示。

表 5 - 以前使用的 GPU 上的语言模型训练速度比较分析

image/png

社区

注册登录 发表评论