bitsandbytes 的 4-bit 量化曾是本地 LoRA 微调的默认底座,但它至今不支持 MoE——而近几代新开源模型大量转向了 MoE。10 月 10 日,开发者 woct0rdho 在 Hacker News 放出 transformers5-qwen3.5-recipe,解法干脆:基座不用 bnb,直接用 GGUF。
卡点:bnb 的 MoE 空窗
过去几年本地训练的通行方案是 QLoRA:bnb 4-bit 基座加 LoRA 适配器,HuggingFace Transformers 做底座,Unsloth、Axolotl 在其上封装。bnb 迟迟没有 MoE 支持,新模型的本地训练因此停滞。另一边,GGUF 是 llama.cpp 生态的容器格式,4 bpw 以下量化质量依然可用,还装得下 MoE 与稀疏注意力,只是从来没人把它当训练基座。Transformers 5.18 开始原生支持 GGUF,作者实测在 Mac 上已快过 llama.cpp——这扇门才算打开。
GGUF 上位:一整套 kernel 栈
这个 repo 给的是一整条训练链路:GGUF 反量化函数过 torch.compile 省显存;仿 llama.cpp 的 MMQ 与分组 MMQ;线性层和 MoE 层的快 LoRA 反传公式;Liger 的 RMSNorm 与 chunked cross entropy;8-bit AdamW。模型侧适配覆盖 DeepSeek 的滑动注意力、CSA 与 HCA,以及 GatedDeltaNet 的 Triton 前反向 kernel。llama.cpp 目前没有快 LoRA kernel,作者顺手写了一个提交上去。
显存账本:16 GiB 到 192 GiB
数字谱系(全部无 CPU offload):
- Qwen3.6-35B-A3B:16 GiB(APEX-I-Mini 量化占 13.3 GiB),推得 122B-A10B 约 64 GiB、397B-A17B 约 192 GiB
- Qwen3.8-Flash-Next(125B-A6B 加 51B engram):40 GiB,GSQ-RCO Q2_0 量化 35 GiB
- DeepSeek-V4-Flash(284B-A13B):90 GiB,IQ2_XXS 占 81 GiB
在 Strix Halo 统一内存上,Qwen3.8-Flash-Next 训练 200 token/s,prompt 处理超 1600 token/s;DeepSeek-V4-Flash 也能 100 token/s 训练,但作者认为本地场景不如前者实用。
冷水与边界
目前配方里全部 kernel 参数都为 Strix Halo 调优,其他 GPU 还需适配;GGUF 支持仍在向 transformers 主线合并的 issue 里,合不进去就以 monkey patch 留在 repo。「GGUF 将取代 bnb 成为低显存 LoRA 基座」是方向性预测,不是既成事实。repo 以 Apache-2.0 开源,22 star、7 fork,很早期。
对开源权重社区,意义比数字大:open weights 的完整闭环不只是「能跑」,还包括「能改」。bnb 的 MoE 空窗说明把训练基座押注单一库有风险,GGUF 路径则证明推理生态的量化工艺可以反向输入训练侧。下次看到 125B 开放权重,先看显存再看教程——自己微调,可能比想象中近。