经过几天的谷歌搜索,关于大语言模型(LLM)推理功能的一般方式我有一些未得到解答的问题,在不使文本变得难以理解或过于抽象的情况下我一直没能找到答案。我认为以紧凑的格式将技术问题和答案汇总到一个帖子里是个好主意。
我正在考虑购置一个多GPU系统,主要用于单个LLM推理,可能也会做一些微调以及一些Stable Diffusion相关工作。在我可能要花一大笔钱之前,我很想得到这些问题的答案。
据我所知,LLM在内存带宽方面扩展性最佳。只要有足够的计算能力,增加它(计算能力)根本没有扩展性;这一切似乎都受内存速度的瓶颈限制。根据我的观察,对于价格合理的本地LLM推理来说,48GB像是一个理想数值;它可以轻松容纳具有大量上下文的Q8量化下的30B模型,或者具有合理上下文长度的Q4量化下的70B模型。量化模型似乎是从其中榨取更多性能的最佳方式,并且可以缩小模型以适配(内存),但代价是答案质量下降,并且GPU似乎能很好地处理量化模型。根据我的经验,Q4在将模型大小从FP16几乎减少四分之一的情况下,质量损失是可接受的。低于Q4似乎会使困惑度损失呈指数级增加。
我下面提出的问题仅适用于运行单个LLM实例。我假设两块相同的GPU将以与在一块GPU上运行单个LLM相同的速度运行两个相同的LLM,不考虑键值(KV)计算,它可以简单地串行完成。
GPU/VRAM问题: 1.0:多GPU系统的扩展性通常如何?不考虑额外的8GB,2x16GB的HBM2(1TB/s)是否比1x24GB的GDDR5(350GB/s)更好? 1.1:2x16GB HBM2与1x24GB GDDR6X(940GB/s)相比呢? 1.1:3x16GB HBM2与2x24GB GDDR6X相比呢? 1.3:对于32GB GDDR7(1.79TB/s)(即RTX 5090)有任何预测吗? 1.4:如果不忽略1.0问题中的额外8GB会怎样;例如32B - Q4_K_L与Q6_K_L之间在质量上有区别吗? 1.5:我应该避免低于fp16的量化吗?Q8?Q6? 1.6:与VRAM相比,计算能力到底有多重要?如果我能以相同的VRAM带宽值获得双倍VRAM但只有一半的FP16,我会有损失吗? 1.7:ARC用于LLM推理的性能如何?我还没有找到很好的基准测试。
PCI - e问题: 2.0:链路速度重要吗? 2.1:用转接电缆将所有GPU插入3.0x4插槽可以吗? 2.2:对于相同型号的GPU混合插槽带宽会怎样? 2.3:PCI - e分叉(1个3.0x16 -> 4个3.0x4)呢? 2.4:在推理过程中GPU之间有通信吗? 2.5:链路代际(具体3.0与4.0)到底有关系吗? 2.6:可调整大小的BAR(Resizable BAR)会有任何影响吗?
系统其余部分问题: 3.0:在进行GPU推理时CPU/平台到底有关系吗?(除了潜在的PCI - e差异之外) 3.1:ROCM有任何问题吗? 3.2:如果我愿意调整配置并可能重新编程小部分内容呢? 3.3:在Linux上呢? 3.4:在Windows上呢? 3.5:如果问题仍然存在,直接使用Vulkan呢? 3.6:CUDA在较旧的Nvidia GPU(Tesla M10,Tesla P40)上是如何工作的? 3.6:SYCL后端(特别是对于Intel ARC)的工作效果如何? 3.7:构建一个带有八通道DDR4(也许一旦价格可承受就使用四/八通道DDR5)并坚持使用CPU推理的工作站/服务器计算机是否更有价值?(例如EPYC 7262?)(根据我的计算,购买二手的约1000欧元,DDR4 - 8x在3200MT/s下将是200GB/s)
杂项问题: 4.0:微调在GPU资源方面有什么需求? 4.1:我应该省钱并使用OpenAI/Google/你喜欢的API提供商,还是仅仅为他们的用户界面付费订阅? 4.2:我是否应该简单地等到1.58的理想数值实现,和/或12B/30B模型远超它们目前的水平? 4.3:自己以低量化(IQ2_XS/M)运行100B +模型有什么有趣的地方吗?CPU推理的减速是否值得潜在的答案质量(Q4_K_M?Q6_K?)(我的系统有128GB的DDR4,双通道3200MT/s) 4.4:在答案质量方面,大型混合专家(MoE)模型与100B +模型(例如Mixtral 8x22B与Llama 3 120B)相比如何? 4.5:在较低量化下呢? 4.6:混合专家(MoE)模型在多GPU上扩展性更差吗?还是更好? 4.7:有传言说有一款24/32GB的Intel ARC Battlemage。如果它出现,值得购买吗?
最后的问题,更多是针对我自己的: 5.0:如果仅针对GPU且预算最高为1500欧元以获得最佳推理效果,你会推荐什么配置?我目前正在Tesla M10s、Tesla P40s、Instinct MI50s、RTX 3090s和7900 XTXs之间考虑选项。达到48GB将是主要目标,但成本效益对我来说也是一个重要因素。我不介意为了节省50%的钱而损失20%的性能。 5.1:你会建议我继续存钱直到我能买得起更大更好的东西吗?如果是这样,有什么建议? 5.2:关于这个话题你有什么想分享的吗?你是否使用多个GPU运行单个LLM实例?哪些GPU?什么模型,以及T/s?关于键值(KV)处理速度呢? 5.3:是否有我明显忘记问的事情,而这会在后面给我带来麻烦?
感谢您的时间!
讨论总结
原帖围绕多GPU系统用于本地LLM的诸多技术问题展开,如GPU/VRAM、PCI - e、系统其余部分、杂项以及针对自身情况的一些问题。评论者们根据自己的经验或知识对这些问题进行解答,有分享多GPU使用经验的,有针对特定技术(如CUDA、SYCL)进行解释的,也有给出硬件配置推荐和相关注意事项(如散热)的,整个讨论充满技术干货,氛围较为理性专业。
主要观点
- 👍 48GB显存对于120B模型不够。
- 支持理由:评论者自己拥有多GPU系统(7900XTX + 2x 7600XT)在尝试120B模型时发现48GB显存不够。
- 反对声音:无。
- 🔥 旧Nvidia GPU受自身架构特性影响,在CUDA新功能支持上有限制。
- 正方观点:CUDA包含计算能力、驱动/软件支持限制等方面,旧GPU架构无法很好运行新特性。
- 反方观点:无。
- 💡 MoEs适合多GPU计算。
- 解释:混合专家模型(MoEs)在专家间有很精细的划分,非常适合多GPU或分布式计算,效果至少不比密集模型差。
- 👍 在E - ATX主板上设置3个3090显卡不难。
- 支持理由:评论者自身有这样的设置经验。
- 反对声音:无。
- 🔥 1500欧元预算内P40性价比高,也可按需搭配3090。
- 正方观点:根据价格和性能综合考量得出。
- 反方观点:无。
金句与有趣评论
- “😂 我有一个多GPU(7900XTX + 2x 7600XT)系统,当你尝试120B模型时,48GB是不够的。”
- 亮点:用自身实例直接回答了关于显存是否足够的问题。
- “🤔 CUDA不是单一的东西。其特定方面包括:计算能力,即给定GPU系列拥有或不拥有的确切架构特性。”
- 亮点:对CUDA进行了深入且独特的解释。
- “👀 Ok_Warning2146:It is not hard to setup 3x3090 with an E - ATX mobo that has 7xPCIe 5.0.”
- 亮点:分享了特定主板上设置显卡的简易性。
- “😎 我认为你应该找一个拥有多个P40或3090系统的人,和他们打个电话之类的。这不仅仅是太长不看(tldr),而是太长全看(tlda)。”
- 亮点:用幽默的方式指出原帖内容繁杂。
- “💪 P40似乎是性价比最高的。”
- 亮点:简洁给出性价比结论。
情感分析
总体情感倾向为中性,大家主要是在进行技术交流,没有明显的情绪偏向。主要分歧点较少,可能因为多数都是针对技术问题给出事实性的解答或经验分享。如果存在潜在的小分歧可能是在硬件推荐方面,不同的人根据自己的使用场景和预算有不同的推荐,但这也是正常的技术讨论范围内的差异。
趋势与预测
- 新兴话题:英特尔ARC Battlemage显卡在不同容量下的性价比权衡可能会引发后续讨论。
- 潜在影响:对于那些想要构建多GPU系统用于LLM的人来说,这些讨论可以为他们提供更多参考,在硬件选择、技术应用等方面做出更合理的决策,推动本地LLM的应用发展。
详细内容:
标题:关于多 GPU 系统用于本地 LLM 的热门讨论
在 Reddit 上,有一篇题为“Multi-GPU system for Local LLM?”的帖子引起了广泛关注,获得了众多点赞和大量评论。帖子的作者在经过几天的搜索后,对 LLM 推理功能的一些技术问题存在疑惑,希望能将这些问题和答案集中在一个紧凑的讨论中。作者考虑购置多 GPU 系统用于单个 LLM 推理,可能还会进行一些微调以及 Stable Diffusion,在做出可能昂贵的决定之前,希望获得这些问题的答案。
讨论的焦点主要集中在以下几个方面:
- GPU/VRAM 问题:如不同规格的 GPU 和显存的性能比较,量化模型的选择等。
- PCI-e 问题:包括链路速度、插槽带宽混合、分叉等对性能的影响。
- 系统其余部分问题:例如 CPU 平台对 GPU 推理的作用,ROCm 的相关情况等。
有人分享道:“我有一个多 GPU(7900XTX + 2x 7600XT)系统,当你尝试 120B 模型时,48GB 是不够的。”还有人提到:“ROCm 在 Linux 下工作,但具体来说,最好使用 Ubuntu/Kubuntu 24.04。它可以工作,但不是最快的。”
有用户表示:“CUDA 并非单一的事物。特定方面包括:计算能力,即给定 GPU 系列所具有或不具有的精确架构特征。尽管它们通过驱动程序、软件库和工具框架支持多代 GPU,但某些新的加速、量化或优化算法功能可能在旧型号上无法很好地运行。”
关于 SYCL 后端的工作情况,有人指出:“SYCL 如同 Vulkan、OpenCL 一样,存在的问题是许多推理软件、高性能计算软件和机器学习软件忽略了它们的存在。虽然 SYCL 是供应商中立和跨平台的,甚至可以在 AMD 和 NV GPU 上运行,但软件生态系统的冷漠和不使用是首要问题,其次是英特尔对其消费级 DGPU 支持的不稳定。”
对于模型大小和量化的选择,有人认为:“对于高达 120B 大小的模型,也许可以量化到 60GB 在 Q4 水平,想象购买 3 - 4 个 24GB GPU 并进行量化快速且舒适地运行。如果是二手的,以 800 美元左右买到 4 个 3090 并非不可想象。”
在考虑是等待技术进步还是立即购买的问题上,有人认为:“坐下来,吃着爆米花,等待两年看看会发生什么将是非常有成效和有趣的,但也存在机会成本。”
在讨论中,大家对于各种方案的选择存在不同的看法和建议。有人认为 P40 在性价比方面表现出色,而有人则更倾向于选择 3090 等型号。对于未来的发展和选择,大家仍在热烈探讨中。
那么,在面对如此众多的选择和不确定性时,您会如何决策呢?是等待技术的进一步突破,还是根据当前需求尽快入手?这是一个值得深入思考的问题。
感谢您的耐心阅读!来选个表情,或者留个评论吧!