
Represent the world
Byte, character, and deterministic BPE inputs enter the same typed matrix and semantic-operation system.

Machine Learning
A GPU-first Rust system for automatic differentiation, dense and sparse models, state-space intelligence, training control, and portable model artifacts.
Learning path
The engine sees one connected act: representation, model, differentiation, optimization, evaluation, and memory. Every boundary stays explicit enough to inspect and test.

Byte, character, and deterministic BPE inputs enter the same typed matrix and semantic-operation system.

RNN, GRU, Transformer, sparse MoE, and Mamba-3 modules share parameters, autograd, loss, and metrics.

Forward, loss, backward, gradient transforms, and AdamW become explicit work owned by one oa::Engine.

.oam v3 records architecture identity, model state, optimizer progress, and Dense, Q4, or Q8 weights.
One learning system
One semantic graph carries values, differentiation, optimization, execution, and persistence. Rust owns the native work; language bindings map to that system instead of maintaining parallel learning implementations.

Sequence intelligence
RNN and GRU establish compact recurrence; dense Transformer and dropless sparse MoE express attention; grouped-state Mamba-3 SISO and shared-state MIMO carry state-space memory. Each is a different theory of sequence intelligence expressed through the same values, gradients, optimizer, metrics, generation, and checkpoint lifecycle.
Native training
Modules register parameters. The tape records semantic backward rules. The training session coordinates steps, validation, metrics, and checkpoints without taking ownership away from oa::Engine.
Train.rs
1use oa::{Engine, ml};23let engine = Engine::new()?;4let mut optimizer = ml::AdamW::new(model.all_parameters()?, 2.0e-4)?;5let mut training = ml::ItTraining::new_eager(6 &engine,7 &mut optimizer,8 ml::ItTrainingConfig { total_steps: 300, ..Default::default() },9)?;1011while training.begin_step()? {12 training.zero_grad();13 let tape = ml::GradientTape::new();14 let logits = model.forward(&batch_x)?;15 let loss = ml::loss::cross_entropy(&logits, &batch_y)?;16 tape.backward(&loss)?;17 training.complete_step(&loss)?;18}
Verified workloads
Five families, three tokenizers, and 15 complete workloads share one 300-step contract. The table uses the published OA 0.7.4 single-method Byte reference so wall time, source throughput, and learning quality remain directly comparable.
204.68K
RNN source byte/s
128.93K
Transformer source byte/s
118.79K
Sparse MoE source byte/s
30.72K
Mamba-3 source byte/s
Iris Xe TGL GT2, FP32, batch 64, sequence 16, 1,024 predicted positions per step. The v0.8.0 tree includes newer grouped Mamba-3 correctness evidence; its separately measured current-tree timing is not mixed into this historical five-family table.