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
精选理由
精选 · 重要度 74 · 吸引力 + 知识量 + 共鸣
一句话点评
一个 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 ✓