Studio M4max 128G 是否合适跑大模型

195 天前
 886106
看上 M4 的芯片了,128G 适合跑大模型么
5016 次点击
所在节点    Apple
37 条回复
clf
195 天前
挺适合。

2080Ti 方案的话,残值低,买到手=亏 70%,还没算额外的电源成本和 8 卡主板等周边配套的成本。

起码在能耗、性能和省事上来说,M4 Max 很不错。(至少后续没兴趣在本地跑大模型了,也能卖二手,保值率还是挺高的)
wclebb
195 天前
Mac Studio M2 Max 64G 跑过 70B DS ,能跑。只是找不到实用性价值(都是用 API 和 ChatGPT 聊天)。

DS 问多了也会把我搞抑郁,不敢问了。所以 128G 肯定能跑。只是得问一下实用性的价值在哪里而已。iOS Craft 已经支持离线下载 DS 可以用 AI (估计 Mac 也能)。

后面估计可以玩更好玩的玩法,只是现在还没有。
rogerer
194 天前
为了考虑要不要在本地跑 LLM 买设备,不如考虑一下这个钱拿去买 token 会不会更好。开源的模型,deepseek qwen llama ,它们的 api 也都不算贵。
newbeelity
194 天前
请教一下 8 张 2080 怎么硬件交火,用什么交火硬件
@mumbler
ShadowPower
194 天前
@BernieDu 推理对 PCIe 带宽要求很低,训练的要求倒是很高
newbeelity
194 天前
多张民用显卡叠加跑模型一直是个问题,目前仅有软件方案 exo 等(仍在 beta ),虽然官方出了 nvlink 硬件,但支持的显卡,及数量都是优先的。所以用民用显卡显存堆起来跑大尺寸模型本身就不可行。我给楼主的建议是,mac studio 可行,速度还能接受,每秒 20 个 token 左右
-- 来自 m3 ultra 512G 统一内存用户
BernieDu
194 天前
@ShadowPower 如果推理不要求带宽那都用内存推理了。。
ShadowPower
194 天前
@BernieDu
PCIe 接口在推理的过程中,传输的数据只有用户输入的文本和模型返回的文本(一次一 Token )
多卡的话,再加上一些层与层之间传输的信息以及一些上下文更新信息,也非常少

吃的带宽都是 GPU-显存之间的带宽,这部分不走 PCIe 。为什么吃:因为生成一个 Token 就得访问一次所有激活参数。但你需要注意的是,这是 GPU 访问自己负责的那部分参数,多 GPU 也不会需要 A GPU 去访问 B GPU 上的显存。

如果用 NVIDIA 以前的 SLI 技术,那倒是会有上面说的情况。但跑模型并不采用这种技术方案,AI 工程师不会那么蠢……
ShadowPower
194 天前
@BernieDu 我现在用来跑 LLM 的显卡,实际 PCIe 带宽是 7.88GB/s (用的平台太老),显卡的显存带宽是 288GB/s ,跑 5bpw 量化 14B 模型实际有 28 token/s
BernieDu
194 天前
@ShadowPower 14B 5bit 的小模型大概需要 9g 显存,你这用不着交火吧。我自己没试过 pcie 显卡交火跑模型,但是 ds 查的模型并行(场景是模型过大,需拆分到多个 GPU) 前向传播时需频繁传递中间张量(如层间输出)。PCIe 带宽 7.88GB/s 会限制大张量传输。成为推理瓶颈。让我用 nvlink 。(应该不会封号吧)
ShadowPower
194 天前
@BernieDu
你用 DeepSeek 的话,那就好办了。
你应该这么问 DeepSeek:

---------------

这是 LLAMA 模型的尺寸信息:
'llama3_70b': dict(
base_model='llama3_8b',
vocab_size=128256,
hidden_size=8192,
intermediate_size=28672,
num_hidden_layers=80,
num_attention_heads=64,
num_key_value_heads=8,
max_position_embeddings=8192,
rms_norm_eps=1e-5,
rope_theta=5e5,
),

双显卡跑 LLAMA 70B 模型,batch_size=1 ,模型拆分到两块显卡上,采用流水线并行。激活值精度为 float16 ,计算生成单个 token 时,两块显卡之间前向传播数据大小。

-----------------

它给你算出一个大小,然后,PCIe 4.0 x16 的带宽大约有 32GB/s ,用带宽除以每 token 传输的数据量,就可以算出这个瓶颈会限制 Token/s 到多大了。
swmjjy
194 天前
@BernieDu 要求带宽的是 GPU 和自身显存之间的通信, 而 GPU 之间几乎只是每层(甚至可以是每 N 层)进行一次简单的中间状态交互, 带宽要求可以非常低

举例, 8 张 3060, Qwen2.5-72B 4bit 量化
promp prefill: 470token/s
decode bs=1: 37token/s
decode 高并发: 430token/s

(这几个数据对于 m4 max 而言是 ~50token/s, ~12token/s, ~30token/s)




swmjjy
194 天前
@newbeelity 这并不是什么问题, 主流推理框架全都正式支持至少一种并行方式, 而且都不必选依赖 nvlink 或者对应 GPU 的同等通信方式, exo 仅仅属于在 mac 社区里比较知名的简单山寨实现而已
newbeelity
194 天前
@swmjjy 感谢,马上去试试:)
BernieDu
194 天前
@swmjjy 感谢数据,被 ds 的回答误导了。。
gigishy
194 天前
@noobjalen 你保守了……我 m1 的 16g 内存 iMac ,流畅 14b 。32b 明显卡顿,测试了一下,缺内存的原因,不是 m1 的原因。
gigishy
194 天前
@liulicaixiao 有一个压倒所有你说的因素的原因:隐私和安全。因为这个缘故,才花五位数买来本地跑模型……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1118789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX