Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

mojolearn-162m

by Andrew Hendel ajhendel/mojolearn-162m

mojolearn-162m is an open-weight model for text generation from Andrew Hendel, released under Apache License 2.0. It has 162M parameters and a 2,048-token context. At 16-bit it needs about 0.4 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

A 162M-parameter decoder trained twice from the same initialization on the same 2.62 billion FineWeb-Edu tokens, once along each of two different routes through NVIDIA, AMD and Apple GPUs.

Parameters162M
Context2,048
Weights648.6 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve mojolearn-162m (162M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.3 GB 0.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.2 GB 0.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.1 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 19, 2026.

mojolearn-162m on every accelerator the SAVRN Index prices, at every precision

Model Card

By Andrew Hendel, published under apache-2.0, revision 4570dbf7d1fd.

A 162M-parameter decoder trained twice from the same initialization on the same 2.62 billion FineWeb-Edu tokens, once along each of two different routes through NVIDIA, AMD and Apple GPUs. The two runs are bitwise identical at every one of the 5,000 optimizer steps: training state, summed gradients, all 64 per-shard losses and the learning rate. Their final checkpoint files have the same SHA-256. This repository distributes that one final model with the evidence from both routes. The model is GPT-3 Small-sized and trained with GPT-3 Small's hyperparameters, but its blocks are modern Llama-style blocks; see the comparison below. It is a research artifact for reproducible training, not a…

Read Andrew Hendel's full model card

MojoLearn 162M: one model, two hardware routes

A 162M-parameter decoder trained twice from the same initialization on the same 2.62 billion FineWeb-Edu tokens, once along each of two different routes through NVIDIA, AMD and Apple GPUs. The two runs are bitwise identical at every one of the 5,000 optimizer steps: training state, summed gradients, all 64 per-shard losses and the learning rate. Their final checkpoint files have the same SHA-256. This repository distributes that one final model with the evidence from both routes.

The model is GPT-3 Small-sized and trained with GPT-3 Small's hyperparameters, but its blocks are modern Llama-style blocks; see the comparison below. It is a research artifact for reproducible training, not a production language model.

Compared with GPT-3 Small

GPT-3 Small (Brown et al., 2020) This model
Layers / width / heads × head dim 12 / 768 / 12 × 64 same
Context 2,048 same
Batch 0.5M tokens 524,288 tokens (64 shards × 4 × 2,048)
Peak learning rate 6.0e-4 same
Optimizer Adam β=(0.9, 0.95), weight decay 0.1 AdamW, same β and decay, eps 1e-8
Schedule warmup, cosine decay to 10% 250-step warmup, cosine to 10%
Positions learned table rotary (θ = 10,000)
Norm LayerNorm RMSNorm (eps 1e-6), pre-norm, no final norm
MLP GELU, 3,072 wide SwiGLU, 2,048 wide (same parameter count)
Biases yes none
Input / output embeddings tied untied
Parameters 125M 162,147,840 (the extra 38.6M are the untied input table)
Tokenizer GPT-2 BPE MojoLearn BPE, 50,257 ids, trained on FineWeb-Edu
Training data 300B tokens, GPT-3 mix 2.62B tokens, FineWeb-Edu
Arithmetic mixed precision FP32 throughout

Per token, the matrix-multiply work is the same as GPT-3 Small's: SwiGLU's three 768 × 2,048 matrices hold exactly as many weights as GELU's two 768 × 3,072 ones, attention is identical, and both models multiply by a 50,257 × 768 output matrix. The untied input table is a lookup with no arithmetic, but it adds 38.6M parameters to every optimizer update and to every checkpoint whose bits must agree.

The token budget is Chinchilla-scale: about 21 tokens per parameter of a 125M-parameter GPT-3 Small, or about 16 per parameter of this 162M model. It is about 1/114 of GPT-3 Small's 300B tokens, so this model is not expected to match GPT-3 Small's quality, and the comparison below is for orientation only.

Results

All results are from the single distributed checkpoint (step 5,000).

Evaluation Result
Held-out FineWeb-Edu loss 3.265 nats/token (perplexity 26.2)
Held-out bits per UTF-8 byte 0.976
HellaSwag, 0-shot, validation (10,042) acc 28.0%, acc_norm 29.6%
Final training loss (step 5,000, mean of 64 shards) 3.140 nats/token
  • Held-out loss is computed by MojoLearn's own CPU forward pass (LanguageModelInference.loss) on 128 windows of 2,049 tokens (262,144 scored tokens), one every 721,773 tokens from the start of the corpus's held-out shard (FineWeb-Edu sample-10BT file 013_00000.parquet, token range 2,926,502,182–3,110,556,447, which no training step read); the windows span its first half, tokens 2,926,502,182–3,018,169,402. Bits per byte divide the summed loss by the UTF-8 length of the scored tokens and do not depend on the tokenizer. tools/fetch_heldout.py (which reads the token stream from the project's R2 store; it is not public) and tools/heldout_loss.py reproduce it; details in results/heldout-loss.json.
  • HellaSwag uses the EleutherAI lm-evaluation-harness formulation (acc_norm normalizes by the choice's UTF-8 length) through reference_torch.py. GPT-3 Small reported 33.7% zero-shot after 300B tokens. Details: results/hellaswag.json.
  • Training loss comes from the chain records both routes share. It is not a held-out metric.
  • Generations (greedy, 48 new tokens, MojoLearn CPU forward pass) are in results/generations.json. They are fluent and on topic, repeat themselves as greedy decoding at this scale does, and state facts unreliably. For example:

Photosynthesis is the process by which plants convert sunlight into energy. The process of photosynthesis is the process by which plants convert sunlight into energy. …

Using the model

With MojoLearn (the training library)

pip install mojolearn tokenizers numpy
import numpy as np
from tokenizers import Tokenizer
from mojolearn import ByteLanguageModelConfig, LanguageModelInference
from mojolearn import _byte_lm_checkpoint as ck

state = ck.load("checkpoint.blm")            # verifies every array digest
shape = ByteLanguageModelConfig(**{**state["model_shape"], "batch": 1, "length": 128})
model = LanguageModelInference(state["parameters"], shape=shape)
tok = Tokenizer.from_file("tokenizer.json")

ids = tok.encode("The water cycle describes how water").ids
for _ in range(24):
    ids.append(int(model.next_bytes(np.array([ids[-128:]], dtype=np.int32))[0]))
print(tok.decode(ids))

LanguageModelInference runs MojoLearn's FP32 forward pass on the CPU, with logits, loss and greedy next_bytes. It was tested with mojolearn 0.8.35 from PyPI on macOS arm64 (tools/generate_mojolearn.py, results/generations.json). LanguageModelTrainer.from_checkpoint_binary("checkpoint.blm") restores the full training state, AdamW moments included, for continued training (not exercised in this package).

Anywhere else: safetensors + PyTorch

model.safetensors holds the same weights as checkpoint.blm's parameter array, byte for byte (tools/export_safetensors.py writes and checks it), under MojoLearn's tensor names. Linear weights are stored [out_features, in_features]. reference_torch.py is a plain PyTorch implementation of the forward pass:

pip install torch safetensors tokenizers
python3 reference_torch.py "The water cycle describes how water" --tokens 40

On held-out tokens its logits agree with MojoLearn's to within 3.8e-05 (largest absolute difference) and it picks the same greedy token at every position checked (tools/compare_reference.py, results/reference-agreement.json). It is a convenience, not part of the bitwise claim: PyTorch sums in its own order.

The weights do not load into Transformers' LlamaForCausalLM unchanged, because this model has no final norm before the output head.

Tokenizer

tokenizer.json is a Hugging Face tokenizers file (byte-level BPE with GPT-2's pre-tokenizer pattern). Its vocabulary is identical to ranks.tsv, the file whose SHA-256 the training recipe pins. Do not substitute the GPT-2 or GPT-3 tokenizer. Training documents were concatenated without <|endoftext|> separators, so the model never learned to emit id 50,256 and will not stop on its own.

Training

Initialization NumPy default_rng(93261), N(0, 0.02); norm weights 1 + N(0, 0.02). Both routes start from the same step-0 file (SHA-256 2b03554d…)
Steps 5,000 per route
Tokens 524,288 per step; 2,621,440,000 per route
Gradient 64 logical shards, each a mean over 4 × 2,048 tokens; shard gradients summed in a fixed order
Optimizer AdamW, β = (0.9, 0.95), eps 1e-8, weight decay 0.1, no gradient clipping
Learning rate 250-step linear warmup to 6e-4, cosine decay to 6e-5; an exact FP32 table of all 5,000 values is in the recipe
Arithmetic FP32 everywhere; MojoLearn IDENTICAL mode
Data FineWeb-Edu sample-10BT files 000–003 for training (2,926,502,182 tokens); file 013 held out

The complete recipe is supplement/gpt3-six-segment-2026-09-28/recipe.json.

Two routes, one checkpoint

Steps Route A Route B
1–1,000 2 × NVIDIA H100 1 × AMD MI325X
1,001–2,000 2 × NVIDIA H100 2 × AMD MI300X
2,001–2,400 H100 + MI325X jointly, in separate machines 1 × NVIDIA H100
2,401–3,900 2 × AMD MI300X 2 × NVIDIA H100
3,901–4,900 2 × NVIDIA H100 2 × AMD MI300X
4,901–5,000 Apple M3 Ultra NVIDIA L40S

Each route continues from its own checkpoints. The segments also ran different MojoLearn releases: route A used 0.8.15, 0.8.15, 0.8.17, 0.8.18, 0.8.19 and 0.8.24; route B used 0.8.18 and then 0.8.22. The bits still agree at every step. All 56 common saved checkpoints match. The final checkpoint SHA-256, recorded by both routes and re-hashed from both stored copies before packaging, is:

4129921e99ed404db1ca4b7b94ebc43c0bee18e7711deb326b31ec89e0b402c8

checkpoint.blm is that original file: parameters, both AdamW moment arrays, initialization flags and the training metadata (format in ARTIFACTS.md).

Verifying

python3 tools/verify_release.py        # Python 3.11+; file hashes, checkpoint header and array digests
python3 tools/check_gpt3_evidence.py   # both routes' training records

Neither needs a GPU or a network connection. The evidence checker confirms that the retained records are complete and agree; it does not recompute training. Its exact scope is in the supplement README. Matching bits establish reproducibility, not model quality; the quality results are reported separately above.

Limitations

  • A small research model trained on 2.6B tokens: it is not instruction tuned, it hallucinates, repeats itself under greedy decoding and does not stop on its own.
  • English educational web text only (FineWeb-Edu); it inherits that corpus's biases.
  • The MojoLearn forward pass used here runs on the CPU in FP32 and is slow; it is a reference path, not a serving stack.

License, data and citation

The weights, tokenizer and code in this repository are released under the Apache License 2.0, the license of MojoLearn. The training data is FineWeb-Edu (HuggingFaceFW/fineweb-edu), released under ODC-By 1.0; its terms and the terms of the underlying Common Crawl data apply to the data, not to this repository's files.

Source: github.com/mojolearn/mojolearn, where this model card, its tools and evidence live in release/gpt3-small-162m/. Cite MojoLearn with its concept DOI 10.5281/zenodo.22068632.

Configuration

Context length (tokens)
2,048
Head dimension
64
Vocabulary size
50,257
RoPE base
10000

Identity and Version

Repository
ajhendel/mojolearn-162m
Publisher
Andrew Hendel
Task
Text generation
Modality
Text
Library
mojolearn
Parameters
162M parameters
Languages
en
Revision
4570dbf7d1fd39d0f3948316c5d97381874980af
First published
2026-10-09
Last updated
2026-10-09

Files and Weights

137 files, 2.6 GB in total. The weights are 1 file totalling 648.6 MB in safetensors.

Weights1 file · 648.6 MB
Configuration61 files · 288.1 KB
Tokenizer1 file · 2.0 MB
Documentation3 files · 18.1 KB
Other70 files · 2.0 GB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights648.6 MB fda4538a5b5f
architecture.jsonConfiguration7.7 KB —
checkpoint-header.jsonConfiguration11.1 KB —
config.jsonConfiguration1.0 KB —
files.sha256.jsonConfiguration17.2 KB —
provenance.jsonConfiguration1.4 KB —
reference_torch.pyConfiguration3.8 KB —
results/generations.jsonConfiguration5.7 KB —
results/gpt3-six-segment-2026-09-28.jsonConfiguration7.9 KB —
results/heldout-loss.jsonConfiguration3.4 KB —
results/hellaswag.jsonConfiguration311 B —
results/payload-verification.jsonConfiguration1.0 KB —
results/reference-agreement.jsonConfiguration225 B —
supplement/gpt3-six-segment-2026-09-28/A-1/receipt.jsonConfiguration3.2 KB —
supplement/gpt3-six-segment-2026-09-28/A-2/arrival.jsonConfiguration979 B —
supplement/gpt3-six-segment-2026-09-28/A-2/receipt.jsonConfiguration3.3 KB —
supplement/gpt3-six-segment-2026-09-28/A-3/arrival.jsonConfiguration904 B —
supplement/gpt3-six-segment-2026-09-28/A-3/receipt.jsonConfiguration1.9 KB —
supplement/gpt3-six-segment-2026-09-28/A-3/worker.jsonConfiguration1.1 KB —
supplement/gpt3-six-segment-2026-09-28/A-4/initial-checkpoint-refs.jsonConfiguration831 B —
supplement/gpt3-six-segment-2026-09-28/A-4/receipt.jsonConfiguration1.8 KB —
supplement/gpt3-six-segment-2026-09-28/A-5/arrival.jsonConfiguration981 B —
supplement/gpt3-six-segment-2026-09-28/A-5/receipt.jsonConfiguration3.3 KB —
supplement/gpt3-six-segment-2026-09-28/A-6/arrival.jsonConfiguration806 B —
supplement/gpt3-six-segment-2026-09-28/A-6/receipt.jsonConfiguration1.2 KB —
supplement/gpt3-six-segment-2026-09-28/B-1/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-1/receipt.jsonConfiguration3.3 KB —
supplement/gpt3-six-segment-2026-09-28/B-2/arrival.jsonConfiguration1.2 KB —
supplement/gpt3-six-segment-2026-09-28/B-2/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-2/receipt.jsonConfiguration3.5 KB —
supplement/gpt3-six-segment-2026-09-28/B-3/arrival.jsonConfiguration904 B —
supplement/gpt3-six-segment-2026-09-28/B-3/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-3/receipt.jsonConfiguration1.9 KB —
supplement/gpt3-six-segment-2026-09-28/B-4/arrival.jsonConfiguration981 B —
supplement/gpt3-six-segment-2026-09-28/B-4/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-4/receipt.jsonConfiguration4.3 KB —
supplement/gpt3-six-segment-2026-09-28/B-5/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-5/initial-checkpoint-refs.jsonConfiguration601 B —
supplement/gpt3-six-segment-2026-09-28/B-5/receipt.jsonConfiguration3.1 KB —
supplement/gpt3-six-segment-2026-09-28/B-6/arrival.jsonConfiguration894 B —
supplement/gpt3-six-segment-2026-09-28/B-6/checkpoint-source.jsonConfiguration228 B —
supplement/gpt3-six-segment-2026-09-28/B-6/receipt.jsonConfiguration1.3 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/positive/receipt.jsonConfiguration922 B —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/split/receipt.jsonConfiguration1.7 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/ulp/receipt.jsonConfiguration2.7 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-amd-0.8.19/positive/receipt.jsonConfiguration1.2 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-amd-0.8.19/ulp/receipt.jsonConfiguration3.0 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/k63/receipt.jsonConfiguration5.2 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/swap-0-1/receipt.jsonConfiguration4.8 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/swap-5-40/receipt.jsonConfiguration5.2 KB —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/zero-moments/receipt.jsonConfiguration2.0 KB —
supplement/gpt3-six-segment-2026-09-28/index.jsonConfiguration18.1 KB —
supplement/gpt3-six-segment-2026-09-28/manifest.jsonConfiguration34.4 KB —
supplement/gpt3-six-segment-2026-09-28/recipe.jsonConfiguration76.3 KB —
tools/check_gpt3_evidence.pyConfiguration11.9 KB —
tools/compare_reference.pyConfiguration2.0 KB —
tools/eval_hellaswag.pyConfiguration3.1 KB —
tools/export_safetensors.pyConfiguration2.8 KB —
tools/fetch_heldout.pyConfiguration1.5 KB —
tools/generate_mojolearn.pyConfiguration2.0 KB —
tools/heldout_loss.pyConfiguration1.8 KB —
tools/verify_release.pyConfiguration2.9 KB —
ARTIFACTS.mdDocumentation2.4 KB —
README.mdDocumentation10.7 KB —
supplement/gpt3-six-segment-2026-09-28/README.mdDocumentation4.9 KB —
checkpoint.blmOther1.9 GB 4129921e99ed
ranks.tsvOther1.0 MB —
supplement/gpt3-six-segment-2026-09-28/A-1/binding.txtOther264 B —
supplement/gpt3-six-segment-2026-09-28/A-1/chain.jsonl.gzOther404.1 KB 6c315f43b8cd
supplement/gpt3-six-segment-2026-09-28/A-1/gpu.txtOther174 B —
supplement/gpt3-six-segment-2026-09-28/A-1/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/A-2/arrival.jsonl.gzOther1.0 KB f4761ba6ce84
supplement/gpt3-six-segment-2026-09-28/A-2/binding.txtOther264 B —
supplement/gpt3-six-segment-2026-09-28/A-2/chain.jsonl.gzOther410.9 KB 23500aa2966b
supplement/gpt3-six-segment-2026-09-28/A-2/gpu.txtOther174 B —
supplement/gpt3-six-segment-2026-09-28/A-2/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/A-3/arrival.jsonl.gzOther1.0 KB e00d76fee02e
supplement/gpt3-six-segment-2026-09-28/A-3/binding.txtOther403 B —
supplement/gpt3-six-segment-2026-09-28/A-3/chain.jsonl.gzOther201.5 KB b60567db1eee
supplement/gpt3-six-segment-2026-09-28/A-3/gpu.txtOther87 B —
supplement/gpt3-six-segment-2026-09-28/A-3/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/A-3/worker.jsonl.gzOther201.2 KB a79d1fa8fbba
supplement/gpt3-six-segment-2026-09-28/A-4/attempt-1.jsonl.gzOther545.9 KB dc3c4d9beda1
supplement/gpt3-six-segment-2026-09-28/A-4/binding.txtOther122 B —
supplement/gpt3-six-segment-2026-09-28/A-4/chain.jsonl.gzOther83.1 KB 63747bd08b44
supplement/gpt3-six-segment-2026-09-28/A-4/gpu.txtOther1.3 KB —
supplement/gpt3-six-segment-2026-09-28/A-4/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/A-5/arrival.jsonl.gzOther1.0 KB bd3d6100c33e
supplement/gpt3-six-segment-2026-09-28/A-5/binding.txtOther264 B —
supplement/gpt3-six-segment-2026-09-28/A-5/chain.jsonl.gzOther413.0 KB fc8a7e1a786b
supplement/gpt3-six-segment-2026-09-28/A-5/gpu.txtOther174 B —
supplement/gpt3-six-segment-2026-09-28/A-5/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/A-6/arrival.jsonl.gzOther1.0 KB ed8dbbb29c4e
supplement/gpt3-six-segment-2026-09-28/A-6/binding.txtOther140 B —
supplement/gpt3-six-segment-2026-09-28/A-6/chain.jsonl.gzOther41.7 KB c26585b1282b
supplement/gpt3-six-segment-2026-09-28/A-6/gpu.txtOther33 B —
supplement/gpt3-six-segment-2026-09-28/A-6/wheel.sha256Other290 B —
supplement/gpt3-six-segment-2026-09-28/B-1/binding.txtOther122 B —
supplement/gpt3-six-segment-2026-09-28/B-1/chain.jsonl.gzOther403.6 KB 78e5cfe63d06
supplement/gpt3-six-segment-2026-09-28/B-1/gpu.txtOther902 B —
supplement/gpt3-six-segment-2026-09-28/B-1/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/B-2/arrival.jsonl.gzOther1.0 KB c5bf26f30e80
supplement/gpt3-six-segment-2026-09-28/B-2/binding.txtOther122 B —
supplement/gpt3-six-segment-2026-09-28/B-2/chain.jsonl.gzOther409.4 KB e23e4fce12f5
supplement/gpt3-six-segment-2026-09-28/B-2/gpu.txtOther1.3 KB —
supplement/gpt3-six-segment-2026-09-28/B-2/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/B-3/arrival.jsonl.gzOther1.0 KB 85d76b5df59a
supplement/gpt3-six-segment-2026-09-28/B-3/binding.txtOther264 B —
supplement/gpt3-six-segment-2026-09-28/B-3/chain.jsonl.gzOther165.1 KB a05048a23795
supplement/gpt3-six-segment-2026-09-28/B-3/gpu.txtOther87 B —
supplement/gpt3-six-segment-2026-09-28/B-3/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/B-4/arrival.jsonl.gzOther1.0 KB 7f1987f0e0f8
supplement/gpt3-six-segment-2026-09-28/B-4/binding.txtOther263 B —
supplement/gpt3-six-segment-2026-09-28/B-4/chain.jsonl.gzOther617.2 KB c08a86fcc0aa
supplement/gpt3-six-segment-2026-09-28/B-4/gpu.txtOther174 B —
supplement/gpt3-six-segment-2026-09-28/B-4/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/B-5/attempt-1.jsonl.gzOther83.0 KB f3f38866984a
supplement/gpt3-six-segment-2026-09-28/B-5/binding.txtOther122 B —
supplement/gpt3-six-segment-2026-09-28/B-5/chain.jsonl.gzOther329.6 KB 8181184f10b1
supplement/gpt3-six-segment-2026-09-28/B-5/gpu.txtOther1.3 KB —
supplement/gpt3-six-segment-2026-09-28/B-5/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/B-6/arrival.jsonl.gzOther1.0 KB f32e1f8564b3
supplement/gpt3-six-segment-2026-09-28/B-6/binding.txtOther264 B —
supplement/gpt3-six-segment-2026-09-28/B-6/chain.jsonl.gzOther41.8 KB 411ce1a6cb20
supplement/gpt3-six-segment-2026-09-28/B-6/gpu.txtOther77 B —
supplement/gpt3-six-segment-2026-09-28/B-6/wheel.sha256Other133 B —
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/positive/chain.jsonl.gzOther1.0 KB 178054bbe2cf
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/split/chain.jsonl.gzOther1.0 KB 7c97920f0ba6
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-0.8.19/ulp/chain.jsonl.gzOther604 B 5f3467720ee1
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-amd-0.8.19/positive/chain.jsonl.gzOther1.0 KB 44934e206d26
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls-amd-0.8.19/ulp/chain.jsonl.gzOther601 B 28cb6ab35a44
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/k63/chain.jsonl.gzOther715 B dfa566822f35
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/swap-0-1/chain.jsonl.gzOther728 B 59608b291b43
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/swap-5-40/chain.jsonl.gzOther728 B 62a64a3275d9
supplement/gpt3-six-segment-2026-09-28/controls/t3-controls/zero-moments/chain.jsonl.gzOther602 B fbf16be033e8
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer2.0 MB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
648.6 MB
Download from Andrew Hendel

Released by Andrew Hendel through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published648.6 MB
16-bit0.3 GB
8-bit0.2 GB
4-bit0.1 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About mojolearn-162m

How much GPU memory does mojolearn-162m need?

About 0.4 GB at 16-bit and 0.1 GB at 4-bit: the weights (162M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run mojolearn-162m on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use mojolearn-162m commercially?

Yes. mojolearn-162m is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is mojolearn-162m's context length?

2,048 tokens, from the maximum position embeddings in its published configuration.

Similar Models

This model is a fine-tuned version of qing-yao/ppt-pythia-160m-uniform250-previousmse-seed324-stage1 on the None dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 0.001 - trainbatchsize: 16 - evalbatchsize: 16 - gradientaccumulationsteps: 2 - totaltrainbatchsize: 32 - lrschedulertype: cosinewithminlr - lrschedulerwarmupsteps: 500 - trainingsteps: 10000 - Transformers 5.4.0 - Pytorch 2.8.0+cu128 - Datasets 3.2.0 - Tokenizers 0.22.1

Open weights apache-2.0 162M parameters 2,048 tokens transformers

This model is a fine-tuned version of qing-yao/ppt-pythia-160m-uniform250-previousmse-seed324-stage1 on the None dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 0.001 - trainbatchsize: 16 - evalbatchsize: 16 - gradientaccumulationsteps: 2 - totaltrainbatchsize: 32 - lrschedulertype: cosinewithminlr - lrschedulerwarmupsteps: 500 - trainingsteps: 10000 - Transformers 5.4.0 - Pytorch 2.8.0+cu128 - Datasets 3.2.0 - Tokenizers 0.22.1

Open weights apache-2.0 162M parameters 2,048 tokens transformers

Model · Text generation

astrallm

Pihu Pandey

AstralLM is a compact, efficient causal language model built for Hugging Face Transformers. It features a clean decoder-only transformer architecture with Grouped Query Attention (GQA), SwiGLU feed-forward networks, RoPE positional embeddings, and per-head QK-norm — delivering strong performance at a small parameter count (~138M). AstralLM is a decoder-only transformer with the following design choices: The model uses 8 query heads and 4 key/value heads (2:1 ratio), halving the KV cache memory footprint during inference without measurable quality degradation. Each head operates over a head dimension of 80. Per-head RMSNorm is applied to both query and key projections before the rotary…

Open weights apache-2.0 160M parameters 3,072 tokens transformers

Model · Text generation

Ru-Small-Instruct

LongTime

Ru-Small-Instruct — экспериментальная компактная русскоязычная языковая модель класса SLM (Small Language Model) с объемом параметров ~0.2B (~165M). Разработана с упором на суверенность весов (Zero-Fingerprint): модель обучена с нуля без заимствования базовых чекпоинтов у сторонних корпоративных сетей (Llama 3 от Meta, Qwen от Alibaba, Mistral). Модель предназначена для исследований локального инференса, работы на маломощном оборудовании, CPU и мобильных чипах, где критичны нулевая задержка (Time-To-First-Token) и полная независимость весов. Для компактной модели в 165M параметров, обученной на одном домашнем GPU за 48 часов, способность держать роль, грамотно формулировать сложные термины…

Open weights mit 165M parameters 512 tokens transformers

Model · Text generation

slm-125m-dpo

Tijani Ohiokpehai

tohio/slm-125m-dpo is a small language model (125M parameters) built from scratch and aligned end-to-end using the slm-gpt engine. - Decoder-Only Transformer with Rotary Position Embeddings (RoPE) The base model was pre-trained across an interleaved multi-source domain mixture composed of: - FineWeb-Edu - DCLM-Edu - The Stack-Edu - NuminaMath-CoT - OpenMathReasoning - SLM-Synthetic-Pretrain 1. Pre-training: Multi-GPU Distributed Data Parallel (DDP) over rank-disjoint memory-mapped token shards. 2. Supervised Fine-Tuning (SFT): Full parameter instruction-tuning on ChatML formatted dialogues with prompt loss masking (ignoreindex=-100). 3. Direct Preference Optimization (DPO): Single-stage…

Open weights mit 165M parameters 1,024 tokens transformers

Model · Text generation

slm-125m-sft

Tijani Ohiokpehai

tohio/slm-125m-sft is a small language model (125M parameters) built from scratch and aligned end-to-end using the slm-gpt engine. - Decoder-Only Transformer with Rotary Position Embeddings (RoPE) The base model was pre-trained across an interleaved multi-source domain mixture composed of: - FineWeb-Edu - DCLM-Edu - The Stack-Edu - NuminaMath-CoT - OpenMathReasoning - SLM-Synthetic-Pretrain 1. Pre-training: Multi-GPU Distributed Data Parallel (DDP) over rank-disjoint memory-mapped token shards. 2. Supervised Fine-Tuning (SFT): Full parameter instruction-tuning on ChatML formatted dialogues with prompt loss masking (ignoreindex=-100). 3. Direct Preference Optimization (DPO): Single-stage…

Open weights mit 165M parameters 1,024 tokens transformers