本地部署 Edge0-145B,98GB 放 NAS 慢 51 倍

DGX Spark 完整教程,Edge0-145B 98GB 分三层

结论先行:官方把 40GB 放内存、48GB 放 SSD,赌的是命中率,不是带宽

这句判断来自一次实测量出来的数:同一份 105,368,210,944 字节的文件,同一台工作站,放本机 NVMe 冷读 18.3 秒,放 NAS 15.6 分钟。

环境、命令、量出来的数都在下面,可以直接照着重跑。

权重下完,98GB 躺在盘上,多数人的下一步都一样:把路径填进启动命令,然后等。

我今天只把「路径填哪」这一段单独拿出来量了一遍。

差 51 倍。盘没坏,网没断,命令一个字没改。

这一段在教程里基本是空白。所有部署文档从「下载权重」写到「启动服务」,中间那句「文件放哪个目录」从来只有一句话:随便放。而 Edge0-145B 这个东西,恰好是最不能随便放的一个 ------ 它把一份模型拆成了三层,三层各自该待在哪,官方给了口径,但那份口径里有一层放到 NAS 上会直接不成立。

我按你部署时真正会撞上的顺序排了三步:先看清它为什么是三层,再定每层放哪块盘,最后给一条能照着敲的搬运链路。三步都有数字,都能复跑。

① 第一步:先看清它是三层,不是一份文件

我干的第一件事不是下载,是数仓库里到底有几个文件、各多大。这一步行之有效,因为它能把「98GB」这个模糊的数,拆成几个你能分别决策的块。

Edge0/Edge0-145B-q3k 这个仓库,93 个文件,合计 105,368,210,944 字节,折 98.13 GiB。挑出其中最大的几个:

文件 字节数 折合 官方口径
ple-fp8.gguf 51,200,246,112 51.20 GB 「约 48GB 词表,放 SSD 按需读」
experts.bin 40,076,574,720 40.08 GB 「约 40GB 专家库,放系统内存」
model-skeleton.gguf 5,991,569,248 5.99 GB 未单独提及
latent_dense_q8.bin 3,743,416,320 3.74 GB 未单独提及
latent_dense_q4.bin 1,981,808,640 1.98 GB 未单独提及

官方说的是「约 40GB 专家库放内存、约 48GB 词表放 SSD」。仓库里真的是两个 40.08GB 和 51.20GB 的文件,误差 0.08GB 和 3.2GB。这不是架构图上的示意方块,是 ls 出来能对上的三个目录。

这就是它跟以前那些模型最不一样的地方。你下过的绝大多数 GGUF 是「一个文件就是整个模型」,放哪都行,最多影响一次加载速度。Edge0-145B 是「三层分开部署」,每层被访问的频率差好几个数量级,所以放错位置不是慢一点,是慢到不能用。

顺带说一个很多人会踩的坑:Edge0-145B-NVFP4 那个仓库是 105.12 GiB,比 q3k 还大 7 GiB,但 experts.bin 是 44.30 GiB ------ 它把专家库换成了更宽的格式。你如果照着「NVFP4 更省」的直觉去下,会多下 7GB 反而没省。q3k 才是这三层结构最紧凑的那一版。

② 第二步:每层要多少命中率,这个数决定它能不能离开本机

这一节是整篇的核心。同样两个 40GB 级的文件,一个放 SSD 完全没问题,另一个放网络盘直接不成立。原因不在大小,在「一个 token 要碰它几次」。

官方给的目标吞吐是 80 tok/s,也就是每 token 有 12.5 毫秒预算。我按这个预算反算了两个数。

先算全量读:如果一个 token 要把 51.20GB 的 ple 表整个读一遍,需要 4,096 GB/s ;把 40.08GB 的 experts 读一遍,需要 3,206 GB/s。任何存储介质都做不到 ------ 本机能摸到的最快一块 NVMe 顺序读是 5,762.4 MB/s,差 700 倍。

所以它一定不是「全量流式读盘」,而是「查表只命中少数行、专家按路由取少数个」。这就有了命中率的概念。

再算全 miss:假设你运气差到每个 token 都要把 40.08GB 的专家库整个从盘上取一次,各介质的理论上限是:

放在哪 顺序读吞吐 全 miss 时的 tok/s 上限 要撑 80 tok/s 需要的命中率
本机 C: NVMe 5,762.4 MB/s 0.1438 tok/s 99.82%
本机 D: NVMe 3,538.0 MB/s 0.0883 tok/s 99.89%
NAS(SMB,千兆) 112.59 MB/s 0.0028 tok/s ≈100%,数学上不可达

NAS 那一行是 0.0028 tok/s。翻成时间:一个 token 等 357 秒,六分钟。不是「慢一点」,是这条路本身不成立。

