
已发布架构与当前边界
Swift 进程内推理
默认引擎在 Swift 进程内加载并运行 MLX 模型。
模型加载、生成、缓存与服务通过 MacMLXCore 使用 Apple MLX;默认推理路径不需要 Python 运行时。
核验
Apple 芯片统一内存
MLX 数组使用 Mac 的 CPU/GPU 共享内存系统。
统一内存减少 CPU 编排与集成 GPU 计算之间的显式传输,但模型权重、激活值和 KV 缓存仍会占用有限的物理内存。
核验
共享代码,进程内各自运行
应用与 CLI 都导入 MacMLXCore,推理和服务由核心负责。
两个产品共享实现与行为;当应用和 CLI 分别运行在不同进程时,它们不会共享同一个内存中引擎实例。
核验
默认路径无需 Python
已发布的默认引擎为 Swift 原生,不需要 Python 运行时。
可选兼容引擎可能使用子进程与其他运行时,因此这并不表示项目任何地方都没有 Python。
核验
精确前缀 RAM 与 SSD 缓存
内存热层与内容寻址 SSD 冷层支持提升和降级。
v0.5.0 发布的缓存复用完整精确前缀,不包含已发布的块共享或分页 KV 分配。
核验
Trie 最长前缀复用
v0.6.0 可复用最长兼容缓存词元前缀。
多轮提示可裁剪到最长公共前缀,只增量预填充新增后缀,同时用量统计仍按完整提示计算。
核验
有界模型池
预算、LRU 淘汰、固定、冷切换、空闲 TTL 与探针共同约束多模型使用。
模型池在 v0.5.0 发布并于 v0.5.3 加固;它不是统一自适应控制器。
核验
资格门控的连续批处理
v0.6.0 仅在真实并发下批处理符合条件的稠密文本请求,并自动回退到串行路径。
标签版 4 客户端基准测得 2.5–3.2× 聚合吞吐量;VLM、推测解码、Ollama、Anthropic 与嵌入仍保持串行。
核验
固定预填充准入节流
固定 prefillBatchSize 限制每个调度步骤接纳的行数。
已发布的节流采用固定配置,并非规划中的自适应内存控制器。
核验
推测解码
v0.6.0 通过 API 与 GUI 交付经典草稿模型路径。
接受率遥测用于呈现草稿效率;若目标使用不可裁剪的混合或线性注意力缓存,系统会检测并回退到标准解码。
核验
KV 缓存量化
v0.6.0 为兼容请求开放 kv_bits、kv_group_size 与 quantized_kv_start。
这些参数改变 KV 缓存精度,而非模型权重精度;非正数 kv_bits 会禁用该功能,兼容矩阵会拒绝不支持的模型或请求组合。
核验
硅活动面板
新的主窗口活动标签页显示实时 Apple 芯片读数、预填充/解码吞吐拆分,以及当前推理瓶颈与相应建议。
面板读取 GPU 占用、内存带宽、热与内存压力以及各电轨功耗,无需管理员权限或辅助进程。它是可观测性,而非性能保证:不可用的计数器会显示破折号并给出原因,空闲引擎显示无活动生成,估算值会被标注而非当作实测值。
核验
推理瓶颈分类器
v0.7.0 将硬件采样与引擎实时的预填充或解码阶段融合,归因限制生成的因素。
由于分类器在进程内运行,它知道当前处于哪个推理阶段——这是外部 GPU 监视器无法获取的信号。它是经过平滑的启发式判断,而非性能剖析器:优先级为内存高于热、热高于计算或带宽,应用迟滞与三帧平滑,并自校准带宽上限,因此结论是指引而非真值测量。
核验
免 sudo 的硅采样
运行时 IOReport 桥接与一组采样器读取 GPU 占用、内存带宽、热与内存压力以及 ANE 功耗。
IOReport 桥接通过 dlopen 解析,因此未来若某个 macOS 重命名或移除该私有框架,读数会降级为不可用而非无法启动。内存带宽以估算值呈现,ANE 提供功耗代理且不虚构利用率百分比,而无占空比信号的媒体引擎则被省略而非猜测。
核验
应用已链接受控 MLX 构建
v0.9.0 是首个 GUI 真正链接 macMLX 自有补丁版 mlx-swift(而非上游版本)的 DMG。
Xcode 工程此前没有声明自己的 mlx-swift 依赖,因此在包 identity 冲突时,间接引入的上游副本获胜并被应用链接;此前每个版本发布的 GUI 都不包含那些 MacMLXCore 自身测试已逐条验证过的正确性 cherry-pick。CLI 因另一个 root 存在同样缺陷,已一并修复。这是把引擎恢复成原本预期的样子,而不是在其携带的修复之外改变推理行为。
核验
已携带的上游 MLX 正确性修复
钉定的 MLX 构建携带十三条上游正确性修复,其中三条会在不报错的情况下返回错误数值。
超过 32K KV 序列后,NAX 注意力核会让 tile 位置在 16 位类型上回绕,并从错误偏移读取掩码(mlx#3361);排序后的专家分发在聚合矩阵超过 32768 行时会漏写若干行(mlx#3922);group size 为 32 的量化向量-矩阵乘法从不分发最后一整块之外的尾列(mlx#4251)。这三条在携带前已在本机复现。其中多数只影响 M5 硬件;携带修复是正确性修补,而非性能宣称。
核验
分页 KV、块共享与 CoW
分页分配、共享块与写时复制分支处于规划阶段。
这些缓存虚拟化能力均未发布;已交付的缓存仅复用完整精确前缀。
核验
统一自适应内存守卫
跨缓存、模型池与并发的反馈控制器处于规划阶段。
已发布的内存探针和模型池上限是独立机制,不能称为该守卫。
核验
