面向Google编程CHARLES ZHANG

AI DAILY / 2026-09-15

OpenArch:现代大模型架构的简洁 PyTorch 实现合集

OpenArch – PyTorch implementations of modern LLM architectures

上下文与记忆Hacker News · 2026-09-14

全文中文翻译 · AI 生成,仅供学习交流

OpenArch – PyTorch 实现现代 LLM 架构

每个架构对应一个可读的单文件实现。结构上的选择(注意力类型、归一化、层混合、MoE 路由、位置编码)都明确标出来,方便并排对比。

为什么要做这个仓库?

现代 LLM(大语言模型)架构共享同一套骨架,却在很多细小又重要的选择上各不相同。

- 注意力(Attention):MHA、GQA、MQA、MLA、滑动窗口(sliding window)、线性/DeltaNet 混合
- 归一化(Normalization):前置归一化(pre-norm)、后置归一化(post-norm)、QK-Norm、夹心归一化(sandwich norm)、RMSNorm
- 位置编码(Positional Encoding):RoPE、NoPE、partial RoPE、YaRN
- 解码器类型:稠密 vs 稀疏 MoE(专家混合),可带或不带共享专家,Mamba/注意力混合
- 训练期技巧:多 token 预测(Multi-token prediction)、潜在专家(latent experts)、门控注意力(gated attention)

官方模型的代码读起来常常让人头疼。生产仓库要的是速度、分片和向后兼容,本仓库只要一件事,可读性。

已实现的内容(截至目前)

标 ✅ 的可以做前向传播,标 🚧 的还在写。

| 模态 | 模型 | 状态 | 模型规模 | 归一化 | 位置编码 | 注意力 | 专家混合 |
|------|------|------|----------|--------|----------|--------|----------|
| 文本 | GPT-2 XL | ✅ | 1.5B | — | Absolute | Multihead Attention | No |
| | Llama 2 | ✅ | 7B | RMS Norm | RoPE | Multihead Attention | No |
| | Llama 3 | ✅ | 8B | RMS Norm | RoPE | Grouped Query Attention | No |
| | OLMo 2 | ✅ | 7B | RMS Norm & QK-Norm | RoPE | Multihead Attention | No |
| | DeepSeek R1 | ✅ | 671B | RMS Norm & QK-Norm | RoPE | Multihead Latent Attention | Yes |
| | Gemma 3 | ✅ | 27B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention with Sliding Window | No |
| | Mistral 3 | ✅ | 24B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | No |
| | Llama 4 Maverick | ✅ | 400B | RMS Norm | RoPE | Grouped Query Attention | Yes |
| | Qwen 3 | ✅ | 4B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | No |
| | Qwen 3 30B-A3B | ✅ | 30B-A3B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | Yes |
| | Kimi K2 | ✅ | 1T | RMS Norm | RoPE | Multihead Latent Attention | Yes |
| | GLM 4.5 | ✅ | 355B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention & Multi-Token Prediction | Yes |
| | GPT-OSS | ✅ | 20B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | Yes |
| | Grok-2.5 | 🚧 | 270B | RMS Norm | RoPE | Grouped Query Attention | Yes |
| 多模态 | PaliGemma | ✅ | 3B | RMS Norm | RoPE | Multihead Attention | No |
| | Qwen3 | 🚧 | 3B | RMS Norm | RoPE | Multihead Attention | No |
| 图像 | Dall-e | 🚧 | — | — | — | Transformer | — |完整目标列表与 Architecture Gallery 中的 72 个架构一一对应,欢迎挑任意一个来贡献。

仓库结构

OpenArch/
├── text/
│   ├── gpt2/
│   │   ├── model.py
│   │   └── README.md
│   ├── llama3/
│   ├── qwen3/
│   │   ├── ...
│   ├── grok2.5/
│   │   └── ...
│   └── deepseek_v3/
│       └── ...
├── multimodal/
│   └── pali-gemma/
│       ├── model.py
│       └── README.md
├── README.md
└── requirements.txt

每个模型单独一个文件夹,里面是 model.py 和一份简短的 README.md,记录架构选择和参考资料来源。

贡献

我正在找贡献者。

如果你喜欢读模型论文、爱对比 config.json 文件,或者只是想搞清楚现代 LLM 是怎么搭起来的,这里是个不错的起点。

适合新手的贡献:

- 从画廊里挑一个还没实现的模型,给它写一份 model.py
- 给已有模型补一份 README.md,记录它的架构选择
- 写一个前向测试,加载官方权重,比对几个 token 的输出
- 修 bug、改 docstring,或者把共享组件重构一下大改动之前请先开个 issue,免得大家重复劳动。实现要把可读性放在性能前面。这是一个学习资源,学习才是第一位的。

更多细节见 CONTRIBUTING.md。

致谢

这个仓库能存在,要感谢两位很棒的教育者。

Sebastian Raschka,他的 LLM Architecture Gallery、Big LLM Architecture Comparison 系列,以及《LLMs From Scratch》一书和配套代码,是这一切的起点。画廊里的架构图、事实清单和并排对比,是本仓库里每个模型的主要参考。

Jason Brownlee 和 Machine Learning Mastery 团队,多年来一直用清晰好懂的教程,帮助无数从业者(包括我自己)从零开始搭建起对深度学习和 Transformer 架构的实操理解。

任何实现上的错误都由作者本人承担。

许可证

本项目按 Apache License 2.0 许可,详见 LICENSE 文件。各模型的实现遵循其原模型的许可证(如适用),具体见各模型文件夹。

免责声明

这些实现是作者基于公开论文、技术报告、配置文件和教学材料尽力编写的,旨在作为……