你会创建或学到什么

可运行的 MLX 聊天,以及公平比较内存和响应时间的方法。

01/为合适的电脑选择 MLX

MLX LM 可在 Apple silicon 上生成语言模型文字,适合在 Mac 上建立写作或编程助手,与平常的程序一起使用。统一内存由系统和 GPU 共享;规格上的 RAM 并不是全部专供模型。

先用较小的量化模型,为编辑器、浏览器及上下文留空间。社区的 Qwen3-4B-4bit 是 Qwen3 4B 的 MLX 转换版本,与 GGUF 并非同一文件;不要假设格式、量化方法或速度可以直接互换。

资料来源MLX LM · Official guideMLX Community · Qwen3 4B 4-bit

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-lm
资料来源MLX LM · Official guide

03/生成可核对的答案

以下第一个命令会在模型未有缓存时,从 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-4bit
资料来源MLX Community · Qwen3 4B 4-bit

04/理解当前内存工具

MLX LM 文档介绍提示缓存、轮转 KV 缓存及可调整的 prefill 分段大小。提示缓存会重用相同前缀的计算,适合同一文档的连续提问;但已预热的重复提示,与首次读取新文档是不同工作负载。

较小的 prefill 分段可降低读取长提示时的峰值内存,但可能牺牲速度。限制轮转 KV 缓存会改变保留的上下文,也可能影响答案质量。每次只改一项设置,分开标示有缓存及无缓存成绩,并重新检查依赖文档开头信息的问题。

资料来源MLX LM · Long prompts and generations

05/以实际工作流程比较

每次测试都接上电源并使用相同电源模式,记录 macOS、模型修订、量化、MLX LM 版本及提示。至少比较三次预热测试,再独立测试冷启动。短文改写流畅的模型,处理长文档时未必同样理想。

使用 TokFire 的 Mac 测试时,选择支持的 oMLX + MLX 选项,并记录该服务器的设置。直接跑 mlx_lm 和通过 oMLX 服务属于不同配置。先一个 job,再测两个及三个;不要把单 job 成绩当成多个 agent 同时运行的保证。