原贴链接

你好, 这里的一些人,像我以前一样,可能最想以低成本构建一个LLM(大型语言模型)机器。 我主要使用二手部件构建了一台价值4K欧元的机器,并想分享一下如果你选择类似配置可以期待的结果。 我决定为预算选择二手部件。

构建部件

  • 48GB VRAM(2x RTX 3090 EVGA FTW3 Ultra,均为二手)+ NVLink
  • 256GB DDR4 RAM,频率3533 MHz(8x 32GB Adata XPG AX4U360032G18I-DTBKD35G)
  • Threadripper 3970X(32核/64线程,默认值)- 二手,从eBay购买
  • Gigabyte TRX40 Designare(4个DDR4 RAM通道)- 二手,从eBay购买
  • 2x Straight Power 1500W电源
  • 一些其他部件(开放式机箱,外部电源按钮等)

总共大约花费了4千欧元。我使用了之前构建中的NVMe硬盘。

注意事项

  • Threadripper未超频;
  • 主板+RAM组合在设置RAM速度为3600 MHz及以上时无法启动;默认的XMP配置文件与3600 MHz RAM速度也不起作用;必须手动找到最大工作RAM速度(3533 MHz)。

基准测试

使用常见的上下文长度4096进行运行。格式为:

<模型名称> <版本> <参数数量> [<用于MoE的活动参数数量>] <量化> <磁盘上的大小>

(<CPU线程数>T)

我唯一的>=70B模型,完美适应两个GPU:

LLama 3.1 70B Q4_K_M 42.5GB

17.76 (32T)

使用GPU卸载但以不同程度运行在CPU/RAM上的模型:

MoE模型

