@rasbt: A little talk on what we can learn from implementing LLM architectures from scratch in Python and PyTorch. And how I ap…
摘要
Sebastian Raschka discusses the value of implementing LLM architectures from scratch in Python/PyTorch, sharing his workflow for understanding new open-weight models by dissecting configs, coding, and layer-by-layer debugging.
查看缓存全文
缓存时间: 2026/05/13 20:26
A little talk on what we can learn from implementing LLM architectures from scratch in Python and PyTorch. And how I approach new open-weight models, compare them against reference implementations etc: https://t.co/crKd2l9xGg
TL;DR: 演讲者分享了在 Python/PyTorch 中实现 LLM 架构的实践:通过分析 Hugging Face 模型中心的配置文件、对比参考代码、逐层调试来理解架构,并强调手动过程对学习的重要性。
定义“在 Python 中运行 LLM”
当我们说用 Python 运行 LLM 时,通常指的是通过 PyTorch 库。PyTorch 在底层调用 C++(CPU 上)或 CUDA/ROCm/Metal(GPU 上),因此它更像是 Python 与高速 C++ 实现之间的胶水。其他框架如 JAX 和 MLX 也有使用,但 PyTorch 是目前最流行的。
LLM 生态工具速览
- 训练阶段:大部分实验从 Python + PyTorch 开始,对于昂贵的模型(例如 5000 万美元的训练)会进一步优化 CUDA 内核或使用
torch.compile。 - 模型存储与交换:Hugging Face 模型中心是开放权重的“GitHub”,几乎所有公开模型都与其兼容。
- 推理工具:服务器端常用 SGLang 或 VLM;本地运行则多用 Llama.cpp 或 Ollama(也支持 MLX)。这些工具底层是 C++ 或 CUDA,但许多思路仍起源于 Python。
从零实现 LLM 架构能学到什么
当前论文往往不如过去详细,代码才是最终真相。通过手动实现并与参考对比,可以学到很多隐藏在配置文件与代码中的模式。
个人工作流程
- 获取信息:从社交媒体或博客得知新模型发布,查找技术报告(如 arXiv)和博客文章,了解设计动机。
- 查看模型中心:前往 Hugging Face 页面,阅读模型卡和
config.json。例如 Gemma 3 的配置中能看到使用了 GLU 激活、滑动窗口注意力(5 层全注意力 + 1 层滑动窗口)等。 - 对比旧架构图:拿之前画过的 GPT‑2 XL 或 Qwen 3 的架构图,根据配置更新。例如看到 Gemma 3 用了 GeLU 而非 SwiGLU,就要修改图中的激活函数。
- 编码实现:基于更新后的架构用 PyTorch 编码,并加载预训练权重进行文本生成测试。若结果异常(如输出乱码),就需要逐层调试。
- 逐层对比参考实现:写脚本依次比较每一层的输出,从嵌入层开始,直到定位偏差所在。例如演讲者发现嵌入层没问题,但第一个层的输入归一化(前置层)已经出现张量均值的差异。
调试案例
演讲者展示了用纯 Python/PyTorch 在本地运行的 LLM(界面用 Chainlit),模型来自其“从零构建推理模型”仓库。当用同样方法测试 Gemma 3 时,生成了一些看不懂的外语 token,说明实现有误,需要逐层排查。
AI 趋势与入门建议(简要提及)
演讲者原计划讨论当前 LLM 架构趋势和推荐的项目路线图(从初学者到专家),但转录中未展开。相关资源可参考其仓库和开源项目。
相似文章
@DanKornas:不要通过零散的教程学习 LLM。LLM from Scratch 是一个面向开发者的实践性 PyTorch 课程,适合那些想要……
一个实践性 PyTorch 课程,教授从 Transformer 基础到微调和对齐的 LLM 训练,包括 RLHF 和 GRPO。
@harshbhatt7585: https://x.com/harshbhatt7585/status/2063593933314113587
作者分享了从头训练一个160M参数大语言模型的经验,尝试了多种架构,如多Token预测和分层推理模型。他强调快速迭代、简化思路以及理解架构有效原因的重要性。
@_rohit_tiwari_:用PyTorch从头构建类似GPT的LLM > 将LLM架构拆分为简单部分 > 对初学者友好 > Fu…
一个对初学者友好的动手GitHub仓库,将类似GPT的LLM架构拆分为简单部分,包含10个Jupyter笔记本,涵盖分词、注意力机制、Transformer块以及用PyTorch实现的微型GPT。
@rasbt:我整理了一篇关于使用开放权重模型设置本地编码代理的新文章。一切完全在本地运行。我…
Sebastian Raschka 分享了一个关于使用开放权重 LLM 设置完全本地编码代理的新教程,包含操作指南和选择模型的评估检查表。
LLM架构的最新发展:KV共享、mHC与压缩注意力 [P]
Sebastian Raschka回顾了LLM架构中针对长上下文效率的最新创新,包括KV共享、压缩卷积注意力和来自Gemma 4、ZAYA1、Laguna XS.2和DeepSeek V4等模型的逐层注意力预算。