MacMLXCore 由应用、CLI 与本地 API 共享代码,而各进程拥有自己的引擎实例示意图
多个产品入口共享一套核心代码;内存状态仍属于各自进程。

已发布架构与当前边界

已发布0.1.0

Swift 进程内推理

默认引擎在 Swift 进程内加载并运行 MLX 模型。

模型加载、生成、缓存与服务通过 MacMLXCore 使用 Apple MLX;默认推理路径不需要 Python 运行时。

核验

已发布0.1.0

Apple 芯片统一内存

MLX 数组使用 Mac 的 CPU/GPU 共享内存系统。

统一内存减少 CPU 编排与集成 GPU 计算之间的显式传输,但模型权重、激活值和 KV 缓存仍会占用有限的物理内存。

核验

已发布0.1.0

共享代码,进程内各自运行

应用与 CLI 都导入 MacMLXCore,推理和服务由核心负责。

两个产品共享实现与行为;当应用和 CLI 分别运行在不同进程时,它们不会共享同一个内存中引擎实例。

核验

已发布0.1.0

默认路径无需 Python

已发布的默认引擎为 Swift 原生,不需要 Python 运行时。

可选兼容引擎可能使用子进程与其他运行时,因此这并不表示项目任何地方都没有 Python。

核验

已发布0.5.0

精确前缀 RAM 与 SSD 缓存

内存热层与内容寻址 SSD 冷层支持提升和降级。

v0.5.0 发布的缓存复用完整精确前缀,不包含已发布的块共享或分页 KV 分配。

核验

已发布0.6.0

Trie 最长前缀复用

v0.6.0 可复用最长兼容缓存词元前缀。

多轮提示可裁剪到最长公共前缀,只增量预填充新增后缀,同时用量统计仍按完整提示计算。

核验

已发布0.5.0

有界模型池

预算、LRU 淘汰、固定、冷切换、空闲 TTL 与探针共同约束多模型使用。

模型池在 v0.5.0 发布并于 v0.5.3 加固;它不是统一自适应控制器。

核验

已发布0.6.0

资格门控的连续批处理

v0.6.0 仅在真实并发下批处理符合条件的稠密文本请求,并自动回退到串行路径。

标签版 4 客户端基准测得 2.5–3.2× 聚合吞吐量;VLM、推测解码、Ollama、Anthropic 与嵌入仍保持串行。

核验

已发布0.6.0

固定预填充准入节流

固定 prefillBatchSize 限制每个调度步骤接纳的行数。

已发布的节流采用固定配置,并非规划中的自适应内存控制器。

核验

已发布0.6.0

推测解码

v0.6.0 通过 API 与 GUI 交付经典草稿模型路径。

接受率遥测用于呈现草稿效率;若目标使用不可裁剪的混合或线性注意力缓存,系统会检测并回退到标准解码。

核验

已发布0.6.0

KV 缓存量化

v0.6.0 为兼容请求开放 kv_bits、kv_group_size 与 quantized_kv_start。

这些参数改变 KV 缓存精度,而非模型权重精度;非正数 kv_bits 会禁用该功能,兼容矩阵会拒绝不支持的模型或请求组合。

核验

规划中future

分页 KV、块共享与 CoW

分页分配、共享块与写时复制分支处于规划阶段。

这些缓存虚拟化能力均未在 v0.6.2 发布。

核验

规划中future

统一自适应内存守卫

跨缓存、模型池与并发的反馈控制器处于规划阶段。

已发布的内存探针和模型池上限是独立机制,不能称为该守卫。

核验

Apple 芯片统一内存服务 CPU 编排与集成 GPU MLX 计算示意图
统一内存避免独立 GPU 的显式复制边界,但容量仍然有限。

官方来源

  1. KV 缓存量化
  2. KV 缓存量化
  3. Apple 芯片统一内存
  4. 共享代码,进程内各自运行
  5. KV 缓存量化
  6. 精确前缀 RAM 与 SSD 缓存
  7. Trie 最长前缀复用
  8. 有界模型池
  9. 固定预填充准入节流
  10. 资格门控的连续批处理
  11. 推测解码
  12. KV 缓存量化
  13. 统一自适应内存守卫