A protein language model, built from scratch — on a laptop.
NaviKinase 1.0 is a 149.6M-parameter decoder-only transformer trained entirely locally on Apple Silicon via MLX — no cloud compute, no fine-tune of an existing model. It speaks the language of kinases: 2.45M UniProtKB sequences, 1.32B tokens, one enzyme superfamily.
Architecture & evaluation
| Architecture | Decoder-only transformer |
| Normalisation | Pre-norm RMSNorm |
| Position encoding | RoPE |
| Layers | 18 |
| d_model | 832 |
| Attention heads | 13 (head dim 64) |
| FFN dimension | 3,328 |
| Context length | 1,024 tokens |
| Precision | fp32 |
| Framework | MLX |
Held-out, not cherry-picked
The test set was never touched during training or checkpoint selection — validation handled that, which is why it carries a small optimistic bias. The test number is the one to cite.
| Best validation perplexity | 3.98 |
| Held-out test perplexity | 4.32 |
| Held-out test loss | 1.4633 |
Trained the full 40,289-step ceiling (2 epochs) to completion — no early stopping triggered. Val loss kept improving at every eval interval.
What it can do
NaviKinase doesn't speak English — there's no chat template, no instruction-following. It speaks amino acid sequences. Everything around it is tooling that makes that useful.
Sequence generation
Generate from scratch, condition on one of 14 EC 2.7.- sub-subclasses, or continue a real sequence you provide.
Plausibility scoring
Teacher-forced loss over a real sequence — a plausibility signal for how "kinase-like" it reads to the model.
Plain-English front end
A pattern-matching router (not an LLM) that maps natural requests onto the tools — and asks rather than guesses when it matters.
Live lookups
Real UniProt accession fetches and PubMed citation search — the only parts of this release that need internet access.
Research pipeline
"Research protein X" chains fetch → score → classify → motif scan → literature search into one synthesised report.
Motif scanning
Regex checks for canonical catalytic motifs — P-loop, HRD, DFG — as a cheap directional signal, not a benchmark.
3D structure
Real structure prediction via ESMFold — a genuinely different model, called on NaviKinase's output or any fetched sequence.
Non-synthesis notice
Every fresh generation carries an automatic notice: treat output as an unvalidated hypothesis, not a confirmed protein.
How it was built
No cluster, no cloud bill. NaviKinase was trained unattended over several days on a MacBook.
-
3.1
Data at the cluster level
UniProtKB entries with EC 2.7.-, 30–2000 residues, non-fragment — deduplicated at the UniRef90 cluster level so near-identical bacterial strain variants can't dominate training, with train/val/test split kept at the same cluster level.
-
3.2
EC-tag conditioning
Each example is packed as
<BOS> <EC-tag> residues <EOS>, conditioning generation on one of 14 EC 2.7.- sub-subclasses, or<EC_UNKNOWN>for the ~3.3% without a recognised one. -
3.3
AdamW, cosine schedule
Betas 0.9/0.95, weight decay 0.1, peak LR 3e-4, effective batch size 64 (batch 4 × grad-accum 16) over a 1,024-token context.
-
3.4
Built to survive a laptop
Automatic checkpointing, power-aware pause/resume, and crash recovery via
launchd— designed for unattended runs on constrained hardware without a dedicated server environment.
Scope, limits & responsible use
chat.py is keyword/regex pattern matching, not a language model, and says so rather than guessing on an unrecognised request.score.py --classify is an improvised proxy — the model was never trained as a classifier.Licence
Free for non-commercial use
Use, share, and adapt NaviKinase 1.0 freely for non-commercial purposes with attribution. Weights, code, and tokeniser are covered.
Building a product on this?
Any use intended to generate revenue requires prior written permission. Reach out and we'll work out terms.
jaydev.bhatt@navitratech.comTrained for a laptop. Ready for yours.
Pull the weights, run it locally with MLX, and see what a purpose-built, single-family protein model can do.