Aethr Research / Technical Report
OMN: Architecture and Training Design
A source-grounded account of AETHR's first OMN implementation. Its architecture, optimization system, training objective, data path, and the design questions that motivated it.
- Kind
- Architecture · Technical Report
- System
- OMN-1
OMN is AETHR's foundation-model architecture and research environment for studying how architectural structure, parameter-specific optimization, attention stabilization, and training-system design interact inside a language model. The first OMN implementation is a 1.503B-parameter dense autoregressive Transformer trained through a hybrid Muon + AdamW optimization system, with parallel residual blocks, grouped-query attention, learned Q/K normalization, RoPE, SwiGLU, tied embeddings, and an explicit packed-document training pipeline.
Contents
Abstract
OMN was developed as an experimental foundation for investigating the Transformer itself, rather than treating architecture as a fixed implementation detail. The programme starts from a simple observation: a language model contains several structurally different kinds of parameters, several distinct numerical regimes, and a training pipeline full of implicit accounting decisions — and the default research posture is to hold nearly all of that fixed while varying data and scale.
The first OMN implementation is a dense, decoder-only autoregressive Transformer: 28 decoder blocks at hidden width 2,048 with a 5,504-wide SwiGLU feed-forward path, 16 query heads against 4 key/value heads at head dimension 128, a 128,256-token vocabulary, a configured position ceiling of 32,768, and 1,503,200,256 unique parameters. Each block applies one learned RMSNorm to its input and feeds the normalized state to attention and feed-forward branches in parallel, so that xl+1 = xl + Attention(ul) + SwiGLU(ul).
Optimization is assigned by parameter role rather than by tensor rank alone. Internal transformer projection matrices — 1,240,465,408 parameters, 82.5216% of the model — are routed through Muon, which transforms update directions through Newton–Schulz-style orthogonalization. The shared embedding/output matrix and all normalization parameters — 262,734,848 parameters, 17.4784% — are routed through AdamW with zero decay on the active groups. The preserved training recipe accounts for approximately 193B consumed input tokens: this is a measure of data exposure, not of unique tokens, and the report keeps that distinction explicit throughout.
Several historical benchmark, spectral, truncation, and long-context measurements exist in the project documentation, but their raw provenance is incomplete or internally inconsistent. They are intentionally excluded from the central claims of this report. The purpose of what follows is not to claim architectural superiority, but to document the system precisely enough that its design hypotheses, implementation, and unresolved questions can be evaluated independently.
Motivation
The foundation should remain part of the research.
Large language models often inherit a familiar stack of architectural and optimization decisions and concentrate experimentation on data, scale, post-training, or application behavior. The block topology, the optimizer, the attention scaling behavior, and the training-state bookkeeping arrive as settled defaults.
OMN takes a different starting point. It treats the architecture itself — how information flows through each block, how attention regulates scale, how different parameter roles are optimized, and how training state is accounted for — as part of the research surface.
Structure before scale.
Scale is an extraordinarily powerful driver of model capability. But scale alone does not answer whether the existing parameter budget is being structured and optimized in the most appropriate way. OMN was designed around a narrower question: can a Transformer be made into a better experimental object by matching more of its training behavior to the structure of the model itself?
This motivation produced four design principles — parameter structure, attention stabilization, block structure, and training correctness — developed below.
01
Different parameter roles need not share one optimization path.
Transformer models contain different kinds of trainable objects: large internal projection matrices, a large vocabulary embedding, normalization gains, and other vector-like parameters. OMN routes these roles differently instead of applying one optimizer uniformly across the entire model.
Concretely: internal transformer projection matrices are routed through Muon, while the shared embedding/output matrix and normalization parameters are routed through AdamW. The embedding is a two-dimensional matrix and still travels the AdamW path — routing follows role, not rank.
02
Attention scale should be part of the learned system.
OMN applies learned RMS normalization independently to queries and keys before rotary position encoding. This gives the attention path an explicit learned normalization mechanism rather than relying only on upstream residual dynamics.
The intervention evidence for this mechanism — what happens when it is clamped or removed — belongs to its dedicated research note and is only summarized here.
03
Keep the information path simple enough to study.
Within each OMN block, attention and the feed-forward network receive the same normalized representation and update the residual stream in parallel. This removes the within-block dependency in which the FFN first consumes an attention-updated hidden state.
This is stated as design intent — a simpler object of study — not as a proven efficiency advantage over sequential blocks.
04
Architecture is only meaningful if the training system preserves its assumptions.
OMN's research programme includes packed-document boundaries, valid-target loss accounting, optimizer-specific parameter routing, checkpoint-aligned sampling state, and an explicit distinction between consumed and prefetched data. The architecture and the training system are treated as one experimental object: a block design means little if the data path silently violates its assumptions.
Figure 1 · OMN as a research system
Reference implementation
OMN-1 at a glance
The table below records the audited OMN-1 reference implementation — the configuration established directly by the current code. Where the historical checkpoint corroborates a value, the report says so; the two artifacts are never merged into one.
- Architecture
- Dense autoregressive decoder-only Transformer
- Layers
- 28
- Hidden width
- 2,048
- FFN width
- 5,504 (SwiGLU)
- Query heads
- 16
- KV heads
- 4 (4:1 grouping)
- Head dimension
- 128
- Vocabulary
- 128,256
- Unique parameters
- 1,503,200,256
- Parameters excluding token embeddings
- 1,240,531,968
- Configured position ceiling
- 32,768
- RoPE base
- 500,000
- Linear bias
- None
- RMSNorm epsilon
- 1e-6
- Internal linear initialization
- Orthogonal, gain 0.85
- Embedding initialization
- Gaussian, σ = 0.02
- Tied embedding / output
- Yes — saves 262,668,288 parameters
The AdamW population decomposes just as exactly. Beyond the shared embedding, the model carries 66,560 normalization parameters: per layer, one 2,048-wide block gain plus 128-wide Q and K gains, across 28 layers, with a final 2,048-wide output gain — 28 × 2,304 + 2,048. The 128-wide Q/K shape independently confirms that each gain vector is shared across its layer's heads rather than allocated per head.
Figure 2 · Parameter composition
Block topology
A parallel residual block
Each OMN decoder block contains exactly one learned RMSNorm at its input. The normalized hidden state feeds both the self-attention branch and the SwiGLU feed-forward branch, and their outputs are added to the incoming residual stream together:
“Shared normalization” means attention and FFN share the same normalized input within a block. It does not mean one global normalization layer reused across all 28 layers — every layer carries its own learned RMSNorm. And the FFN never consumes the attention-updated residual from the same block; both branches read ul and write back independently.
Figure 3 · Exact block diagram
Attention
Grouped-query attention with learned Q/K normalization
OMN uses 16 query heads and 4 key/value heads at head dimension 128, so each KV head serves four query heads. The projection structure, verified in the implementation, is:
Queries and keys are independently RMS-normalized over the head dimension before rotary position encoding. Each normalization carries a learned gain vector of width 128 that is shared across the corresponding heads in that layer — there is no per-head gain vector in the implementation, and the report does not describe one.
The order is load-bearing and must be shown exactly: projection → Q/K RMSNorm → RoPE → attention. Normalization never follows RoPE.
Figure 4 · Attention path
Position
Rotary position encoding
OMN applies rotary position encoding with a theta (base) of 500,000, applied after Q/K normalization. The implemented position ceiling is 32,768, and RoPE buffers and rotation expressions in the current implementation compute in FP32.
The tokenizer metadata contains a larger generic model_max_length value of 131,072. That metadata does not expand the architecture: OMN's implemented position ceiling is 32,768, and this report makes no claim about demonstrated retrieval capability at that span. Configured length and learned capability are different objects of study.
Feed-forward
The feed-forward branch
The FFN uses SwiGLU — a standard expressive gated structure, included here as part of the experimental block, not presented as an OMN invention:
The arithmetic is worth stating because it closes the parameter accounts exactly. Per block, the three FFN matrices hold 2048 × 5504 × 3 = 33,816,576 parameters; across 28 blocks that is 946,864,128. Attention contributes 10,485,760 per block — Q and O at 2048 × 2048, K and V at 512 × 2048 — for 293,601,280 across the model. Together those reach 1,240,465,408: precisely the Muon-routed population in Figure 2. The remainder is the 262,668,288-parameter shared embedding plus 66,560 normalization gains on the AdamW path. Nothing is unaccounted for.
Representation sharing
One vocabulary matrix, two roles
OMN shares a single parameter between token embeddings and the output vocabulary projection, avoiding a second independent vocabulary matrix. The verified independent-parameter saving is:
Direct inspection of the historical checkpoint confirms the mechanism: the file contains separate serialized entries for the embedding and the head whose bytes are identical, while unique-parameter accounting deduplicates the tied role — 1,765,868,544 serialized entries against 1,503,200,256 unique parameters.
Figure 5 · Weight tying
Initialization
Initialization
Internal linear matrices are orthogonally initialized with gain 0.85; embeddings are drawn from a Gaussian with σ = 0.02. Both values are established directly by the configuration.
Optimization
Two optimizer paths
OMN does not route parameters solely by tensor rank. Its optimizer assignment is role-specific, implemented as a three-way partition of the named parameters:
- Internal Q/K/V/O matrices
- Muon
- FFN gate / up / down matrices
- Muon
- Shared embedding / output
- AdamW · zero decay
- Normalization parameters
- AdamW · zero decay
In parameter counts, the Muon path carries 1,240,465,408 parameters (82.5216%) and the AdamW path 262,734,848 (17.4784%). Note what this implies about the AdamW population: the shared embedding accounts for 262,668,288 of those parameters, leaving 66,560 normalization gains — and every active AdamW group runs at zero decay, as developed below.
This hybrid design is substantial enough to receive its own technical report — Matrix-Aware Hybrid Optimization in OMN, currently in preparation and marked forthcoming at the end of this page. What follows here is a summary, not a duplication.
Figure 6 · Optimizer routing
Muon summary
Momentum with orthogonalized updates
Muon maintains a Nesterov-style momentum buffer at 0.95 and applies five Newton–Schulz-style iterations per step, with peak learning rate 0.01 in the preserved recipe:
At a high level, each update tensor is converted to FP32, magnitude-normalized, oriented so the Gram matrix uses the smaller dimension, transformed through five Newton–Schulz-style polynomial iterations, and restored to its original orientation and dtype. The exact polynomial, for the record:
Exact Newton–Schulz polynomial
A = XXT·X ← 3.4445·X + (−4.775·A + 2.0315·A²)·X
AdamW summary
Adaptive moments for embedding and norms
- Betas
- (0.90, 0.95)
- Epsilon
- 1e-8
- Gradient clipping
- 1.0 · AdamW parameters only
- Peak learning rate (recipe)
- 0.0003
One nuance matters more than the rest. Although the preserved YAML specifies weight_decay = 0.01, the implementation partitions AdamW parameters into decay and no-decay groups — and the routing places the embedding, the head, and every normalization gain in the no-decay group at weight decay 0.0. This report therefore does not claim the normalization vectors or the embedding were actually decayed: the implemented routing says otherwise, and the routing is what ran.
Numerical execution
Numerical execution
The current canonical trainer holds model parameters and optimizer state in FP32 with BF16 autocast for forward computation. RoPE buffers and rotation expressions compute in FP32, and Newton–Schulz tensors are represented in FP32. The historical averaged checkpoint, by contrast, stores BF16 weights.
The execution policy itself is explicit rather than ambient. A deterministic flag governs the hardware allowances: TF32 matrix multiplication, cuDNN TF32, and BF16 reduced-precision reduction are each set to the negation of that flag — permitted under default nondeterministic execution, disabled under determinism — and the effective policy is written into the run record alongside the configuration.
One qualification is required: default nondeterministic execution may permit TF32 matrix multiplication. The report therefore states that Newton–Schulz tensors are represented in FP32 subject to the configured hardware execution policy — never that all Muon arithmetic is full IEEE FP32.
Training objective
Cross-entropy with Z-loss
The training objective is cross-entropy plus a Z-loss term that penalizes excessive log-partition magnitude, with preserved weight 10−4:
The mean runs over valid targets only — boundary-masked positions, developed next, are excluded from both terms. And a standing rule for any downstream evaluation: perplexity must be computed from pure cross-entropy, never from the combined training objective. The two are different quantities.
Data exposure
Packing without cross-document attention
The current reference implementation packs multiple documents into each 32,768-token row with strict segment discipline, anchored to vocabulary ID 128001 as EOS under base seed 42 — reproducible from the configuration rather than emergent from data order. An EOS token closes an attention segment, and row boundaries terminate context likewise: packed attention cannot cross document or segment boundaries, and the token immediately after a boundary is excluded as a next-token target (masked to −100 in the labels).
Two details are easy to get wrong and are stated exactly. First, prediction of EOS itself remains trainable — only the cross-boundary transition is masked. Second, positions normally continue through the packed row unless explicit position IDs are provided; the report does not claim positions reset at every document boundary by default.
Figure 7 · Packed-row masking
Data pipeline
From documents to optimizer updates
The current reference path runs: approved documents → tokenizer → corpus builder (document-end EOS, optional BOS, exact deduplication, protected n-gram screening) → uint32 shards with manifests and tail accounting → global domain/sequence planner → packed rows with boundaries and labels → OMN forward → valid-target cross-entropy plus Z-loss → globally weighted accumulated gradients → Muon and AdamW → checkpoint → resume into the next data state.
The statement above describes the current reference implementation. It does not imply the historical 193B corpus was necessarily built with the current repaired builder — that would conflate two artifacts the report keeps separate.
Figure 8 · End-to-end training pipeline
Training recipe
Scheduling by consumed input tokens
The preserved phase1_193b recipe schedules by consumed input tokens — not by steps or epochs. Both optimizers share the same phase structure at different peaks: Muon at 0.01, AdamW at 0.0003. Warmup spans the first 2B tokens, the stable phase runs to 164B tokens, and cooldown interpolates toward an absolute floor of 1e-5 as 1 − √(cooldown progress), for approximately 193B tokens total.
This is a WSD-style schedule — warmup, stable, decay — and the report does not call it a cosine schedule. The figure below draws the configured curves, normalized per optimizer; it is recipe, not measured telemetry, and no noisy training curve is shown because none is evidenced.
Figure 9 · WSD learning-rate schedule (configured)
Source mixture
Source mixture
The preserved recipe allocates approximately 64.23% to general, web, and academic sources, 15.02% to math, and 20.74% to code:
Source-mixture allocations
Full 16-domain breakdown (from configuration)
- C4
- 30.4392%
- FineWeb-Edu
- 21.5019%
- SwallowCode-Python
- 13.4374%
- peS2o-Academic
- 5.5758%
- OpenWebMath
- 5.4254%
- SwallowMath
- 5.2461%
- AlgebraicStack
- 3.2820%
- StarCoder-C
- 3.2654%
- StarCoder-C++
- 2.8663%
- DCLM-Baseline
- 2.2916%
- Cosmopedia
- 2.3312%
- Wikipedia
- 2.0929%
- OpenMathInstruct-2
- 1.0713%
- StarCoder-Rust
- 0.5036%
- StarCoder-SQL
- 0.4417%
- StarCoder-Shell
- 0.2281%
Domain labels are reproduced exactly as configured; none are invented.
Token accounting
What “193B tokens” means
Two independent local lines of evidence support approximately 193B consumed input tokens for the historical OMN-1 run. The sampler-state prefixes record 192,990,412,800 tokens; independent step/recipe arithmetic — 736,000 × 32,768 × 1 × 2 × 4 — gives 192,937,984,000 tokens. In per-step terms that is 736,000 steps of 262,144 tokens, with the factor of 8 spanning batch, accumulation, and world parallelism. Both converge on the same neighborhood, and the report claims no more precision than that convergence supports.
Three negative statements are load-bearing. This does not mean 193B unique tokens. It does not mean 193B unique training examples. And it does not imply every sequence was seen exactly once — historical sampler snapshots show duplicate sequence-slot exposure, examined next.
Figure 10 · Token accounting
Historical data exposure
What the preserved sampler state reveals
Across 32 preserved snapshots, the recorded consumed-prefix draws total 5,889,600 against 3,935,427 distinct (domain, sequence-slot) identities — 33.1801% duplicate draws — with Domain 0 covered at 1,142,350 of 1,792,838 slots (63.7174%). These measurements demonstrate overlapping historical sequence-slot exposure.
They do not establish a semantic duplicate rate, privacy leakage, a memorization rate, or complete final-corpus coverage, and the report does not present them as any of those. They are included for a narrower reason: overlapping exposure is part of why training-state accounting became an explicit research concern in the current framework.
Figure 11 · Historical exposure
Checkpoint design
Training state is more than model weights
Current checkpoints preserve model weights, optimizer states, scheduler state, RNG state, the consumed stream boundary, and data-planner state with recovery lineage. The central distinction is between prefetched work and committed, consumed training state: only the boundary between them lets resumed training reconstruct the correct logical stream position. The mechanics are concrete: sampler state persists every 50 batches, and each stream carries a versioned digest binding sequence length, EOS identity, and base seed, so a resumed run can verify it is continuing the same logical stream rather than a lookalike.
Historical artifact
What is directly verified from the checkpoint
The historical averaged checkpoint was inspected directly for this report — tensor by tensor, not via summary documents. The serialized file holds 1,765,868,544 entries; subtracting the 262,668,288-parameter tied duplicate reproduces the unique count of 1,503,200,256 exactly. Every value below was read off the artifact:
- Unique parameters
- 1,503,200,256
- Stored tensors
- 283
- Storage dtype
- BF16
- Serialized entries
- 1,765,868,544 (includes the tied duplicate)
- Embedding / head
- Separate entries, byte-identical
- Averaging
- Steps 734k / 735k / 736k, uniform average declared
- Q/K gains
- Learned and nonuniform (see §24.5)
- Checkpoint SHA-256
- fd8c59f3…79cc728
One limit is stated plainly: the three source checkpoints used for the historical average were not available locally, so the averaging operation itself could not be recomputed. The report verifies the product, not the operation. Notably, the checkpoint envelope carries its own averaging metadata — source steps and uniform method stored inside the file rather than in a sidecar — which is how the declaration above was read.
Evidence discipline
Boundaries of the evidence
This report does not claim that OMN has demonstrated any of the following:
- superior parameter efficiency
- superior compute efficiency
- frontier-class reasoning
- persistent Stiefel-constrained weights
- guaranteed orthogonality during training
- guaranteed full-rank matrices
- 193B unique tokens
- validated 32K retrieval capability
- production readiness
- a completed validated SFT model
- universal superiority of Muon over AdamW
- a novel attention mechanism in isolation
Several historical benchmark, spectral, truncation, and long-context measurements exist in the project documentation, but their raw provenance is incomplete or internally inconsistent — including per-layer tables with template-pattern digits that cannot be regenerated from shipped analysis outputs. They are intentionally excluded from the central claims of this report. That exclusion is a strength of the report, and it is stated openly rather than buried.
Open research
What OMN is still trying to answer
QUESTION 1
How much does matrix-aware optimization change learning dynamics under matched compute?
Muon and AdamW ran on different parameter populations, so no clean head-to-head comparison exists yet. A controlled experiment is future work.
QUESTION 2
What role do the learned Q/K normalization gains play during training and after convergence?
Checkpoint inspection shows large early-layer gains collapsing to small values elsewhere — an observation awaiting its intervention study.
QUESTION 3
How should long coherent context exposure be incorporated without conflating configured length with learned capability?
The ceiling is 32,768; the training distribution and evaluation at that span are separate, open design problems.
QUESTION 4
How should data exposure and exact recovery be controlled so architecture experiments are not confounded by training-state artifacts?
The repaired framework has explicit recovery semantics; exact restart equivalence on target hardware is still being qualified.
QUESTION 5
Which architectural choices survive controlled scaling into later Darwin models?
The transfer question — the entire point of keeping OMN as a research foundation rather than a finished product.
Lineage
OMN is the architecture. Darwin is the model lineage.
OMN is AETHR's research architecture and training foundation. Darwin is the foundation-model family intended to evolve from the lessons of this research. OMN experiments can inform compact Type-S models, larger Type-M models, and specialized Darwin derivatives — but the audited OMN-1 checkpoint itself is not presented as Darwin Type-S1. That mapping has not been decided, and the report does not imply it.
Figure 12 · From OMN to Darwin
Appendix
Reference identities
Audited implementation Git HEAD is 6d2eb04, with one qualifier: the working tree contained substantial modifications and new files, so HEAD alone does not uniquely identify the audited source. The current core-source fingerprint is 8d2014ae9b3a17e472b8e63092dcce70319f2f18f14b829316b6948af8fa02df. Historical checkpoint SHA-256: fd8c59f3b7452e85d583b4b3c5d49ff04ae196027c9b8944760ad574979cc728.
Primary code sources
- src/model.py
- src/config.py
- src/optimizer.py
- src/training.py
- src/scheduler.py
- src/data.py
- src/data_build.py
- src/checkpoint.py
- src/artifacts.py
- src/execution.py
Architecture & thesis sources
- OMN-Identity-and-Thesis/01-DEFINITION-AND-THESIS.md
- OMN-Identity-and-Thesis/02-TECHNICAL-ARCHITECTURE.md
- OMN-Identity-and-Thesis/07-EVIDENCE-AND-References.md
- configs/phase1_193b.yaml
Technical clarifications
Technical clarifications
1. Incorrect: “Muon optimizes all 2D tensors.”
Correct: Muon routes internal transformer matrix roles; the 2D shared vocabulary embedding remains on AdamW.
2. Incorrect: “OMN weights live on the Stiefel manifold.”
Correct: Muon applies a Newton–Schulz-style transformation to update tensors; trained weights are not persistently constrained to a Stiefel manifold.
3. Incorrect: “32K configured context means demonstrated 32K capability.”
Correct: 32,768 is the architectural position ceiling. Capability at that span requires separate evaluation.
4. Incorrect: “193B training tokens means 193B unique tokens.”
Correct: The evidence supports approximately 193B consumed input tokens.
5. Incorrect: “QK-Norm gains grow with depth.”
Correct: Direct checkpoint inspection shows very large early-layer gains (means near 25 in layers 0–1, maxima near 68) and substantially smaller values thereafter (means near 1.5–2.6). No disputed historical trend is reproduced here.
Cite this work
AETHR Research. “OMN: Architecture and Training Design.” AETHR Intelligence, 2026. https://www.aethrintelligence.in/research/omn/technical-report