ermine-olmoe is an open-weight model from Chen-Hao Chao, released under Apache License 2.0. Its published files total 79.5 GB.
This repository hosts intermediate training checkpoints (step 170,000) for two ~1B-active-parameter masked diffusion language models (MDMs) built on an OLMoE-style Mixture-of-Experts transformer backbone.
Model Card
By Chen-Hao Chao, published under apache-2.0, revision 9332cc9a37ef.
This repository hosts intermediate training checkpoints (step 170,000) for two ~1B-active-parameter masked diffusion language models (MDMs) built on an OLMoE-style Mixture-of-Experts transformer backbone. The two checkpoints share the same architecture and data but differ in the schedule used to sample the diffusion timestep t during training. Code: https://github.com/chen-hao-chao/olmoe-mdm (fork of AI2's OLMo) Monte-Carlo ELBO objective rather than next-token autoregression. The model has bidirectional attention (bidirectional: true) and is trained to denoise randomly masked token subsets. position embeddings, RMSNorm, and SwiGLU activations. - dmodel: 2240 - nlayers: 18 - nheads: 35…
Read Chen-Hao Chao's full model card
ERMINE-OLMoE: 1B-active MoE Masked Diffusion Language Models
This repository hosts intermediate training checkpoints (step 170,000) for two ~1B-active-parameter
masked diffusion language models (MDMs) built on an OLMoE-style Mixture-of-Experts transformer
backbone. The two checkpoints share the same architecture and data but differ in the schedule used
to sample the diffusion timestep t during training.
| File | Run | Diffusion-time (t) sampling |
|---|---|---|
olmoe-mdm-1b-step170000.tar |
mdm-1b-rl-2048 |
uniform over t |
olmoe-mdm-1b-ermine-step170000.tar |
mdm-1b-rl-ermine-2048 |
ERMINE: curriculum / GPU-allocation-driven, non-uniform t sampling (see mdm.gpu_allocation_path, mdm.remove_factor: true in the training config) |
Code: https://github.com/chen-hao-chao/olmoe-mdm (fork of AI2's OLMo)
Model description
- Objective: masked (absorbing-state) discrete diffusion language modeling, trained with a
Monte-Carlo ELBO objective rather than next-token autoregression. The model has bidirectional
attention (
bidirectional: true) and is trained to denoise randomly masked token subsets. - Backbone: OLMo-style transformer with Mixture-of-Experts FFN blocks (OLMoE-style), RoPE position embeddings, RMSNorm, and SwiGLU activations.
- Architecture:
d_model: 2240n_layers: 18n_heads: 35- MoE: 8 experts, top-2 routing per token (dropless, grouped-GEMM MLP impl)
- MLP hidden size (per expert): 2816
- Context length: 2048 tokens
- Vocab size: 50,280 (+ 1 reserved
[MASK]token at id 50280; embedding table padded to 50,304) - ~1.3B active parameters / ~3.3B total parameters (approximate, dense-equivalent — MoE total includes all 8 experts' weights, active counts top-2)
- Tokenizer: AI2's GPT-NeoX-based Dolma v1.5 tokenizer (
allenai_gpt-neox-olmo-dolma-v1_5).
Training
- Data: tokenized shards of AI2's
olmoe-mix-0924pretraining mix (the same mix used for AI2's official OLMoE-1B-7B-0924 model), packed to 2048-token sequences. - Optimizer: AdamW, lr
4e-4, weight decay0.1, betas(0.9, 0.95), cosine schedule with 1,000-step warmup, bf16 mixed precision, FSDP full-shard. - Batch size: global batch size 512 sequences × 2048 tokens ≈ 1.05M tokens/step.
- Checkpoint step: 170,000 / 520,000 planned total steps (~33% through training), corresponding to roughly 178B tokens seen (of a ~545B-token full run).
- Both runs use identical hyperparameters except for the diffusion-time sampling schedule noted
above (
mdm.gpu_allocation_path,mdm.remove_factor); seeconfigs/MDM-1B-rl.ymlandconfigs/MDM-1B-rl-ermine.ymlfor the exact configs used.
Checkpoint format
Each .tar archive contains a raw PyTorch Distributed Checkpoint (DCP) directory
(step170000/), i.e. a set of __<rank>_<shard>.distcp shard files plus a .metadata index — the
native sharded-checkpoint format saved by this codebase's FSDP trainer (sharded_checkpointer:
olmo_core). This is not a Hugging Face transformers-ready checkpoint and cannot be loaded
with from_pretrained.
To use it:
- Clone https://github.com/chen-hao-chao/olmoe-mdm and install its requirements.
- Download and extract the
.tarinto a directory, e.g.:bash hf download chen-hao-chao/ermine-olmoe olmoe-mdm-1b-ermine-step170000.tar --local-dir . tar -xf olmoe-mdm-1b-ermine-step170000.tar - Reconstruct a full (unsharded) state dict with the repo's checkpoint utilities, e.g.
scripts/unshard.py, pointing at the extractedstep170000/directory (which also contains the trainingconfig.yamlneeded to rebuild the model). - For zero-shot downstream evaluation (SciQ, PIQA, Social IQa, HellaSwag, ARC-Easy, ARC-Challenge)
with the same MC-ELBO scoring used during training, see
eval_mdm_downstream.py.
Note: the MoE blocks use a grouped_gemm kernel build that must include your GPU's SM
architecture (see the repo's Dockerfile) — it will error ("Grouped GEMM execution not possible with
HW") on unsupported GPUs.
Intended use
These are research checkpoints from an in-progress training run, released for reproducibility and analysis of masked diffusion language model training dynamics (in particular, the effect of non-uniform diffusion-time sampling). They are not instruction-tuned or safety-aligned, and are not intended for production or end-user-facing applications.
License
Apache 2.0 (inherited from the AI2 OLMo codebase this project is built on).
Identity and Version
- Repository
- chen-hao-chao/ermine-olmoe
- Publisher
- Chen-Hao Chao
- Task
- Not stated by the source
- Modality
- Other
- Library
- Not stated by the source
- Parameters
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- 9332cc9a37ef8ce3a1a61b5da21f70d607243430
- First published
- 2026-10-01
- Last updated
- 2026-10-02
Files and Weights
4 files, 79.5 GB in total.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| README.md | Documentation | 5.1 KB | — |
| olmoe-mdm-1b-ermine-step170000.tar | Other | 39.8 GB | 6f2ea6e98700 |
| olmoe-mdm-1b-step170000.tar | Other | 39.8 GB | 1f26845e8ce5 |
| .gitattributes | Repository | 1.5 KB | — |
License and Download
- License
- apache-2.0
- Access
- Open weights, no gate
Released by Chen-Hao Chao through its official repository on Hugging Face. Read the license.
Questions About ermine-olmoe
Can I use ermine-olmoe commercially?
Yes. ermine-olmoe 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.