OpenArch – 最新LLMアーキテクチャのPyTorch実装
OpenArch – PyTorch implementations of modern LLM architectures (github.com)
要約
OpenArchは、最新のオープンソースLLMアーキテクチャをPyTorchでゼロから実装したリポジトリです。学習と理解を目的とし、各モデルの構造的な選択肢を明確に比較できるように記述されています。既存のプロダクションライブラリとの競合ではなく、可読性を重視した学習リソースとして提供されています。
全文翻訳
OpenArch
最新のオープンソースLLMアーキテクチャのPython実装 — ゼロから、一度に一つのモデルを書き下ろしたもの。
このリポジトリには、Sebastian Raschka氏のLLMアーキテクチャギャラリーに掲載されているモデルアーキテクチャの、手書きによるPyTorch実装が含まれています。各モデルは、オリジナルの論文、技術レポート、参照 config.json ファイル、そしてSebastian Raschka氏やMachine Learning Masteryによる優れた解説記事に基づいて、私の知る限り最善の方法で実装されています。
目的は transformers やその他のプロダクションライブラリと競合することではありません。目的は明瞭さと学習です。アーキテクチャごとに単一の読みやすいファイルを用意し、構造的な選択(アテンションの種類、正規化、レイヤーミックス、MoEルーティング、位置エンコーディング)を明確にし、並べて比較しやすくします。
なぜこのリポジトリなのか?
最新のLLMアーキテクチャは共通の骨格を持っていますが、数十個の小さくも重要な選択肢で異なります。
- アテンション: MHA, GQA, MQA, MLA, スライディングウィンドウ、線形/DeltaNetハイブリッド
- 正規化: pre-norm, post-norm, QK-Norm, sandwich norm, RMSNorm
- 位置エンコーディング: RoPE, NoPE, partial RoPE, YaRN
- デコーダータイプ: dense vs sparse MoE(共有エキスパートあり/なし)、ハイブリッドMamba/アテンション
- トレーニング時のトリック: Multi-token-prediction, latent experts, gated attention
プロダクションリポジトリは速度、シャーディング、後方互換性を最適化するため、公式モデルのコードを読むのは困難な場合があります。このリポジトリは読みやすさを最適化しています。
実装されているもの(現時点)
✅でマークされた実装はフォワードパスに使用可能で、🚧でマークされたものは構築中です。
| Modality | Model | Status | Model Size | Normalization | Positional Encoding | Attention | Mixture of Experts |
|---|---|---|---|---|---|---|---|
| Text | 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 | |
| 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 | |
| Qwen3 Next | 🚧 | 80B-A3B | RMS Norm | RoPE | Gated Attention | Yes | |
| Multimodal | PaliGemma | ✅ | 3B | RMS Norm | RoPE | Multihead Attention | No |
| Qwen3-VL | 🚧 | 3B | RMS Norm | RoPE | Multihead Attention | No | |
| Image | Dall-e | 🚧 | - | - | - | Transformer | - |
ターゲットリスト全体は、アーキテクチャギャラリーの103個のアーキテクチャを反映しています。それらのいずれへの貢献も歓迎します。
リポジトリの構造
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を追加する - 公式ウェイトをロードし、数トークンで出力を一致させるフォワードパスのテストを追加する
- バグを修正する、ドキュメンテーション文字列を改善する、または共有コンポーネントをリファクタリングする
作業の重複を避けるため、大規模な作業を開始する前に必ずイシューを開いてください。実装はパフォーマンスよりも可読性を優先すべきです — これはまず学習リソースです。
詳細については CONTRIBUTING.md を参照してください。
謝辞
このリポジトリは、2人の優れた教育者の功績なしには存在し得ませんでした。
- Sebastian Raschka — LLMアーキテクチャギャラリー、Big LLM Architecture Comparison シリーズ、そしてLLMs From Scratch の書籍とコードベースに対して。ギャラリーのアーキテクチャ図、ファクトシート、および並列比較は、このリポジトリのすべてのモデルの主要な参照元です。
- Jason Brownlee氏とMachine Learning Mastery のチーム — 長年にわたる明確でアクセスしやすいチュートリアルにより、数え切れないほどの実践者が(私も含め)ディープラーニングとトランスフォーマーアーキテクチャの全体像を理解するのに役立ちました。
ここでの実装におけるいかなる誤りも、すべて私の責任です。
ライセンス
このプロジェクトはApache License 2.0の下でライセンスされています — 詳細については LICENSE を参照してください。個々のモデル実装は、該当する場合、元のモデルのライセンスに従います。各モデルのフォルダで詳細を確認してください。
免責事項
これらの実装は、公開されている論文、技術レポート、設定ファイル、および教育資料に基づいて、私の知る限り最善の方法で記述されています。これらは学習リソースとして意図されており、元のモデル作成者とは提携しておらず、彼らによって承認されていません。プロダクション用途には、公式実装または transformers を使用してください。