开发者生态
morning
Show HN:在 48GB Mac 上运行 104GB Qwen3.8-Flash-Next,速度约为 12 tok/s
摘要
Run Qwen3.8-Flash-Next on a Mac that can't hold it. The model is a 125B-parameter mixture-of-experts, 104 GB on disk at 4-bit; slotstream streams it from SSD and runs it in whatever memory you give it...
the
slotstream
and
tok
can
your
disk
from
you
are
2026-09-02
1 阅读
约9分钟阅读
carloslfu
字号:
在撑不住的Mac上运行Qwen3.8-Flash-Next。该模型是一个 125B 参数的专家混合模型,4 位磁盘上有 104 GB 的空间; slotstream 从 SSD 流式传输它并在您提供的任何内存中运行它。一个 Swift 二进制文件,没有 Python;它使用 Ollama 和 OpenAI 聊天 API,因此您现有的工具无需更改即可工作。在 48 GB M5 Pro 上 热解码 ~12 tok/s 冷启动到第一个令牌 ~3 s 峰值内存 32 GB(自动调整大小;您可以设置上限) 磁盘重量 104 GB Apple Silicon、macOS 14+ 和 ~110 GB 可用磁盘。首先是磁盘:无论您的内存如何,512 GB Mac 都是现实的最低配置。自动调整大小永远不会占用整个机器。每层得到的内容:你的 Mac slotstream 进行热解码 8 GB 8.1 GB — 最低 ~3 tok/s,doctor 警告它将分页 16 GB 10 GB ~4 tok/s 24 GB 16 GB ~8 tok/s 32 GB 22 GB ~9 tok/s 48 GB 及以上 33 GB — 更多什么也买不到,请参阅内存 ~12 tok/s 这些行直接来自 slotstream doctor --sim-ram N ,这样你就可以重现它们。仅 48 GB 行是在真实硬件上测量的;其他的都是根据曲线估计的,较小的 Mac 也有较慢的 SSD。下载任何内容之前运行 slotstream doctor — 它会打印您的机器的计划以及磁盘是否可以承受重量。卷曲-fsSL https://raw.githubusercontent.com/carloslfu/slotstream/main/install.sh | sh 将预构建的二进制文件安装到 ~/.slotstream/bin 并将其放在您的 PATH 中。重新运行同一条线路进行升级;使用 rm -rf ~/.slotstream 卸载。版本是由 CI 从具有签名来源的标记提交构建的,因此您可以验证资产而不是信任下载: gh attestation verify slotstream-arm64.tar.gz --repo carloslfu/slotstream 或者自己构建 - 命令行工具就足够了,不需要 Xcode: git clone https://github.com/carloslfu/slotstream && cd slotstream make build 二进制文件很小;权重不是 — 24 个文件一次 103.8 GB。服务并运行在首次使用时提供下载,或者 slotstream pull 直接进行下载。在传输任何内容之前,它会打印大小、目的地和可用磁盘,等待“是”,如果磁盘无法容纳它,则直接拒绝。真正的安装需要 35 分钟。无论您打开多少个连接,Hugging Face 的传输速度上限约为 36–57 MB/s,因此超过约 400 Mbps 后,等待的就是 Hugging Face 的日子,而不是您的链接。计划在约 2 小时 20 分以 100 Mbps 传输; 25 Mbps,约 9 小时。中断是安全的:拉取从中断处准确恢复,并且所有 24 个文件都会根据编译到二进制文件中的 sha256 哈希值进行检查,因此截断或损坏的下载无法到达引擎。 pull --verify 随时重新散列现有副本 - 这里是 8 秒。第一次尝试,没有服务器:slotstream run --prompt "why is the sky blue?" 对于其他一切,serve 侦听端口 11434 并实现 Ollama 客户端和 OpenAI SDK 使用的聊天/生成子集:curl localhost:11434/api/chat -d ' { "model": "qwen3.8-flash-next:4bit", "messages": [{"role": "user", "content": "hello"}] } ' OLLAMA_HOST=http://localhost:11434 ollama run qwen3.8-flash-next:4bit Open WebUI、Ollama CLI 和 OpenAI SDK 都针对此子集进行测试。流媒体、CORS 和常用的采样选项都可以使用;不支持的内容(工具、图像、JSON 模式输出、logprobs)会返回明确的 400,而不是被默默忽略。提示加完成的上限为 32,768 个标记 ( --max-context ),并且一次运行一个模型进程。长提示是慢轴:整个提示在第一个令牌出现之前处理,因此 8,000 个令牌在 48 GB Mac 上等待大约一分钟,在 16 GB Mac 上等待超过三分钟。在一次对话中,您只需支付一次。后续轮流预填充新内容,因此随着聊天的增长,第一个令牌的时间保持平稳 — 第八轮为 6.0 秒,而不是 25.8 秒。重用状态与重新计算状态并不完全相同,因此在两个令牌几乎绑定的情况下,回复有时可能会有所不同; --no-prefix-cache 如果您需要精确的再现性,请将其关闭。由于没有标志,slotstream 会根据您的机器调整自身大小并告诉您它选择了什么。这是一台 48 GB Mac — 它读取 52,因为这里的所有内容都以十进制 GB 计数: slotstream 内存计划(自动)设备:52 GB RAM(现在可回收 36.0 GB),40.2 GB Metal 工作集目标:此过程总共 33.0 GB(覆盖:--memory-gb N | --max-ram-percent P)缓存:每层 512 个专家中的 ~152 个(7280 个全局插槽 = 20.1) GB 池)预期:〜32.0 GB 峰值,〜12 tok/s 热解码(来自 M5 Pro 锚点)预填充:每次传递 4096 个令牌(此处约为 125 tok/s;目标成本约为 5.3 GB)重用:4 个对话中最多 32768 个令牌(〜1.2 GB),因此后续回合仅重新预填充新内容自动采用三个限制中的最低值 - 33 GB, 70% 的 RAM,以及低于 Metal 工作集限制的 2 GB — 并且在其他应用程序实际占用内存时进一步缩小大小。 33 GB 上限是测量曲线的拐点,并非出于礼貌:在一次 GB 扫描中,34 到 84 GB 之间的解码或预填充速度没有任何更快,因此 128 GB Mac 的计划与 48 GB 的 Mac 相同。跑步时
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