原贴链接

显示8x A100 80GB的nvidia - smi输出(图片链接)。如果我理解正确的话,完整的R1仍然比这个集群的655GB显存要大。我可能还能使用另一个集群,不幸的是它们仅通过10Gbit连接,而不是无限带宽(infiniband)。有什么想法吗?我是运行4位量化吗?还是在两个集群上运行8位拆分?还是不加载某些专家(模块)?或者在一个集群上加载80%的模型,其余的加载在另一个集群上?我对自托管(这些集群不是我的)非常不熟悉,所以希望能得到大家的指导。我只对Deepseek R1感兴趣,对精简版(distills)或其他模型完全不感兴趣。

讨论总结

原帖作者想在特定集群上运行Deepseek R1,遇到如VRAM不够、集群连接速度慢等问题并寻求建议。评论者们从量化操作、网络连接、集群计算等多方面给出了建议,同时也指出了运行过程中的性能瓶颈,如10Gbe互联是瓶颈、以太网在超算中有延迟等。其中夹杂着一些无关或调侃性的评论,但整体讨论主要围绕如何在给定集群资源下运行Deepseek R1展开。

主要观点

  1. 👍 在单个集群上运行量化较为容易
    • 支持理由:多位评论者在提及量化操作时默认在单个集群上较容易开展
    • 反对声音:无
  2. 🔥 在两个集群上运行会很困难且需要大量试错
    • 正方观点:需要协调两个集群资源、解决网络连接等诸多问题,如grim - 432的观点
    • 反方观点:无
  3. 💡 10Gbe互联会成为主要瓶颈
    • 支持理由:低带宽会限制双集群运行的效果
    • 反对声音:无
  4. 🤔 双节点目前优势不大
    • 支持理由:从量化和运行效率来看,单节点能满足部分需求,如部分评论者指出单节点量化操作就可运行
    • 反对声音:若采用8位INT8量化双节点会有较好效果
  5. 😎 由于Ampere无fp8支持只能采用量化
    • 支持理由:硬件本身特性限制,如AmericanNewt8的观点
    • 反对声音:有观点称Ampere并非不能运行FP8只是速度慢

金句与有趣评论

  1. “😂 运行跨两个集群将会花费大量的工作、不断试错,尤其是如果你还没有掌握第一种方法的话。”
    • 亮点:生动地表达出在双集群运行的难度
  2. “🤔 以太网有巨大的延迟(约10000纳秒),这对超级计算来说不是很好,你需要利用串行连接而不是交换的东西,即光纤通道或无限带宽(< 600ns)。”
    • 亮点:清楚地指出以太网在超算中的性能局限
  3. “👀 要么使用llama.cpp运行q6量化,要么通过VLLM运行AWQ 4位量化。”
    • 亮点:直接给出了可操作的量化运行方式
  4. “😏 AmericanNewt8: You’re already stuck with a quant since Ampere doesn’t have fp8 support. Int4 with vllm would be what I’d look at first.”
    • 亮点:明确阐述Ampere硬件下的量化应对方式
  5. “💥 To run single model across two clustered servers, you realistically need 200Gb/s+ networking bandwidth and serial not switched connectivity (e.g. fiber channel or infiniband) for this to make any sense, which is likely cost prohibitive ($$$$$).”
    • 亮点:提出双集群运行模型在网络带宽和成本方面的要求

情感分析

总体情感倾向为中性偏积极。大部分评论者都积极地给出技术建议、分享经验或参与技术讨论。主要分歧点在于Ampere硬件对FP8的支持情况,以及双节点运行是否有优势。产生分歧的原因在于不同的技术认知、测试环境和应用场景需求。

趋势与预测

  • 新兴话题:可能会进一步探讨不同量化类型在不同硬件和集群环境下的优化,如EXL2量化类型在Deepseek R1运行中的更多应用潜力。
  • 潜在影响:如果能在给定的集群上成功运行Deepseek R1,可能会为其他类似的模型自托管运行提供参考,也可能促使相关硬件和软件技术在集群计算领域的优化和发展。

详细内容:

标题:关于利用 A100 80GB 集群运行 DeepSeek R1 的热烈讨论

在 Reddit 上,一则题为“我可能有机会使用 8 个 A100 80GB 集群,如何运行 DeepSeek R1?”的帖子引起了广泛关注。该帖子获得了众多的评论和讨论。

原帖主要探讨了在拥有一定规模的 A100 80GB 集群且网络连接条件有限的情况下,如何运行 DeepSeek R1 模型的问题。引发的主要讨论方向包括如何选择量化方式、如何在多集群间分配任务以及网络带宽对性能的影响等。

讨论焦点与观点分析: 有人认为在单个服务器上运行量化模型相对简单,但在两个服务器集群间运行则需要大量工作和尝试,且 10Gbit 的网络连接可能是个严重瓶颈。例如有人说:“运行一个量化在单个服务器上很容易。但在两个服务器集群间运行则需要大量工作和尝试,特别是如果您还没有掌握第一种方法。可能不值得费力。而且您说得对,10Gbe 互连将是一个主要瓶颈。” 对于网络连接方式,有人提到以太网有较大延迟,不太适合超级计算,像光纤通道或 Infiniband 这样利用串行连接而非交换的方式更好。比如:“以太网有巨大的延迟(约 10000 纳秒),对于超级计算来说不是那么好。您需要使用利用串行连接而非交换的东西,即光纤通道或 Infiniband(<600ns)。” 也有人认为 RoCE(RDMA)是一种可行的高性能网络选项。例如:“HFT 人员使用高性能网络选项,如 RoCE(基于以太网的 RDMA 直接内存访问)和 Infiniband。如果您想让事情真正顺利进行,您可以开始编写自己的网络内核模块,但 RoCE 是您能找到的最快的封装选项。” 还有观点指出,许多大型集群使用以太网进行集群 GPU 通信,同时也有人认为 Infiniband 是终极选择,约 65%的超级计算机和 HPC AI 集群使用它。 关于量化方式,有人建议先尝试 4 位量化,或者考虑 8 位拆分在两个集群上运行。有人提到:“要么使用 llama.cpp 运行 q6 量化,要么通过 VLLM 在单个节点上运行 AWQ 4 位。使用 AWQ 量化,您可以运行‘–tensor-parallel 8’,这应该能让您达到约 25 - 27 TPS。不确定 q6 的速度,但应该在 17 - 20TPS 左右。当然,如果系统设置得当,有单独的根交换机和适当的互连。VLLM 对于多用户和批处理需求会更好,llama.cpp 对于较少用户应该没问题。”但也有人质疑 25 - 27 TPS 的速度似乎过低。 有人分享了在特定硬件上运行模型的经验,指出存在的问题和性能表现。比如:“在尝试在 CPU xeon Sapphire Rapids 56 核/512GB DDR5 内存(8 个通道)上运行具有较小上下文大小的 Deepseek 模型时,出现了问题。大约每秒能得到 3 - 4 个令牌。我正在运行完整的 671b 模型和小上下文(默认 Ollama)。”

总之,这场讨论展示了在利用有限资源运行复杂模型时所面临的诸多技术挑战和不同的应对思路。