Mixtral v0.1 8x22B [39B活动](Q4_K_S 80.48GB(2个专家)

4.40 (64T)

6.27 (32T)

5.32 (24T)

DeepSeek-Coder 2 236B [21B活动] Q3_K_M 112.67GB

2.59 (64T)

7.07 (32T)

5.55 (16T)

密集模型

Qwen-Instr 2 72B Q4_K_M 47.41GB

6.69 (64T)

7.40 (32T)

Qwen 2 72B Q4_K_S 43.89GB

10.64 (64T)

11.61 (32T)

Mistral-Large 2 123B Q4_K_M 73.22GB

1.91 (64T)

2.24 (32T)

讨论

在购买部件并组装机器之前,我试图从理论上计算最大tokens/秒。我认为瓶颈是RAM速度。

假设我们有:

  • 128 GB大小的模型
  • 2x无限快速GPU,48 GB VRAM
  • 大量RAM,线程读取速度80 GB/s
  • 无限快速CPU

对于密集模型,我们得到的理论估计是:tps = RAM_THREADED_READ_SPEED / MODEL_PART_THAT_SITS_ON_RAM = 80 / (128 - 48) = 1 tps。

当然,这没有考虑到:

  • 其他占用GPU VRAM的数据(激活,KV缓存,桌面管理器)
  • 因为我们不能完全填满GPU内存而产生的开销(单层不能在GPU之间截断,假设每层1.8GB,那么我们可以在GPU中容纳13层,13*1.8=23.6,留下400MB未占用)
  • 模型可能不会在RAM中优化放置,因此它不是使用所有4个RAM通道读取的
  • VRAM -> RAM移动开销
  • GPU间移动开销
  • GPU在推理上花费的一些(相对于CPU)时间
  • 量化值转换为RTX 3090可以使用的格式(float16?已读RTX 3090没有原生float8)
  • 其他我可能遗漏的东西。

对于MoE模型,我不知道如何实际计算它 :(

使用当前构建,我基准测试的最大密集模型的理论性能极限:

LLama 3.1 405B 151.21GB:

82.5 / (151 - 48) ~= 0.8 tps(测量值0.68,-15%)

Mistral Large 2 123B 71.22GB:

82.5 / (71 - 48) ~= 3.6 tps(测量值2.24,-38%)

教训

  1. 你可能不需要那么多RAM,最好购买可以超频到很高水平的快速RAM;在256 GB RAM中以约80GB/s的线程RAM读取速度运行LLM是痛苦的
  2. 不要使用比核心更多的线程,因为这会负面影响CPU缓存使用
  3. 模型大小(参数/磁盘大小),VRAM,RAM和基准测试的RAM线程速度不是性能的最终预测指标,但给出了线索
  4. MoE模型通常更快

本来可以在购买机器之前考虑这些,无论如何 - 我对我的成果感到满意。这对更好更昂贵的未来机器是一次很好的经验 ;)

附录

Passmark CPU/RAM基准测试结果

RAM速度3533 MHz:https://www.passmark.com/baselines/V10/display.php?id=507038400343(Memory Threaded 82,473 MBytes/Sec) RAM速度2666 MHz:https://www.passmark.com/baselines/V10/display.php?id=507037042699(Memory Threaded 65,344 MBytes/Sec)

来源

https://arxiv.org/pdf/2406.11931 - DeepSeek论文声称21B活动参数 https://mistral.ai/news/mixtral-8x22b/ - Mistral AI博客文章声称39B活动参数

讨论总结

本次讨论主要围绕使用2x RTX 3090和Threadripper 3970X构建的大型语言模型(LLM)推理系统展开。讨论内容包括硬件配置的详细介绍、性能测试结果的分享、散热问题的探讨以及性价比的考量。参与者们就如何优化硬件设置、提高推理速度、处理散热问题以及选择合适的硬件组件进行了深入交流。此外,还有关于使用MacBook等其他平台进行LLM推理的比较讨论,以及对未来硬件升级和性能优化的展望。

主要观点

  1. 👍 硬件配置的详细介绍

    • 支持理由:分享了使用2x RTX 3090和Threadripper 3970X构建LLM推理系统的详细硬件配置,包括GPU、CPU、RAM和散热系统等。
    • 反对声音:有用户提出使用MacBook也能达到类似的高性能推理结果,且无需复杂的硬件配置。
  2. 🔥 性能测试结果的分享

    • 正方观点:详细分享了不同模型在2x RTX 3090和Threadripper 3970X系统上的推理速度(tps),并讨论了影响性能的因素。
    • 反方观点:有用户对性能测试结果表示质疑,认为在MacBook上也能达到类似性能。
  3. 💡 散热问题的探讨

    • 解释:讨论了硬件配置中的散热问题,包括GPU温度、散热设计和机箱布局等,以及如何避免过热问题。
  4. 👀 性价比的考量

    • 亮点:讨论了使用二手零件构建预算友好型LLM设备的性价比,以及如何平衡性能和成本。
  5. 🤔 处理器比较

    • 解释:有用户分享了使用AMD Epyc处理器构建的廉价系统上的推理体验,与2x RTX 3090和Threadripper 3970X系统进行比较。

金句与有趣评论

  1. “😂 EmilPi:No, not at all. I guess it is either or all 1. good EVGA thermal design, 2. EVGA isn’t so powerful and I don’t overclock like mad 3. it is open case.”

    • 亮点:幽默地解释了硬件配置中散热问题的解决方案。
  2. “🤔 Roland_Bodel_the_2nd:"LLama 3.1 70B Q4_K_M 42.5GB - 17t/s" \nI just run that on my Macbook for about the same price and no hw hassles”

    • 亮点:提出了使用MacBook进行LLM推理的可能性,引发了对不同平台性能比较的讨论。
  3. “👀 EmilPi:Yes, as shown in https://github.com/XiongjieDai/GPU-Benchmarks-on-LLM-Inference Macs are decent choice for this. \nThere are pros, like what you mentioned, and cons, like Mac is not modular/extendable much.”

    • 亮点:提供了关于MacBook在LLM推理中的性能和局限性的详细信息。

情感分析

讨论的总体情感倾向较为积极,参与者们对硬件配置和性能测试结果表现出浓厚的兴趣,并积极分享自己的经验和见解。主要的分歧点在于不同平台(如MacBook和PC)的性能比较,以及如何平衡性能和成本。可能的原因包括对高性能硬件的需求、对性价比的追求以及对未来硬件升级的期待。

趋势与预测

  • 新兴话题:未来可能会有更多关于使用不同处理器(如AMD Epyc)和不同平台(如MacBook)进行LLM推理的讨论。
  • 潜在影响:这些讨论可能会影响用户在选择硬件配置时的决策,以及对未来硬件升级和性能优化的方向。

详细内容:

标题:高性能 LLM 推理装备构建及测试的热门讨论

在 Reddit 上,一则关于“2x RTX 3090 + Threadripper 3970X + 256GB RAM LLM 推理基准测试”的帖子引发了广泛关注。该帖获得了众多的评论和互动。

原帖作者分享了自己花费约 4000 欧元构建的一套主要由二手部件组成的 LLM 推理装备,并详细介绍了各个部件的价格和配置。同时,还提供了丰富的基准测试结果,包括不同模型在不同配置下的每秒处理令牌数(TPS)。

讨论焦点主要集中在以下几个方面:

  • 硬件散热问题:有用户询问两个 GPU 之间距离如此之小是否存在过热问题,作者表示由于良好的散热设计等因素,并未出现过热情况。
  • 不同 CPU 的性能对比:有人提到使用廉价 AMD Epyc 的构建与当前配置在某些方面表现相似。
  • 与其他设备的性能比较:如有人称在 Macbook 上能以相似价格获得类似性能,但也有人指出 Mac 设备在可扩展性方面的不足。
  • 纯 CPU 推理测试:部分用户对纯 CPU 推理的速度和效果表示关注。

有用户分享道:“我有一个使用廉价 AMD Epyc(8 通道 DDR4)的构建,从我的观察来看,在 CPU 和 DeepSeek Coder 上的速度完全相同。”还有用户说:“我有一个 64 核(128 线程)的 Threadripper 和 256GB 的 RAM。不确定如何获取 TPS,但直观感受大约是每秒一个单词。所以速度相当慢,但如果不着急等待快速响应,还是可以接受的。然而,随着积累的上下文增多,速度会呈指数级下降。”

讨论中的共识在于对作者分享的详细信息表示感谢,认为这为大家提供了有价值的参考。特别有见地的观点如关于如何优化硬件设置以提高性能的建议,丰富了讨论的内容。

总的来说,这次关于 LLM 推理装备的讨论为对该领域感兴趣的人们提供了丰富的经验和见解。