在没有足够视频 RAM 的 GPU 上推断大型语言模型

问题描述 投票:0回答:0

我正在尝试一些实验,在台式机上运行下载的语言模型。具体来说,到目前为止,Bloom 3B 和 7B 在具有 32GB RAM、2 核 CPU 且没有 GPU 的机器上运行。

(在整个问题中,我只会谈论推断 - 实际运行 - 预训练模型。大型语言模型的训练工作量可以方便地以 petaflop-days 来衡量;在桌面上这样做显然是不可能的。)

正如预期的那样,在弱 CPU 上运行这些模型有点慢,每次运行几分钟到几十分钟,如果硬件能更快地运行就太好了。但限制因素实际上似乎是内存。

Bloom-3B 下载为 6GB,运行时需要大约 12GB 内存。 Bloom-7B 下载为 14GB,运行时需要大约 28GB 内存。 (我猜这是因为它们下载为 fp16,但 CPU 不理解该格式,所以它们需要扩展为 fp32 才能运行?)这意味着,在 Windows 和其他背景下,Bloom-7B很难在这台机器上运行,任何更大的东西都行不通。

通常说神经网络更喜欢在GPU上运行。我查看了一家供应商提供的显卡清单,价格约为 2000 美元(是整台计算机价值的好几倍!)的高端 Nvidia 显卡只有 24GB 显存。从表面上看,这意味着如果我有那张卡,它在运行 Bloom-3B 时会快得惊人,但 Bloom-7B(显然更有趣)要么根本不会运行,要么必须花费大部分时间从主内存交换数据,因此 GPU 的速度将被浪费。 (哪一个是这种情况?它会完全运行吗?能够将参数保持为 fp16 会节省内存吗,还是我误解了这个问题?)

如果这个分析是正确的,那么当你推断(而不是训练)一个大型语言模型时,关于 GPU 的通常智慧是不适用的,你真正需要的是一个快速的 CPU 和大量的 RAM。

这是正确的,还是我遗漏了什么?

machine-learning memory deep-learning gpu language-model
© www.soinside.com 2019 - 2024. All rights reserved.