有人会说本机 NVMe 不也才 0.14 tok/s。区别在命中率:NVMe 上你只要 99.82% 命中率就能撑到 80 tok/s,剩下 0.18% 的 miss 落在 12.5 毫秒预算里还能被摊掉。NAS 那条路上你需要 100% 命中 ------ 而 100% 命中意味着一次都不读盘,那你把文件放 NAS 干什么。

这就是三层结构的真实含义:官方把 40GB 放内存、48GB 放 SSD,赌的是命中率,不是带宽。 你把它放 NAS,等于把「赌命中率」换成了「赌物理定律失效」。

有读者会问:SSD 和 NAS 不都是盘吗,差在哪。差在 NAS 中间隔了一条千兆线,而这条线我量过它的上限:

并发路数 聚合吞吐 每路分到 对 125 MB/s 线速
单流 83.74 MB/s 83.74 67.0%
2 路 112.76 MB/s 56.38 90.1%
4 路 111.86 MB/s 27.96 89.5%
8 路 112.59 MB/s 14.07 90.1%

两路就到顶,四路八路一点都不再涨。加线程唯一的效果是把每路从 56 MB/s 摊薄到 14 MB/s ------ 总带宽不变,单个请求反而更慢。

这不是 NAS 的盘慢,是那条千兆线已经满了。 换 NAS 型号、换硬盘、加缓存,都不会改变 112.59 这个数。你要改的是链路,不是设备。

这里必须插一句方法学,因为我自己先被骗了一次。第一版我偷懒用普通缓冲读 NAS,测出单流 104.71 MB/s、双流 211.47 MB/s、四流 223.17 MB/s。

211 MB/s。这条链路是千兆的,物理上限 125 MB/s。211 比 125 还高,物理不可能。 那不是网络速度,是 Windows 客户端缓存在替我读。复测时更离谱,同一口径抓到一次双流 6,548.55 MB/s ------ 这个数连解释都不用解释。

所以我给自己定了一条判据:在 NAS 上测带宽,只要读数超过链路物理上限,读到的就是本地缓存,不是网络。 后面所有数字都是改用 FILE_FLAG_NO_BUFFERING、8MB 块、每档校验「实际读到字节数 == 目标字节数」重测的。

③ 第三步:98GB 怎么弄到机器上

定完放哪,剩下的问题是怎么搬。这里我踩了个很实在的坑,值得单独说。

我一开始按惯例去 hf-mirror 拿。同一个文件、同一天,一个 12MB 的 Range 请求给它 40 秒,只回了 3,863,239 / 12,582,912 字节,速率 94 KB/s。

换 modelscope,单流 21.2 MB/s ,8 路并行 44.44 MB/s。

同一个文件、同一天,两个源差 225 倍。 这不是我网络的问题,是源的问题。你如果照着某篇教程认准一个镜像源,又刚好碰上它今天不行,会以为是自己环境配错了,然后去折腾代理、折腾 DNS、折腾 MTU ------ 全都白折腾。

8 路并行这里还有个认知修正:44.44 ÷ 21.20 = 2.10 倍,不是 8 倍。按 8 倍规划时间会差近四倍。

搬运链路我给一条能照着敲的(协议头抽成变量,下面命令里的地址前面要补上它):

bash 复制代码
# 0. 先花 20 秒验源,别一上来就整个下
SCHEME=https
MIRROR=modelscope.cn
timeout 20 curl -s -o /dev/null -w '%{speed_download}\n' \
  "$SCHEME://$MIRROR/models/Edge0/Edge0-145B-q3k/resolve/main/experts.bin"
# 输出低于 5000000(5 MB/s)就换源,别硬等

# 1. 词表层 51.20GB 走本地 SSD
mkdir -p /data/models/edge0-145b/ple
# 2. 专家库 40.08GB 进内存盘,或最快的本地 NVMe
mkdir -p /dev/shm/edge0-experts
# 3. 骨架与 dense 层(合计约 11.7GB)跟词表同盘
mkdir -p /data/models/edge0-145b/skeleton

三个 mkdir 就是三层。第 1、3 层放本地 SSD 一点问题没有,第 2 层要么进内存、要么进本地 NVMe,唯独不能进网络盘。

省钱的账我也摊开了。一块 2TB 的企业级 NVMe 现在一千出头,比把千兆升到 2.5G(换交换机加换网卡,两千块起)便宜一半,也比买一台新 NAS 便宜一个数量级。而这 98GB 摊在 2TB 上只占 5%。

反过来,如果为了省这一千块把它放 NAS 上:冷读一次从 18.3 秒变成 15.6 分钟,多等 15 分 18 秒。一天重启三次,一个月 23 小时。这 23 小时换一千块,时薪 43 块。

一块 2TB 的 NVMe 一千出头,比千兆升 2.5G 的两千块便宜一半,而这 98GB 只占它 5%。

④ 三层的落位约定,和两个仍然没答案的问题

我给自己定的落位规则,可以直接抄:

