OpenArch is een repository met handgeschreven PyTorch-implementaties van diverse moderne open-source Large Language Model (LLM) architecturen. In plaats van te focussen op productiesnelheid, ligt de nadruk volledig op leesbaarheid en educatie, waardoor gebruikers structurele keuzes zoals attention-mechanismen, normalisatie en positional encodings eenvoudig naast elkaar kunnen vergelijken.
Het project is gebaseerd op de LLM Architecture Gallery van Sebastian Raschka en bevat implementaties van uiteenlopende modellen, waaronder Llama, DeepSeek R1 en Gemma. De repository is overzichtelijk gestructureerd per model, waarbij elk model beschikt over een model.py en een README.md. Daarnaast is het een open project dat bijdragen van de community stimuleert om het begrip van moderne LLM-bouwstenen te verdiepen.
OpenArch: PyTorch-implementaties van moderne open-source LLM-architecturen
Deze repository bevat implementaties van de modelarchitecturen die zijn gecatalogiseerd in de LLM Architecture Gallery van Sebastian Raschka. Elk model is naar beste weten geïmplementeerd op basis van de originele papers, technische rapporten, referentie config.json-bestanden en de uitgebreide analyses van Sebastian Raschka en Machine Learning Mastery.
Het doel is niet om te concurreren met transformers of andere productielibraries. Het doel is duidelijkheid en leren: één leesbaar bestand per architectuur, waarbij structurele keuzes (zoals het type attention, normalisatie, layer-mix, MoE-routing en positional encoding) expliciet zijn gemaakt en eenvoudig naast elkaar kunnen worden vergeleken.
Waarom deze repository?
Moderne LLM-architecturen delen een gemeenschappelijk skelet, maar verschillen in tientallen kleine, belangrijke keuzes:
- Attention: MHA, GQA, MQA, MLA, sliding-window, linear/DeltaNet-hybrides.
- Normalisatie: pre-norm, post-norm, QK-Norm, sandwich norm, RMSNorm.
- Positional encodings: RoPE, NoPE, partial RoPE, YaRN.
- Decoder-type: dense versus sparse MoE (met of zonder shared experts), hybride Mamba/attention.
- Training-time tricks: Multi-token-prediction, latent experts, gated attention.
Het lezen van officiële modelcode kan lastig zijn, omdat productie-repositories zijn geoptimaliseerd voor snelheid, sharding en achterwaartse compatibiliteit. Deze repository is geoptimaliseerd voor leesbaarheid.
Geïmplementeerde modellen
Implementaties gemarkeerd met � zijn bruikbaar voor forward passes; implementaties gemarkeerd met 🚧 zijn in constructie.
| Modaliteit | Model | Status | Modelgrootte | Normalisatie | Positional Encoding | Attention | Mixture of Experts |
| Text | GPT-2 XL | � |
| 1.5B | - | Absolute | Multihead Attention | Nee |
| Text | Llama 2 | � |
| 7B | RMS Norm | RoPE | Multihead Attention | Nee |
| Text | Llama 3 | � |
| 8B | RMS Norm | RoPE | Grouped Query Attention | Nee |
| Text | OLMo 2 | � |
| 7B | RMS Norm & QK-Norm | RoPE | Multihead Attention | Nee |
| Text | DeepSeek R1 | � |
| 671B | RMS Norm & QK-Norm | RoPE | Multihead Latent Attention | Ja |
| Text | Gemma 3 | � |
| 27B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention with Sliding Window | Nee |
| Text | Mistral 3 | � |
| 24B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | Nee |
| Text | Llama 4 Maverick | � |
| 400B | RMS Norm | RoPE | Grouped Query Attention | Ja |
| Text | Qwen 3 | � |
| 4B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | Nee |
| Text | 30B-A3B | - | - | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | Ja |
| Text | Kimi K2 | � |
| 1T | RMS Norm | RoPE | Multihead Latent Attention | Ja |
| Text | GLM 4.5 | � |
| 355B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention & Multi-Token Prediction | Ja |
| Text | GPT-OSS | � |
| 20B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | Ja |
| Text | Grok-2.5 | 🚧 | 270B | RMS Norm | RoPE | Grouped Query Attention | Ja |
| Multimodal | PaliGemma | � |
| 3B | RMS Norm | RoPE | Multihead Attention | Nee |
| Multimodal | Qwen3 | 🚧 | 3B | RMS Norm | RoPE | Multihead Attention | Nee |
| Image | Dall-e | 🚧 | - | - | - | Transformer | - |
De volledige doellijst weerspiegelt de 72 architecturen in de Architecture Gallery. Bijdragen aan deze modellen zijn welkom.
Structuur van de repository
OpenArch/
├── text/
│ ├── gpt2/
│ │ ├── model.py
│ │ └── README.md
│ ├── llama3/
│ ├── qwen3/
│ ├── grok2.5/
│ └── deepseek_v3/
├── multimodal/
│ └── pali-gemma/
│ ├── model.py
│ └── README.md
├── README.md
└── requirements.txt
Elk model bevindt zich in een eigen map met een bijbehorend model.py en een korte README.md waarin de architecturale keuzes en gebruikte referenties worden beschreven.
Bijdragen
Ik ben actief op zoek naar bijdragers. Als je graag model-papers leest, config.json-bestanden vergelijkt of je begrip van hoe moderne LLM's zijn gebouwd wilt verdiepen, is dit een goede plek om te beginnen.
Goede eerste bijdragen zijn:
- Kies een niet-geïmplementeerd model uit de gallery en voeg een
model.py toe.
- Voeg een
README.md toe voor een bestaand model waarin de architecturale keuzes worden gedocumenteerd.
- Voeg een forward-pass test toe die de officiële gewichten laadt en de output vergelijkt op een aantal tokens.
- Los bugs op, verbeter docstrings of refactor gedeelde componenten.
Open a.u.b. een issue voordat je aan een groot stuk werk begint, zodat we dubbel werk kunnen voorkomen. Implementaties moeten prioriteit geven aan leesbaarheid boven prestaties — dit is in de eerste plaats een leermiddel. Zie CONTRIBUTING.md voor meer details.
Erkenningen
Deze repository zou niet bestaan zonder het werk van twee uitstekende educatoren:
- Sebastian Raschka — voor de LLM Architecture Gallery, de Big LLM Architecture Comparison-serie, en het boek en de codebase LLMs From Scratch. De architectuurdiagrammen, fact-sheets en zij-aan-zij vergelijkingen in de gallery zijn de primaire referentie achter elk model in deze repo.
- Jason Brownlee en het team van Machine Learning Mastery — voor jaren van heldere, toegankelijke tutorials die talloze beoefenaars (mijzelf inbegrepen) hebben geholpen om een werkend begrip van deep learning en transformer-architecturen vanaf de basis op te bouwen.
Eventuele fouten in de implementaties zijn volledig op mijn eigen verantwoordelijkheid.
Licentie en Disclaimer
Licentie
Dit project is gelicentieerd onder de Apache License 2.0 — zie LICENSE voor details. Individuele model-implementaties volgen de licenties van de originele modellen waar applicable; zie de map van elk model voor details.
Disclaimer
Deze implementaties zijn naar beste weten geschreven op basis van publiek beschikbare papers, technische rapporten, configuratiebestanden en educatief materiaal. Ze zijn bedoeld als leermiddel en zijn niet verbonden met of onderschreven door de oorspronkelijke model-auteurs. Voor productiegebruik wordt aangeraden de officiële implementaties of transformers te gebruiken.
OpenArch: PyTorch-implementaties van moderne open-source LLM-architecturen
Deze repository bevat implementaties van de modelarchitecturen die zijn gecatalogiseerd in de LLM Architecture Gallery van Sebastian Raschka. Elk model is naar beste weten geïmplementeerd op basis van de originele papers, technische rapporten, referentie config.json-bestanden en de uitgebreide analyses van Sebastian Raschka en Machine Learning Mastery.
Het doel is niet om te concurreren met transformers of andere productielibraries. Het doel is duidelijkheid en leren: één leesbaar bestand per architectuur, waarbij structurele keuzes (zoals het type attention, normalisatie, layer-mix, MoE-routing en positional encoding) expliciet zijn gemaakt en eenvoudig naast elkaar kunnen worden vergeleken.
Waarom deze repository?
Moderne LLM-architecturen delen een gemeenschappelijk skelet, maar verschillen in tientallen kleine, belangrijke keuzes:
- Attention: MHA, GQA, MQA, MLA, sliding-window, linear/DeltaNet-hybrides.
- Normalisatie: pre-norm, post-norm, QK-Norm, sandwich norm, RMSNorm.
- Positional encodings: RoPE, NoPE, partial RoPE, YaRN.
- Decoder-type: dense versus sparse MoE (met of zonder shared experts), hybride Mamba/attention.
- Training-time tricks: Multi-token-prediction, latent experts, gated attention.
Het lezen van officiële modelcode kan lastig zijn, omdat productie-repositories zijn geoptimaliseerd voor snelheid, sharding en achterwaartse compatibiliteit. Deze repository is geoptimaliseerd voor leesbaarheid.
Geïmplementeerde modellen
Implementaties gemarkeerd met � zijn bruikbaar voor forward passes; implementaties gemarkeerd met 🚧 zijn in constructie.
| Modaliteit | Model | Status | Modelgrootte | Normalisatie | Positional Encoding | Attention | Mixture of Experts |
| Text | GPT-2 XL | � |
| 1.5B | - | Absolute | Multihead Attention | Nee |
| Text | Llama 2 | � |
| 7B | RMS Norm | RoPE | Multihead Attention | Nee |
| Text | Llama 3 | � |
| 8B | RMS Norm | RoPE | Grouped Query Attention | Nee |
| Text | OLMo 2 | � |
| 7B | RMS Norm & QK-Norm | RoPE | Multihead Attention | Nee |
| Text | DeepSeek R1 | � |
| 671B | RMS Norm & QK-Norm | RoPE | Multihead Latent Attention | Ja |
| Text | Gemma 3 | � |
| 27B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention with Sliding Window | Nee |
| Text | Mistral 3 | � |
| 24B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | Nee |
| Text | Llama 4 Maverick | � |
| 400B | RMS Norm | RoPE | Grouped Query Attention | Ja |
| Text | Qwen 3 | � |
| 4B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | Nee |
| Text | 30B-A3B | - | - | RMS Norm & QK-Norm | RoPE | Grouped Query Attention | Ja |
| Text | Kimi K2 | � |
| 1T | RMS Norm | RoPE | Multihead Latent Attention | Ja |
| Text | GLM 4.5 | � |
| 355B | RMS Norm & QK-Norm | RoPE | Grouped Query Attention & Multi-Token Prediction | Ja |
| Text | GPT-OSS | � |
| 20B | RMS Norm | RoPE | Grouped Query Attention with Sliding Window | Ja |
| Text | Grok-2.5 | 🚧 | 270B | RMS Norm | RoPE | Grouped Query Attention | Ja |
| Multimodal | PaliGemma | � |
| 3B | RMS Norm | RoPE | Multihead Attention | Nee |
| Multimodal | Qwen3 | 🚧 | 3B | RMS Norm | RoPE | Multihead Attention | Nee |
| Image | Dall-e | 🚧 | - | - | - | Transformer | - |
De volledige doellijst weerspiegelt de 72 architecturen in de Architecture Gallery. Bijdragen aan deze modellen zijn welkom.
Structuur van de repository
OpenArch/
├── text/
│ ├── gpt2/
│ │ ├── model.py
│ │ └── README.md
│ ├── llama3/
│ ├── qwen3/
│ ├── grok2.5/
│ └── deepseek_v3/
├── multimodal/
│ └── pali-gemma/
│ ├── model.py
│ └── README.md
├── README.md
└── requirements.txt
Elk model bevindt zich in een eigen map met een bijbehorend model.py en een korte README.md waarin de architecturale keuzes en gebruikte referenties worden beschreven.
Bijdragen
Ik ben actief op zoek naar bijdragers. Als je graag model-papers leest, config.json-bestanden vergelijkt of je begrip van hoe moderne LLM's zijn gebouwd wilt verdiepen, is dit een goede plek om te beginnen.
Goede eerste bijdragen zijn:
- Kies een niet-geïmplementeerd model uit de gallery en voeg een
model.py toe.
- Voeg een
README.md toe voor een bestaand model waarin de architecturale keuzes worden gedocumenteerd.
- Voeg een forward-pass test toe die de officiële gewichten laadt en de output vergelijkt op een aantal tokens.
- Los bugs op, verbeter docstrings of refactor gedeelde componenten.
Open a.u.b. een issue voordat je aan een groot stuk werk begint, zodat we dubbel werk kunnen voorkomen. Implementaties moeten prioriteit geven aan leesbaarheid boven prestaties — dit is in de eerste plaats een leermiddel. Zie CONTRIBUTING.md voor meer details.
Erkenningen
Deze repository zou niet bestaan zonder het werk van twee uitstekende educatoren:
- Sebastian Raschka — voor de LLM Architecture Gallery, de Big LLM Architecture Comparison-serie, en het boek en de codebase LLMs From Scratch. De architectuurdiagrammen, fact-sheets en zij-aan-zij vergelijkingen in de gallery zijn de primaire referentie achter elk model in deze repo.
- Jason Brownlee en het team van Machine Learning Mastery — voor jaren van heldere, toegankelijke tutorials die talloze beoefenaars (mijzelf inbegrepen) hebben geholpen om een werkend begrip van deep learning en transformer-architecturen vanaf de basis op te bouwen.
Eventuele fouten in de implementaties zijn volledig op mijn eigen verantwoordelijkheid.
Licentie en Disclaimer
Licentie
Dit project is gelicentieerd onder de Apache License 2.0 — zie LICENSE voor details. Individuele model-implementaties volgen de licenties van de originele modellen waar applicable; zie de map van elk model voor details.
Disclaimer
Deze implementaties zijn naar beste weten geschreven op basis van publiek beschikbare papers, technische rapporten, configuratiebestanden en educatief materiaal. Ze zijn bedoeld als leermiddel en zijn niet verbonden met of onderschreven door de oorspronkelijke model-auteurs. Voor productiegebruik wordt aangeraden de officiële implementaties of transformers te gebruiken.