要是把这场对决拍成拳击赛,结果本该明摆着。
一个角落里:BitNet-100B,边缘 AI 的巨兽。一个 100B 参数的模型在 CPU 上本地跑,背后是原生低位宽推理这批真正有意思的想法。
另一个角落:Qwen3.5-9B q4,更小、更野的挑战者。更瘦、更轻、量化到 4-bit,按纸面推算,不应该是出拳更重的那一个。
如果你按眼下业界大多数人那样推理,直觉大概会告诉你:大模型轻松获胜。
而我看到的不是这个。
我做了一个两轮编码评测,拿 BitNet-100B 和 Qwen3.5-9B q4 比同一个简单的 Python 工具:递归扫描目录,分块哈希文件,按 SHA-256 把重复项分组,忽略符号链接,跳过读不了文件,只打印重复组。
第一轮是初始实现。
第二轮是按客气但中肯的 QA 反馈做的修改。
这事有意思的一部分在于:BitNet 可不只是「CPU 上的大模型」。微软把 BitNet b1.58 2B4T 描述成在 4T token 上训练的原生 1-bit LLM,其官方推理仓库的重点就是在一颗 CPU 上跑 100B 的 BitNet b1.58 模型。这里有真正的架构创新,不只是暴力压缩。
失败模式
真正扎眼的是失败模式。
BitNet-100B 彬彬有礼,配合度高。反馈接得很好,采纳建议的结构,看一眼还挺像积极响应的样子。但代码在结构上依然站不住:数据形状错了,迭代逻辑断了,分组不完整,改完之后还是不满足规格。它吸收的是任务的词汇表,不是任务的机制。
Qwen3.5-9B q4 的表现完全是另一副样子。它专注得多,专注在活儿本身。第一轮就已经连贯得多,它的修改看起来就像一个称职的初级工程师该有的样子:保住能跑的结构,补上薄弱点,继续往前走。
运行时的差别
先说一个前提:这并不是一次完全同台较量的运行时配置。Qwen 跑在自定义 llama.cpp GPU 沙盒里,用的是我和 Sam 写的 neural-llama 包;BitNet 跑在 BitNet 自己的 llama.cpp 分叉里,在 CPU 上。不同的运行时,不同的供应商,不同的优化面。
话虽如此,实战结果仍然重要。在我们测试的环境里,Qwen 产出的代码明显更好,修改也更有效,而 BitNet 在结构上依旧疲弱。
更大的论点是:编码性能不是光看参数量。它从整条技术栈里长出来:架构、训练配比、训练后处理、量化选择,还有实际伺候着模型的那个运行时和沙盒的质量。
BitNet-100B 作为一个系统级里程碑依然迷人。但在这场编码评测里,Qwen3.5-9B q4 是好得多的那个程序员,而且赢得毫无悬念。