层 文件 大小 放哪 为什么
词表 ple-fp8.gguf 51.20 GB 本地 SSD 按需读、不随机跳,本地 SSD 够快
专家库 experts.bin 40.08 GB 系统内存 或 本机 NVMe 每 token 都可能碰,要 99.82% 以上命中
骨架 + dense model-skeleton.gguf 等 约 11.7 GB 跟词表同盘 加载一次即常驻,位置影响很小

如果你手上是 DGX Spark 这类统一内存机器,第二层不用另找盘 ------ 40.08GB 塞进 122GB 的统一内存池毫无压力,还省掉整次读盘。反过来说,这也意味着「专家库放 NAS」对你根本不是省钱选项:统一内存一次都碰不到那条千兆线,放了就是纯亏。

两个问题我今天没答案,如实写在这里。

一、Edge0-145B 本体我没跑起来。 98.13 GiB 走公网 8 路要 39.5 分钟,今天的时间盒里没下完。所以这篇里没有任何 tok/s、没有加载耗时、没有显存占用。上面所有推理数字都是用「全 miss 上限」反算出来的边界,不是实测命中率。Edge0 的专家路由策略和投机解码参数都没公开,真实命中率无法从外部推断。

二、我这台机只协商到千兆。 想验证「换 2.5G 能把 112.59 抬到多少」,得先有 2.5G 网卡和交换机,手上没有。所以「链路满了」这个结论,我只证到千兆这一档为止。

反过来说,也正因为这样,那个 0.0028 tok/s 反而更硬 ------ 它是按 112.59 MB/s 这个已经跑满线速的数算的。你要说「换条更快的线」,得先证明那条线真更快,而 2.5G 也只把 112.59 抬到 280 左右,离 3,206 GB/s 还差四个数量级。

参考来源:

  • Hugging Face Edge0/Edge0-145B-q3k、Edge0-145B-NVFP4、Edge0-120B-q3k 三仓库逐文件字节数(2026-11-14 00:1x 用 hf-mirror API 求和)
  • Edge0-145B 官方模型卡(「约 40GB 专家库放系统内存、约 48GB 词表放 SSD」口径,权重 2026-11-12 开放)
  • modelscope / hf-mirror 同日同文件 Range 请求速率对照(2026-11-14 00:2x)
  • 本机实测:Windows 工作站(24 核 / 96G / C: 与 D: 各一块企业级 NVMe)、NAS 走 SMB 千兆链路
  • 数据落盘:site_matrix/runs/edge0_size_20261114.json、edge0_calc_20261114.json、d7_local_disk_20261114.json、d7_nas_nobuf_20261114.json、d7_nas_cache_20261114.json

验证等级:L1 | 四介质吞吐为今日实机测量(原始 JSON 与可复跑脚本已落盘),每档校验「实际读到字节数 == 目标字节数」,绕客户端缓存(FILE_FLAG_NO_BUFFERING,8MB 块,缓冲预分配在计时区间外);并作废一组超过千兆物理上限的假值,判据已写进正文。仓库体积为逐文件求和,非估算。Edge0-145B 本体未下载未加载,全文无任何 tok/s 与显存占用;第二节命中率为按「全 miss 上限」反算的边界值,不是实测命中率。

数据说明:千兆链路物理上限按 125 MB/s 计。吞吐为实际读盘字节数 ÷ 墙钟耗时,未平滑。NAS 只测到千兆这一档,2.5G / 10G / SMB 多通道 / NFS 均未测。本机网卡协商速率上限为千兆,Get-SmbMultichannelConnection 返回拒绝访问,多通道是否启用未能确认。

声明:本文为个人实机测试记录,机器与模型均自购自装,不含任何厂商合作。测试环境与你的环境可能不同,数字仅供参考。


本文所有数字均为本机实测,非引用。环境与脚本版本见文末参考来源。 作者:丘山录 · 记录本地部署与算力实测

相关推荐
一只废狗狗狗狗狗狗狗狗狗28 分钟前
自监督式学习
人工智能·深度学习·机器学习·bert
武子康1 小时前
给 H3-World 叠加 Turbo,动作 LoRA 为什么还要重新验收?
人工智能·agent·claude
Dawson Zhu1 小时前
【分布式训练④】张量并行与序列并行:把单层参数切碎分到多张卡
人工智能·语言模型·架构·aigc·agi
Martina_03212 小时前
AI生成的3D白模单帧没问题,镜头一移动就被挡?用6步检查遮挡与构图
图像处理·人工智能·数学建模·3d·ai·自然语言处理·游戏策划
泯泷2 小时前
SFT 的真相:它不教模型"知道什么",只教它"怎么说"
人工智能·llm·agent
JJJennie7772 小时前
MAI Gateway 免费试用与付费方案详解:先验效果,再谈 ROI
人工智能·大模型·gateway·ai网关
AI_Gump3 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
萝卜小白3 小时前
深度学习基础面经
人工智能·深度学习