How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="User01110/CMA-20M", trust_remote_code=True)
# Load model directly
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("User01110/CMA-20M", trust_remote_code=True, device_map="auto")
Quick Links

CMA-20M

Evaluated training checkpoint from a 20.21M-parameter Channel-Mixing Attention generalist language model using the third-party BananaMind 8,192-token digit-aware byte-level BPE tokenizer. It has no place embeddings, role embeddings, or inference-time equation detection. It was recorded at step 20,000 with WikiText normalized BPB 1.2161. Its report-only Open SLM Leaderboard-style average is 36.55%.

Loading

This is a custom Transformers architecture. trust_remote_code=True is required because stock Hugging Face model classes do not implement CMA or this model's exact rotary convention.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "User01110/CMA-20M"
tokenizer = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    repo, trust_remote_code=True, dtype="auto"
)

Checkpoint tensors are stored in bfloat16. Pass dtype=torch.float32 when an FP32 runtime is required; every stored BF16 value widens exactly to FP32, though the pre-export FP32 master-weight mantissa cannot be reconstructed.

Architecture

  • Parameters: 20,212,355, with tied input/output embeddings
  • Weights: native bfloat16 safetensors (model.safetensors); no .bin weights
  • Runtime: PyTorch 2.5+ for native SDPA grouped-query attention
  • Tokenizer: BananaMind/BananaMind-2-Mini at revision 84a0afb98db902caf07a1e949676d9fef9e5cf9e
  • Vocabulary: 8,192 third-party tokens
  • Parameter allocation: 2,752,512 tied embedding parameters and 17,459,843 non-embedding parameters
  • Context: 1,024 tokens
  • Standalone prompt tokenization automatically prepends the native BOS token
  • Width/layers: 336 / 13
  • Token-attention heads: 6 query, 2 KV
  • CMA: 14 slots of 24 channels, 3 routing heads, expansion 3
  • Each token receives dense values followed by content-dependent softmax routing across channel slots
  • CMA has no scalar route gate or fallback blend; routed values pass directly through the ordinary SwiGLU activation and output projection
  • Contiguous-half RoPE without scaling
  • No task-specific model features or inference-time benchmark handling

Tokenizer provenance

The tokenizer and its 8,192-token vocabulary were not created or owned by the CMA model author. They are reused from the public BananaMind/BananaMind-2-Mini repository at the exact revision listed above, whose repository metadata identifies BananaMind as the publisher and Apache-2.0 as the license. No claim of tokenizer ownership beyond that public attribution is made here. The exported copy preserves its vocabulary, merges, normalization, and digit-aware pre-tokenization; CMA only configures the existing BOS token to be prepended automatically and sets the model context length.

Optimization

  • Training budget: 15,728,640,000 tokens over 60,000 updates
  • Effective batch: 262,144 tokens per update
  • Learning rate: 2,000-update linear warmup to 2.0e-03; hold through 15,000; linear transition to 1.0e-03 by 17,000; hold through 30,000; linear transition to 5.0e-04 by 32,000; then cosine decay
  • The final configured update is positive; update 60,001 is exactly zero
  • Official PyTorch Muon with match_rms_adamw for hidden matrices; AdamW for embeddings and remaining parameters

Training mixture

  • FineWeb-Edu 100BT shuffled: 45%
  • Ultra-FineWeb English: 20%
  • Wikipedia English: 15%
  • Cosmopedia v2: 10%
  • FineMath 4+: 10%

Ultra-FineWeb contributes quality-filtered general English web text, Wikipedia adds grounded encyclopedic material, Cosmopedia supplies synthetic textbooks and explanations, and FineMath-4+ supplies mathematical reasoning as ordinary causal-language-model text. There are no benchmark labels or benchmark-specific preprocessing. All five sources are streamed corpora with fixed shares.

Zero-shot evaluation at step 20,000

The four lm-eval tasks use normalized accuracy when supplied by lm-eval 0.4.12, with native bfloat16 weights and float32 likelihood softmax. ArithMark uses the same precision policy and its official raw continuation log-likelihood-sum rule. Autocast is not used for evaluation. Every independent benchmark context starts with the native BOS token.

Benchmark Accuracy
HellaSwag 28.88%
ARC-Easy 38.22%
ARC-Challenge 23.21%
PIQA 58.16%
ArithMark-2 28.44%
ARC mean 30.71%
Open SLM Leaderboard-style average 36.55%

The average is (HellaSwag + mean(ARC-Easy, ARC-Challenge) + PIQA + ArithMark-2) / 4, matching the Open SLM Leaderboard formula.

WikiText-103 validation at this step: loss 2.9557, perplexity 19.22, normalized BPB 1.2161 over 326,703 scored tokens and 1,145,591 normalized UTF-8 bytes, using one initial BOS, 1,024-token windows, and a 512-token stride.

Downloads last month
1,449
Safetensors
Model size
23M params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train User01110/CMA-20M