HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

OpenArch – 最新LLMアーキテクチャのPyTorch実装

OpenArch – PyTorch implementations of modern LLM architectures (github.com)

117 pointsby anuj045628 コメント

要約

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

プロダクションリポジトリは速度、シャーディング、後方互換性を最適化するため、公式モデルのコードを読むのは困難な場合があります。このリポジトリは読みやすさを最適化しています。

実装されているもの(現時点)

✅でマークされた実装はフォワードパスに使用可能で、🚧でマークされたものは構築中です。

ModalityModelStatusModel SizeNormalizationPositional EncodingAttentionMixture of Experts
TextGPT-2 XL✅1.5B-AbsoluteMultihead AttentionNo
Llama 2✅7BRMS NormRoPEMultihead AttentionNo
Llama 3✅8BRMS NormRoPEGrouped Query AttentionNo
OLMo 2✅7BRMS Norm & QK-NormRoPEMultihead AttentionNo
DeepSeek R1✅671BRMS Norm & QK-NormRoPEMultihead Latent AttentionYes
Gemma 3✅27BRMS Norm & QK-NormRoPEGrouped Query Attention with Sliding WindowNo
Mistral 3✅24BRMS NormRoPEGrouped Query Attention with Sliding WindowNo
Llama 4 Maverick✅400BRMS NormRoPEGrouped Query AttentionYes
Qwen 3✅4BRMS Norm & QK-NormRoPEGrouped Query AttentionNo
30B-A3B✅-RMS Norm & QK-NormRoPEGrouped Query AttentionYes
Kimi K2✅1TRMS NormRoPEMultihead Latent AttentionYes
GLM 4.5✅355BRMS Norm & QK-NormRoPEGrouped Query Attention & Multi-Token PredictionYes
GPT-OSS✅20BRMS NormRoPEGrouped Query Attention with Sliding WindowYes
Grok-2.5✅270BRMS NormRoPEGrouped Query AttentionYes
Qwen3 Next🚧80B-A3BRMS NormRoPEGated AttentionYes
MultimodalPaliGemma✅3BRMS NormRoPEMultihead AttentionNo
Qwen3-VL🚧3BRMS NormRoPEMultihead AttentionNo
ImageDall-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 を使用してください。