Mac studio M5 ultra 256G - glm 5.3 flash 初嘗試
-
機器到手後嘗試安裝了一下GLM 5.3 flash, 本次使用 oMLX main 原始碼與原生 Metal 核心配方,模型 ID
GLM-5.3-Flash-oQ4e-mtp,context 262144,常態併發 4 路。8 路額外測試已完成,現已恢復 4 路。主要是模型權重較大, 需要多併發就需要限制上下文, 不過記憶體看來還有餘裕, 以後需要可以再調整.環境與版本
項目 實際結果 硬體/系統 Mac Studio Mac17,15、M5 Ultra、256 GB Unified Memory、macOS 27.0.1 磁碟 安裝前約 1.8 TiB 可用;完成後 1.5 TiB 可用 oMLX 原始碼/commit ~/omlx-glm-src;basea4048eef24b41d885d593742e32a290f3bdb2300,recipe patchd6c33e309876454e43a3e6a5ce497934d00a4496,upstream #4086 patch/實際 HEAD85ef9488063c28e3b770b95153f7fee7384e7035oMLX/MLX/mlx-lm 0.7.0rc1/0.32.2/0.31.4.dev132+g94cdcae13;五項原生核心 bonsai、decode_fast、glm_moe_dsa、minimax_m3、qwen35_prefill 均可載入建置工具 Python 3.12.15、Xcode 27.1 (27A9275)、CLT 27.0、Metal Toolchain 27A266a、Apple metal 32023.921、CMake 4.4.4 oQ4e backbone ~/models/src/dfp-GLM-5.3-Flash-oQ4e-mtp,revision728cc0d92aef48d64bd2a7ebfaefec6aeff5921b;34 個 shard,181,607,491,134 bytes,與索引一致MTP donor ~/models/src/vontra-mtp,revision76add2a341a1cd90ad0e86bb69839ea9c35827c6;layer 45 共 2,641 個 tensors官方模板 ~/models/src/zai-template,revisioneb9eb208eb0d988989d07a6a12d0fdeb5f52574a;與輸出模板逐位元組一致最終模型 ~/models/mlx/GLM-5.3-Flash-oQ4e-mtp;~/models/mlx指向~/models.noindex/mlx;graft shard 4,183,682,557 bytes,索引共 5,639 鍵runtime/model_settings.json設定 MTP enabled、fixed depth 2、max context 262144;scripts/serve-local.sh啟用 Prompt Lookup、HC GEMV、232 GB memory guard。設定隔離於本專案runtime/。API/v1/models回報max_model_len=262144;最終重啟後 Chat Completions 回覆OK,模型載入 32.09 秒。Prompt Lookup 專項複製測試 32/32 行正確;伺服器記錄 drafted 280、accepted 278(99.3%)。MTP 日誌顯示 nextn layer 已綁定。Metal wired-memory 設定
本機 Unified Memory 為 256 GB。
iogpu.wired_limit_mb參數存在,原值0;已執行sudo sysctl -w iogpu.wired_limit_mb=245760,調整後回讀及最終再讀均為245760MB(240 GiB)。模型成功分配 Metal 記憶體並完成全部測試。**還原命令:sudo sysctl -w iogpu.wired_limit_mb=0。**未設定開機自動套用,未修改 SIP、Swap 或其他系統參數。oMLX 提示其內部 static ceiling 254 GB 高於系統 Metal cap 240 GB;實測配置最高 192.343 GiB,服務另有 232 GB memory guard。Benchmark
2026-10-22 實測。TTFT、Prefill、Decode 取自 OpenAI streaming
usage;TTFT 單位秒,速率 tokens/s。長 Context 在開頭埋隨機碼、末尾提問,三項回憶皆正確。短輸出只有 6–8 tokens,Decode 值僅供參考。原始逐請求結果:runtime/benchmarks/results-4.jsonl、results-8.jsonl;約每 2 秒監控:memory-4.csv、memory-8.csv。Context 目標 實際 prompt tokens Prefix cache tokens TTFT Prefill Decode 回憶 32K 31,618 0 18.73 1,688.32 40.22 通過 128K 129,926 0 68.24 1,903.85 29.81 通過 256K 260,998 163,840 146.26 664.27 40.59 通過 256K 命中前次 prefix cache;664.27 tokens/s 是 oMLX 對未快取部分的回報,不能直接與前兩列的未快取 Prefill 比較。三項實際 prompt 均低於 262144 上限。
同時請求數 TTFT 範圍(秒) Prefill 範圍(tokens/s) Decode 範圍(tokens/s) 各串流 Decode 速率合計(tokens/s) 結果 1 0.23 134.86 86.71 86.71 1/1 正常結束 2 0.08–0.33 24.27–93.46 34.98–35.93 70.91 2/2 正常結束 4 0.21–1.04 1.92–145.26 18.92–27.61 100.40 4/4 正常結束 8(暖機後) 0.10–0.79 2.55–19.78 13.82–16.41 123.42 8/8 正常結束 短 prompt 每路僅 31 tokens,多數命中 prefix cache,因此併發 Prefill 值主要供記錄。8 路首次冷載入測試也 8/8 正常,模型載入約 31.1 秒,合計 Decode 118.45 tokens/s;表中採暖機後數據。合計是各串流回報速率相加,並非同一時間窗的端到端吞吐。
Tool Calling:指定
lookup_city函式與 Taipei 參數,回傳finish_reason=tool_calls,JSON 參數{"city":"Taipei"}正確;通過,端到端約 2.281 秒。監控範圍 最低 Memory Pressure free Swap 最大使用 Metal in-use 峰值 Metal allocated 峰值 oMLX footprint 峰值 oMLX 壓力 常態 4 路及 32K/128K/256K 23% 7.19 MB 187.869 GiB 189.769 GiB 187.647 GiB ok額外 8 路含冷載入 22% 62.50 MB 190.424 GiB 192.343 GiB 189.974 GiB ok8 路期間 Swap 由 7.19 MB 增至 62.50 MB,未達停止線 512 MB。監控腳本在 free ≤12%、Swap ≥512 MB、Metal in-use/allocated ≥232 GiB 或 oMLX 壓力達 hard/critical 時終止本服務。上表為各測試時段峰值;CSV 保存完整時間序列。
-
-
-
版主审定:本帖设为优秀,作者 +3 积分奖励,继续加油!