Repository navigation
Releases: Headmaster218/MoE4All
Release list
MoE4All v1.0.3
What's Changed
- Release/1.0.0 maintenance by @Headmaster218 in #92
- chore(release): bump version to 1.0.3 by @Headmaster218 in #93
Full Changelog: release-1.0.2...release-1.0.3
Build provenance: exact commit 6fd46c4a7a347ed67ad28cf10e49b0dcfd59a45b, artifact source rebuilt.
Linux x86_64 is experimental: requires glibc 2.35+, Bash 4.3+, standard Linux utilities and a Vulkan GPU driver; no Python or jq is needed to launch. GPU inference and upgrading across real systems need community validation. / Linux 包为实验性版本,请反馈驱动、推理及更新兼容性问题。
macOS arm64 / Metal is experimental. The package runs on Apple Silicon with the system zsh and standard Apple utilities; Homebrew, Python, jq and a Rust toolchain are not runtime dependencies. Text run/serve/bench and explicit MTP are included. Metal serving is currently single-slot; Vision and Embedding are not yet available. The binary is ad-hoc signed but not Apple-notarized. / macOS Apple Silicon 包为实验版,请反馈模型兼容性与性能问题。
1.0.3 Release Note:
- 修复核显、UMA 设备在自动激进模式下 RAM 预算被重复收缩的问题,避免内存充足时仍出现固定权重加载失败。
- 修复 Windows、Linux、macOS 启动向导遇到启动错误时直接退出、错误信息来不及查看的问题。
- 优化 CI 与发版构建缓存,统一三平台产物校验,并确保 Release 只复用同一提交生成的已验证产物。
MoE4All v1.0.2
What's Changed
- Release/1.0.0 maintenance by @Headmaster218 in #89
Full Changelog: release-1.0.1...release-1.0.2
macOS arm64 / Metal is experimental. The package runs on Apple Silicon with the system zsh and standard Apple utilities; Homebrew, Python, jq and a Rust toolchain are not runtime dependencies. Text run/serve/bench and explicit MTP are included. Metal serving is currently single-slot; Vision and Embedding are not yet available. The binary is ad-hoc signed but not Apple-notarized; if Gatekeeper blocks it, remove quarantine from the extracted package with the system xattr command documented in the README. / macOS Apple Silicon 包为实验版,请反馈模型兼容性与性能问题。
Linux x86_64 is experimental: requires glibc 2.35+, Bash 4.3+, standard Linux utilities and a Vulkan GPU driver; no Python or jq is needed to launch. GPU inference and upgrading across real systems need community validation. / Linux 包为实验性版本,请反馈驱动、推理及更新兼容性问题。
MoE4All v1.0.2 Hotfix
- 修复 Windows 自动更新:显示下载进度,更新后自动启动新版。
- 修复 Linux 自动更新后的版本校验与自动重启。
- 更新失败时自动回滚,并保留配置、模型记录和 KV 缓存。
- 新增实验性 Apple Silicon macOS Metal 发行包。
MoE4All v1.0.1
What's Changed
- Release/1.0.0 maintenance by @Headmaster218 in #87
Full Changelog: release-1.0.0...release-1.0.1
Linux x86_64 is experimental: requires glibc 2.35+, Bash 4.3+, standard Linux utilities and a Vulkan GPU driver; no Python or jq is needed to launch. GPU inference and upgrading across real systems need community validation. / Linux 包为实验性版本,请反馈驱动、推理及更新兼容性问题。
MoE4All v1.0.1 Hotfix
- 修复核显及 UMA 设备重复占用系统内存的问题。
- 修复 Qwen3.6 35B 多并发时的显存分配与执行异常。
- GPU-resident Decode 统一支持最多八行并行执行。
- Presence Penalty 和 Frequency Penalty 支持直接在 Vulkan GPU 上计算。
- 修复 Vulkan Timeline 配置未正确生效的问题。
建议所有 v1.0.0 用户更新,尤其是核显、UMA 和 Qwen3.6 35B 多并发用户。
MoE4All v1.0.0
MoE4All 1.0.0
- 引入 GPU Resident 分页 MoE Decode,减少层间调度与专家 Miss 恢复空挡。
- 完善 FlashNext 与 Qwen3.5/Qwen3.6 35B 的单路、双路和三路并发推理。
- 优化 Q8 长上下文注意力、宽投影、FlashNext Decode Kernel 与四 Token MTP 验证。
- 新增 Qwen3.5/Qwen3.6 原生视觉支持和模型对应的思考强度控制。
- Windows 与 Linux 启动向导新增模型下载中心,支持主模型、视觉和 Embedding 多选下载、进度显示、断点续传与失败重试。
- Linux 启动流程与 Windows 对齐,无需 Python 或 jq,并修复 mawk 兼容问题。
- 修复自动 RAM 预算、UMA 重复缓存、Prefill 重复读取硬盘及分页资源清理问题。
- 修复 Qwen3.6 重复输出倾向、并发 suffix checkpoint、过期 SSD KV 状态和启动向导卡顿。
- 更新 30K/150K、1/2/3 路性能数据、Strata 对比及多卡专家分配参考。
Full Changelog: release-0.10.0...release-1.0.0
Linux x86_64 is experimental: requires glibc 2.35+, Bash 4.3+, standard Linux utilities and a Vulkan GPU driver; no Python or jq is needed to launch. GPU inference and upgrading across real systems need community validation. / Linux 包为实验性版本,请反馈驱动、推理及更新兼容性问题。
MoE4All v0.10.0
What's Changed
- Docs/release 0.9.0 by @Headmaster218 in #63
- Perf/expert mtp optimization by @Headmaster218 in #73
Full Changelog: release-0.9.0...release-0.10.0
MoE4All v0.10.0
- 推理提速:优化 Prefill、单路及多路 Decode,减少 CPU 同步、小算子开销,并改善专家传输与计算重叠。
- 显存利用优化:根据实际 KV 占用调整 Prefill 资源,复用临时工作区,减少不必要的显存预留。
- 辅助任务共存:保留 Decode、视觉和 Embedding 工作区,独立超时回收,减少交错请求时反复创建资源的开销。
- 修复并发输出串槽:修正混合 Prefill/Decode 批次的 LM head 行选择,解决错误输出其他会话内容的问题。
- 扩展图片支持:新增 HEIC、AVIF,以及 GIF、BMP、TIFF、ICO 支持;图片解码失败时提供更明确的诊断。
- 简化启动向导:支持按上次配置直接启动,统一配置流程;改善设备选择、大小核分配及 Windows 启动兼容性。
- 改进状态与诊断:显示单槽及整体瞬时速度,平滑 Prefill 显示;API 请求体上限提高至 64 MiB,完善 RAM 分配失败信息。
- 实验性 CPU 专家计算:支持将少量未命中专家交给 CPU,核心数和 miss 数量可配置;要求 AVX2 + FMA3,不支持的 CPU 自动回退 GPU。
- 实验性新增 Linux 发行包:提供 Bash 启动向导,并加入自动构建与打包。
感谢贡献者
- 感谢 [@HuangShanglong](https://github.com/HuangShanglong) 提供 Linux 启动向导和相关文档,[PR #58](https://github.com/Headmaster218/MoE4All/pull/58)。
- 感谢 [@scriptnapps](https://github.com/scriptnapps) 扩展图片格式支持并改善解码诊断,[PR #62](https://github.com/Headmaster218/MoE4All/pull/62)。
MoE4All v0.9.0
What's Changed
- feat(server): add stateless Responses API on 0.8.0 by @Iwctwbh in #53
- Next/engine 0.9 by @Headmaster218 in #55
Full Changelog: release-0.8.0...release-0.9.0
MoE4All v0.9.0
相较于 v0.8.0,本次主要更新:
- 完善 MTP 加速:支持双槽服务、视觉任务和 Embedding 共存;并发时自动选择 MTP 或普通批量 Decode。
- 增强 Agent 会话复用:支持系统提示词、历史会话和末轮编辑的 KV 前缀复用,减少重复 Prefill。
- 保存 MTP 缓存状态:MTP 状态可随主 KV 一起跨槽及 SSD 保存恢复,缺失时安全回退普通 Decode。
- 新增 Responses API:提供无状态的 OpenAI Responses API,支持流式输出、工具调用、Reasoning 和图片输入。
- 提升长任务稳定性:为排队、长 Prefill 和长时间生成加入 SSE 心跳,减少 Agent 和客户端超时。
- 修复视觉问题:改善 Qwen3.8 图文、多轮视觉及部分 F16/BF16 模型的兼容性。
- 改进显存管理:显存分配失败时自动降低 ubatch 重试,并修复 NVIDIA 显存识别、Host DMA 和统一显存池相关问题。
- 新增模型支持:加入 Ling 3.0 Tiny Q4_K_M 支持。
- 改进启动向导:增加显卡选择、推荐模型下载、本地 KV 缓存目录及安全的 Engine 自动更新。
- 稳定构建环境:版本升级至 0.9.0,并将正式构建工具链固定为 Rust 1.97.1。
升级后 SSD KV 缓存格式有所变化,v0.8.0 的旧缓存不会继续复用。
MoE4All v0.8.0
What's Changed
- Perf/qwen38 24g48g ub3000 by @Headmaster218 in #47
Full Changelog: release-0.7.0...release-0.8.0
新增功能
- 新增 Qwen3.8 四 Token MTP 投机解码预览,支持批量验证并保留已接受前缀状态,面向单路 greedy 生成加速。
- 新增 Qwen3 原生 Embedding 模型支持,可通过 OpenAI 兼容的
/v1/embeddings接口调用。 - 启动向导新增 MTP、Embedding 及自动模式上下文容量设置。
性能优化
- 优化 Qwen3.8 普通 Decode、MTP 验证、QSA Attention、PLE Gather 和 Q8 投影。
- 优化多会话混合 QSA Decode,并复用 Pager Host 工作区,提升并发吞吐。
- 优化 QSA dense/sparse 边界 Prefill,减少重复模型遍历和 Vulkan dispatch。
- MTP Prompt Priming 改为流式执行,降低长输入初始化开销。
- 自动 Prefill Ubatch 调整为保守模式
2048、激进模式4096,显存不足时自动逐档回退。 - 修复并发服务错误预留大块 Prefill Attention Scratch 的问题,释放约数 GiB 显存用于专家缓存和 Prefill Ring。
自动资源策略
- 保守 RAM 策略:以启动时可用内存减去
3 GiB作为进程预算。 - 激进 RAM 策略:以总物理内存减去
14 GiB作为进程预算。 - 保守 VRAM 策略:保留约
1 GiB当前可用显存。 - 激进 VRAM 策略:最多使用总显存减去
2 GiB。 - 显式 Ubatch 在并发服务中得到正确应用。
修复与兼容性
- 修复并发视觉请求的 Decode 批处理。
- 修复 Vulkan Canvas Attention 分块边界问题。
- 修复多会话 Prefill 显存预算与实际串行执行方式不一致的问题。
- 更新 Rust 1.97 兼容代码并恢复跨平台 Stable CI 构建。
实测表现
- Qwen3.8 在 20K 输入、高接受率任务中,MTP Decode 从
37.7提升至60.2 tok/s。 - Qwen3.8 在 150K 输入、高接受率任务中,MTP Decode 从
32.4提升至48.1 tok/s。 - 普通复杂任务的 MTP 收益约为
8%–14%,实际收益取决于草稿接受率。 - Qwen3.6 35B A3B 在 RX 7900 XTX 上实测达到 20K 输入
65.6 tok/s、150K 输入39.9 tok/s。
MoE4All v0.7.0
What's Changed
- feat: add configurable reasoning controls by @gitkundayo in #38
- Feat/vulkan memory backends by @Headmaster218 in #40
New Contributors
- @gitkundayo made their first contribution in #38
特别鸣谢
- 感谢 @zhangzhan620-hue 在 PR #21 中完成的 Qwen3-VL Vision 实现。v0.7.0 选择性移植并适配了其中的 projector 元数据与图像预处理、multimodal RoPE/GELU CPU/Vulkan 内核,以及 Vision tower/projector 核心拓扑;合入版本进一步适配了统一显存、原生量化权重和请求级资源生命周期。
MoE4All 0.7.0
相较 0.6.0,本次版本重点完善了 Qwen3.8 视觉推理、并发服务、SSD 会话缓存和长上下文性能。
主要更新
- 新增 Qwen3.8 Flash Next 原生 Vulkan 视觉推理,支持匹配的
mmprojGGUF。 - OpenAI 兼容接口支持图片 content parts,可使用 Data URL 或裸 Base64 输入图片。
- 新增
infr serve --parallel N,多个请求使用独立 KV 槽并发生成。 - 支持先后到达、上下文长度不同的并发请求,以及 Prefill 和 Decode 混合调度。
- 新增共享前缀 KV,减少具有相同对话前缀时的重复 Prefill。
- 客户端断开连接后会取消对应生成任务,避免继续占用计算资源。
SSD 会话缓存
- 动态 Q8 KV 会话可以在空闲后写入 SSD并释放显存。
- 服务重启后,可以根据对话身份从冷缓存恢复长对话。
- 当前 SSD 会话缓存适用于 Qwen3.5、Qwen3.6、Qwen3.8 的动态分段 Q8 KV 文本会话。
推理控制
- 终端聊天支持模型默认、开启思考和关闭思考。
- OpenAI 兼容接口支持原生
reasoning_effort。 - 推理强度会经过模型能力和 chat template 校验,无效组合会返回明确错误。
性能优化
- 重写 Qwen3.8 分段 QSA Prefill 的在线 Softmax 和地址计算路径。
- 批量处理并发会话的 PLE gather,减少 CPU 同步和小型 GPU 提交。
- 随机采样可以在 GPU 上跨行批处理。
- 并发 Decode 保留 hit-first 调度,并在计算命中专家时搬运缺失专家。
- 优化专家预取、跨池提升和 Prefill/Decode 阶段的统一显存复用。
- 回收过期 Prefill scratch,减少长上下文增长后的显存碎片。
- 根据启动后的真实剩余显存确定 MoE arena,降低自动配置启动失败概率。
实测结果
- Qwen3.8 IQ4_XS 在 131K synthetic depth 后执行
pp3072,达到 750.7 tok/s。 - Qwen3.8 Q4_K_M 进行 32K + 8K 错峰双路 Decode,达到 56.9 tok/s aggregate。
- 测试平台为 RX 7900 XTX 24 GiB、64 GiB DDR4、Q8 KV、
ubatch=3072。 aggregate表示两个并发会话的总吞吐,不代表每个会话分别达到该速度。
状态与诊断
- 新增终端实时资源表,显示每个 KV 槽的工作、状态、速度和上下文占用。
- Prefill 不再长时间停留在
Starting,现在会显示真实 token 进度和速度。 - 修复缓存 Prefill token 被重复计数的问题。
- Embedding 任务会显示当前请求和已运行时间。
- 请求完成日志增加 Prefill、Decode、缓存命中、上下文和结束原因统计。
稳定性修复
- 修复共享 Vulkan command pool 在并发推理和 Embedding 下的同步问题。
- 修复图片对话后的纯文本续写仍走视觉 RoPE,导致 Decode 降至约 10 tok/s 的问题。
- 修复 Windows 大模型加载时 Host cache 预算未按实时 commit 余量收缩的问题。
- 修复并行调度 worker 生命周期和连续请求下的状态复用问题。
- 增强 AMD Windows 驱动下的显存驻留稳定性。
- 双显卡机器不再默认选择枚举到的第一张独显,而是自动选择显存最大的独显。
- 显式
--dev VulkanN、INFR_DEV和配置文件中的设备选择仍保持最高优先级。
使用注意
- 当前原生视觉路径仅支持 Vulkan
qwen4exp。 - 服务端不会主动下载 HTTP(S) 图片,客户端需要先转换为 Data URL 或 Base64。
- 多模态 KV 暂不写入 SSD 冷缓存。
- SSD 会话缓存默认不启用,需要在向导或配置中指定缓存目录。
- 自动设备选择规则发生变化;需要固定亮机卡或特定 GPU 时,请显式设置
--dev。
Full Changelog: release-0.6.0-beta.1...release-0.7.0
MoE4All v0.6.0
What's Changed
- V0.6.0 弹性统一显存与更稳健的长上下文推理 by @Headmaster218 in #35
Full Changelog: release-0.5.2...release-0.6.0-beta.1
Vulkan 显存 arena 不再强制依赖 mapped ReBAR,可根据硬件能力选择直接映射或普通 device-local VRAM + staging 路径。
改善 RDNA2、小型 host-visible heap 和受限 ReBAR 环境下的 MoE 模型兼容性。
引入弹性统一显存布局,Expert 作为可回收填充物,与动态 KV、Prefill、runtime 和 Embedding 共享显存预算。
Q8 KV 按 32K 上下文分段动态增长,未提交空间继续用于专家缓存。
统一 paged MoE Decode 的 U/G/D 晋升路径,并在会话启动时冻结硬件传输方案。
支持服务端按需加载 Embedding GGUF,共享统一显存预算,空闲后可释放。
Paged Prefill 支持专家上传与 GPU 计算重叠;Qwen3.8 PLE 读取也可与层计算并行。
自动 Submit Splitter 增加采样校准,并提供保守、激进两种自动性能配置。
修复 Qwen3.8 多轮对话中 DeltaNet 与 PLE recurrent state 的保存、恢复和分段稳定性问题。
修复 paged scratch 与 expert LUT 分配顺序导致的地址失效风险。
增强 Windows 内存压力下的 Vulkan allocation、queue submit 重试与受控降级。
改进显存 owner 借用和恢复,保护 Decode 最低专家工作集及 bounded RAM exchange slot。
内存预算与诊断输出统一使用 GiB、MiB、KiB。
新增 Qwen3.8 Conv1d/DeltaNet 分段一致性及真实 recurrent 尺寸确定性测试。
MoE4All v0.5.2
What's Changed
- Update README for easy use by @Headmaster218 in #17
- Fix/qwen3.8 flash next by @Headmaster218 in #18
- MoE4All v0.5.2:动态 Q8 KV Cache 与长上下文稳定性更新 by @Headmaster218 in #22
- fix loading issue for some qwen3.8 quant with zero compress_ratios by @samisgod in #16
New Contributors
MoE4All v0.5.2:动态 Q8 KV Cache 与长上下文稳定性更新
Release Note
功能更新
- Qwen3.5、Qwen3.6 和 Qwen3.8 的 Q8 KV Cache 改为每 32K token 动态增长。
- Qwen3.8 QSA index-key cache 同步支持分段增长。
- 兼容的 Vulkan 模型默认使用 Q8_0 K/V,显著降低长上下文显存占用。
- Prefill 默认恢复 chunk-major 执行,提升大模型分页效率。
- 统一 KV 类型、显存预算、运行时分配和上下文容量估算。
稳定性修复
- 修复动态 KV 扩容后 MoE expert cache 工作集不足导致的 panic。
- 修复长上下文 prefill 中历史 scratch buffer 未及时回收的问题。
- 修复 unified VRAM 碎片导致的 prefill 分配失败。
- 补齐 Vulkan buffer、command buffer、descriptor pool、fence 等错误路径回收。
- 修正手动 RAM 总预算,避免运行后期额外分配导致系统分页。
- 资源监控不再把可回收的 GGUF mmap 文件页误判为 RAM 泄漏。
验证
- Qwen3.6 35B 与 Qwen3.8 IQ4_XS 自动/手动资源配置共 9 项测试全部通过。
- 多轮 API 对话连续跨过 32K、64K、96K KV 扩容边界。
- 已验证 16 GiB + 32 GiB 和 24 GiB + 64 GiB 两类硬件资源配置。