Devotd Github
新发现推理与服务

yibie/strata-mlx — 对话停放默认启用,短请求不占槽位

yibie/strata-mlx 默认启用了对话停放(conversation parking),并让低于 256 token 的请求不占用槽位,从而改变了在其他客户端请求之后重新读取长提示词的默认行为。

仓库信息yibie/strata-mlx ↗

yibie/strata-mlx 默认启用了对话停放(conversation parking),并让低于 256 token 的请求不占用槽位,从而改变了在其他客户端请求之后重新读取长提示词的默认行为。

GitHub 项目说明: Qwen3.8-Flash-Next on Apple Silicon: an MLX engine that reads Strata's GGUF files and speaks its line protocol (unofficial)

星标
★ 97
复刻
15
语言
Python
许可证
MIT
查看原始来源 ↗在 GitHub 查看 ↗

yibie/strata-mlx 是一个非官方的 MLX 引擎,在 Apple Silicon 上以 Strata 的 GGUF 文件读取 Qwen3.8-Flash-Next,并遵循 line protocol。2026 年 10 月 23 日的提交 94817fd 默认启用了对话停放(conversation parking),并将 `--conversation-cache-min-tokens` 设为 256,使其他客户端的短请求不占用对话槽位。

该引擎会一次性读取整个对话,下一轮则只读取新增加的 token。问题在于,其他客户端的请求一旦插入,该对话就会被截断,导致每一轮都要重新读取完整提示词。据 jerry727 在 issue 12 中整理的测量,在 96 GB M2 Max(macOS 27.0.1、MLX 0.32.3、Q2_0)上,当另一个客户端与网页聊天同时接入时,一个 38,313 token 的对话每轮耗时 121 秒。若只延续同一个对话,则 39,940 个 token 中只读取 31 个,耗时 0.4 秒。

因此 `--conversation-cache-mib` 的默认值改成了 auto。当模型和 float 完全常驻内存且还剩 4 GiB 时,使用 4,096 MiB;而当需要从存储中调取 expert 时则为 0 MiB,`--check` 会告知属于哪种情况。在 64 GB Mac 上,Q2_0 会被停放,IQ3_S 则不会。共有 4 个槽位,低于 256 token 的请求不会触及这些槽位。

不过,仍有一些遗留问题。如果超过 256 token 的请求插入四次以上,槽位仍会不分大小地清空最旧的对话,因此“最小对话应最先离开”的意图并未得到体现。停放的对话不会跨重启保留,而从 SSD 读取 expert 的 Mac 默认不会停放任何内容。停放的对话及其起始副本在启动时各占一份缓存的问题(以 2,760 token 计为 83 MB)也依然存在。实际确认 4,096 MiB 默认值的案例只有 issue 8 中的一个——64 GB M5 Pro + Q2_0,且没有使用 swap。上述数值全部为报告者的测量值,已记录在 ISSUES.md 和 ROADMAP.md 中。