anuj0456/OpenArch
PyTorch implementations of modern open-source LLM architectures (Llama, Qwen, DeepSeek, Gemma, GPT-OSS, Kimi, and more) — written from scratch for readability and learning, based on Sebastian Raschka's LLM Architecture Gallery.
OpenArch – 现代 LLM 架构的可读 PyTorch 实现
是什么 – Sebastian Raschka 的《LLM 架构图鉴》中所列的数十种大语言模型(LLM)架构的手写 PyTorch model.py 文件集合。代码刻意保持极简:每个模型一个可读文件,无分片,无性能优化技巧,仅包含前向传播所需的最核心层。
为何存在 – Hugging Face transformers 等生产级库代码密集且高度优化,难以看清模型为何如此构建。OpenArch 的目标是成为学习资源,让注意力类型、归一化方式、位置编码、MoE 路由等架构选择清晰明确,便于横向对比。
已实现内容 – README 列出了数十种纯文本模型(GPT‑2 XL、Llama 2/3/4、OLMo 2、DeepSeek R1、Gemma 3、Mistral 3、Qwen 3 变体、Kimi K2、GLM 4.5、GPT‑OSS、Grok‑2.5 等)以及少数多模态或图像模型。每个条目显示:
- 模型大小(如 7B、400B)
- 归一化方式(RMS Norm、QK‑Norm 等)
- 位置编码(RoPE、绝对编码等)
- 注意力变体(多头、分组查询、滑动窗口、潜在、门控)
- 是否使用混合专家(MoE)
✅ 表示文件可运行前向传播;🚧 表示实现仍在进行中。
仓库结构
OpenArch/
├─ text/ ← 每个文本模型一个文件夹(gpt2/, llama3/, …)
│ ├─ model.py
│ └─ README.md
├─ multimodal/ (例如 pali-gemma/)
├─ requirements.txt
└─ README.md (此文件)
每个模型文件夹包含一个简短的 README,记录特定的架构选择和参考来源。
如何使用
- 克隆仓库并从
requirements.txt安装依赖(PyTorch 及若干工具)。 - 进入某个模型文件夹,例如
cd text/llama3。 - 运行提供的
model.py(或导入它)以实例化模型类,并输入一个 token ID 张量。代码包含一个简单的前向传播测试,可选择性加载官方权重并验证几个 token 输出。
贡献 – 项目欢迎以下贡献者:
- 添加图鉴中缺失的架构
- 为现有模型编写 README
- 添加与官方权重对比的测试
- 改进文档字符串或重构共享工具 贡献应优先考虑清晰性而非速度;目标是教育,而非生产。
许可证 – 仓库整体采用 Apache 2.0;各模型文件遵循原始模型的许可证。
总结 – OpenArch 是一个真正开源、面向学习的现代 LLM 架构代码库,适合任何希望在不使用完整库的开销下,阅读并理解当今大语言模型构建模块的人。
相关
- 项目
- 项目
- 项目
- 项目