可運作的 MLX 聊天,以及公平比較記憶體和回應時間的方法。
01/為合適的電腦選擇 MLX
MLX LM 可在 Apple silicon 上生成語言模型文字,適合在 Mac 上建立寫作或編程助手,與平常的程式一起使用。統一記憶體由系統和 GPU 共用;規格上的 RAM 並不是全部專供模型。
先用較小的量化模型,為編輯器、瀏覽器及上下文留空間。社群的 Qwen3-4B-4bit 是 Qwen3 4B 的 MLX 轉換版本,與 GGUF 並非同一檔案;不要假設格式、量化方法或速度可以直接互換。
02/建立獨立 Python 環境
使用符合現行 MLX LM 要求的原生 Apple silicon Python。在終端機執行 uname -m 應顯示 arm64;Rosetta/x86 Python 可能遇到套件架構不符。以下指令會建立新資料夾及虛擬環境,不會更改系統 Python。
mkdir -p tokfire-mlx-demo
cd tokfire-mlx-demo
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U mlx-lm
python -m pip show mlx-lm03/生成可核對的答案
以下第一個指令會在模型未有快取時,從 Hugging Face 下載檢查點。比較速度時,不要把首次下載算進去。下載完成後重跑相同生成,再開互動聊天。用 mlx_lm.generate --help 核對已安裝版本的選項。
要求模型列出三項清單,再數一數項目。先試短提示,再試自己撰寫的較長文件。生成時在「活動監視器」查看記憶體壓力和交換使用量。如不穩定,縮小模型或上下文;關閉一個瀏覽器分頁,並不能證明更大的模型就能可靠運行。
mlx_lm.generate --model mlx-community/Qwen3-4B-4bit --max-tokens 256 --prompt "Write three checks before sharing a report. /no_think"
mlx_lm.chat --model mlx-community/Qwen3-4B-4bit04/理解現行記憶體工具
MLX LM 文件介紹提示快取、輪轉 KV 快取及可調整的 prefill 分段大小。提示快取會重用相同前綴的計算,適合同一文件的連續提問;但已預熱的重複提示,與首次讀取新文件是不同工作負載。
較小的 prefill 分段可降低讀取長提示時的峰值記憶體,但可能犧牲速度。限制輪轉 KV 快取會改變保留的上下文,亦可能影響答案品質。每次只改一項設定,分開標示有快取及無快取成績,並重新檢查依賴文件開頭資訊的問題。
05/以實際工作流程比較
每次測試都接上電源並使用相同電源模式,記錄 macOS、模型修訂、量化、MLX LM 版本及提示。至少比較三次預熱測試,再獨立測試冷啟動。短文改寫順暢的模型,處理長文件時未必同樣理想。
使用 TokFire 的 Mac 測試時,選擇支援的 oMLX + MLX 選項,並記錄該伺服器的設定。直接跑 mlx_lm 和透過 oMLX 服務屬不同配置。先一個 job,再測兩個及三個;不要把單 job 成績當成多個 agent 同時運作的保證。