FEATUREDr/LocalLLaMA· rssEN18:11 · 05·02
Reddit 网友用纯 C++17 手搓了一个 83 万参数的 Transformer,不用 PyTorch 也不用 BLAS,单核 CPU 训练 76 分钟
一个叫 Suspicious_Gap1121 的 Reddit 用户放出了 Quadtrix.cpp,一个用 C++17 从零写的 GPT 风格模型,总共 83 万参数。模型结构是 4 层、4 个注意力头、宽度 200 维,一次能看 128 个字符的上下文。他在单核 CPU 上拿 3140 万个字符训练了 76.2 分钟,验证损失降到 1.6371 n...
#Code#Fine-tuning#Inference-opt#Suspicious_Gap1121
精选理由
我会先打个折:这就是个个人练手项目,0.83M 参数离实用还远,别拿它跟正经模型比性能。但它的看点不在规模,而在把整个训练管线——LayerNorm、attention、Q/K/V、dropout、AdamW——全部手写反传,不用自动微分,不用 BLAS 加速,单核 CPU 跑通。正文没披露生成效果,也没给权重文件,所以只能当教学级实现来看。对 AI 从业者来说,这东西像一份可运行的底层教案,把平时被框架藏起来的细节全摊开了。
一句话点评
一个 Reddit 用户用纯 C++17 手搓了个 83 万参数的 Transformer,训练 76 分钟验证损失降到 1.64,没依赖任何深度学习库。
锐评
这条帖子展示了一个极简的 Transformer 实现,作者用 C++17 从零写了所有反向传播,包括层归一化、注意力机制和 AdamW 优化器,没碰 PyTorch 或 BLAS。模型很小,83 万参数,4 层 4 头,宽度 200 维,一次只能看 128 个字符,在单核 CPU 上拿 3140 万个字符训练了 76 分钟,验证损失 1.64 nats。
这个损失值本身不算惊艳,但考虑到纯 CPU 训练和极小的模型体量,能跑通完整流程已经说明作者对底层数学推导很熟。我会先打个折:正文没披露训练数据是什么、验证集怎么划分、也没给生成样例,所以没法判断模型实际输出质量。另外 128 字符的上下文窗口太短,基本只能做字符级语言建模实验,离实用还远。
对想理解 Transformer 内部细节的人来说,这份代码比看论文直观,因为所有梯度都是手写的,没有自动微分黑箱。但别指望拿它跑业务,它更像一个教学工具。还缺的是推理速度、内存占用和不同超参下的对比实验,这些作者都没提。
HKR 分解
hook ✓knowledge ✓resonance ✓