SAVRN
Search Contact SAVRN

Open-weight model · Text generation

MoA-100M

by Convergent Intelligence reaperdoesntknow/MoA-100M

A geometry‑aware Transformer that mixes several attention mechanisms and routes them with a metric‑based router.

Parameters
Context1,024
Weights1.0 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads3.3k

Model Card

By Convergent Intelligence, published under apache-2.0, revision 20b97d2ed798.

A geometry‑aware Transformer that mixes several attention mechanisms and routes them with a metric‑based router. MoA replaces the classic dot‑product attention with metric‑based attention and blends four distinct heads per Transformer block: A token‑wise router decides, for each token, which head(s) to use and applies feature‑gates (FiLM‑style) and router‑bias gates for up/down‑scaling. The FFN is a HyperFFN – three parallel branches (SwiGLU MLP, separable‑conv, low‑rank) combined by a branch router. LayerScale and optional DropPath keep training stable. Triangle‑inequality (TI) penalty on sampled triples to encourage true‑metric behaviour. Ball pruning – each head learns an origin \(oh\)…

Read Convergent Intelligence's full model card

MoAMetricLM‑100M — Mixture of Attentions (MoA)

A geometry‑aware Transformer that mixes several attention mechanisms and routes them with a metric‑based router.
- Parameters: ~185 M (≈ 100 M effective due to the mixture)
- Task: Causal language modeling (decoder‑only)
- Library: Transformers
- KV cache: Not yet implemented (generation recomputes the full context at every step)


Model card

Model ID reaperdoesntknow/MoA-100M
Architecture moa_metric (custom)
Tokenizer GPT‑2 (gpt2) – pad_token set to eos_token
Context length 2048 tokens
Training data 2 × ≈ 256 k tokens from the datasets listed above
Training compute CPU‑only (Intel), FP32
Training hyper‑parameters LR = 5e‑4 (AdamW), batch = 4, seq ≤ 512, 500 k total tokens
Final loss ≈ 0.30 (train)
License Apache‑2.0
Safety No alignment or safety fine‑tuning – outputs may be biased or inaccurate.
Intended use Research on geometry‑aware attention, structured sparsity, and mixture‑of‑attention models.
Limitations • No KV‑cache → slower generation.
• Small token budget → not a general‑purpose LM.
• No safety/alignment training.
Out‑of‑scope High‑stakes applications (medical, legal, etc.) without further evaluation.

Overview

MoA replaces the classic dot‑product attention with metric‑based attention and blends four distinct heads per Transformer block:

Head type Description
LocalConvHead Depthwise‑separable 1‑D convolution → captures short‑range context.
Metric Multi‑Head Attention (MetricMHAttention) Soft‑min over L2 / cosine / diagonal‑Mahalanobis distances:
(\displaystyle \text{attn}_{h}(i,j) \propto \exp!\big(-\alpha_h|q_i-k_j|^2\big))
Metric MQA Multi‑Query attention (shared K/V) in the same metric space – cheaper than full MHA.
ChannelMixHead Per‑token MLP that mixes channel dimensions (no positional mixing).

A token‑wise router decides, for each token, which head(s) to use and applies feature‑gates (FiLM‑style) and router‑bias gates for up/down‑scaling.

The FFN is a HyperFFN – three parallel branches (SwiGLU MLP, separable‑conv, low‑rank) combined by a branch router. LayerScale and optional DropPath keep training stable.

Regularisation (optional)

  • Triangle‑inequality (TI) penalty on sampled triples to encourage true‑metric behaviour.
  • Ball pruning – each head learns an origin (o_h) and radius (r_h); keys outside the ball are masked, giving structured sparsity.

Architecture diagram (high‑level)

Input → Embedding → (PreNorm) → Block₁ → … → Blockₙ → LM‑Head → Output
                     │
                     ├─ LocalConvHead
                     ├─ MetricMHAttention
                     ├─ MetricMQA
                     └─ ChannelMixHead
                     (router decides per‑token)

Each Block also contains:
  → HyperFFN (SwiGLU | Conv | Low‑rank)  ← branch router
  → LayerScale + DropPath

Configuration (example)

{
  "model_type": "moa_metric",
  "vocab_size": 50257,
  "dim": 768,
  "num_layers": 12,
  "attn_heads": 8,
  "mqa_q_heads": 8,
  "mixer_hidden": 3072,
  "ffn_hidden": 3072,
  "metric": "l2",                     // "l2" | "cosine" | "maha_diag"
  "alpha_init": 1.0,
  "learn_alpha": true,
  "use_balls": true,
  "radius_init": 3.0,
  "learn_radius": true,
  "origin_init_scale": 0.0,
  "maha_init": 1.0,
  "ti_reg_weight": 0.0,
  "ti_reg_samples": 0,
  "router_hidden": 128,
  "router_dropout": 0.1,
  "router_temperature": 1.0,
  "attn_drop": 0.1,
  "proj_drop": 0.1,
  "drop_path": 0.0,
  "max_position_embeddings": 2048,
  "pad_token_id": 50256,
  "bos_token_id": 50256,
  "eos_token_id": 50256
}

Tip: If you use the GPT‑2 tokenizer, set pad_token = eos_token and make sure vocab_size matches the tokenizer (50257).


Quick‑start (inference)

>>> from transformers import AutoTokenizer, AutoModelForCausalLM

>>> model_id = "reaperdoesntknow/MoA-100M"
>>> tokenizer = AutoTokenizer.from_pretrained(model_id)
>>> tokenizer.pad_token = tokenizer.eos_token   # needed for the GPT‑2 tokenizer

>>> model = AutoModelForCausalLM.from_pretrained(model_id)

>>> prompt = "Explain metric‑based attention in simple terms:"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> output_ids = model.generate(
...     **inputs,
...     max_new_tokens=128,
...     do_sample=False,          # deterministic; set temperature>0 for sampling
...     pad_token_id=tokenizer.pad_token_id,
... )
>>> print(tokenizer.decode(output_ids[0], skip_special_tokens=True))

Note: Because KV‑cache is not implemented, generation time grows linearly with the total context length.


Training (custom loop sketch)

from transformers import AutoTokenizer, AutoModelForCausalLM, DataCollatorForLanguageModeling
from torch.utils.data import DataLoader
import torch, torch.nn.functional as F

tokenizer = AutoTokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token

def collate_fn(examples):
    batch = tokenizer(
        [ex["text"] for ex in examples],
        padding="max_length",
        truncation=True,
        max_length=512,
        return_tensors="pt",
    )
    labels = batch["input_ids"].clone()
    labels[batch["attention_mask"] == 0] = -100
    batch["labels"] = labels
    return batch

# dataset = load_dataset(..., split="train")  # must contain a 'text' field
# loader = DataLoader(dataset, batch_size=4, shuffle=True, collate_fn=collate_fn)

model = AutoModelForCausalLM.from_pretrained("reaperdoesntknow/MoA-100M")
optimizer = torch.optim.AdamW(
    model.parameters(),
    lr=5e-4,
    betas=(0.9, 0.95),
    weight_decay=0.01,
)

for batch in loader:
    out = model(**batch)
    out.loss.backward()
    torch.nn.utils.clip_grad_norm_(model.parameters(), 1.2)
    optimizer.step()
    optimizer.zero_grad()

Evaluation checklist

  • Perplexity on a held‑out split of the two training datasets.
  • Ablation studies (keep total token budget constant):
  • L2 vs. cosine vs. diagonal‑Mahalanobis distance.
  • With / without ball pruning.
  • With / without HyperFFN branch router.
  • With / without TI regulariser.
  • Speed / memory comparison against a vanilla GPT‑2‑size model (same dim/layers).

Efficiency notes

Feature What it does
Ball pruning Masks keys that lie outside a learned radius → reduces the quadratic attention cost.
Metric MQA Shares K/V across heads → fewer projection matrices, lower FLOPs.
HyperFFN branch router Token‑wise top‑k routing means only the most useful branch is evaluated per token.
CPU tips Set OMP_NUM_THREADS / MKL_NUM_THREADS to the number of physical cores; use torch.set_num_threads() if needed.

Future roadmap: metric‑aware KV‑cache, kernelised distance approximations (e.g., Random Fourier Features), quantisation & mixed‑precision inference.


Safety, Bias & Risks

  • The model has not been fine‑tuned for safety or alignment.
  • Outputs may contain biases, profanity, or factual errors.
  • Do not deploy in high‑stakes contexts without additional evaluation, moderation, and possibly further fine‑tuning.

Discrepancy Calculus Foundation

This model is part of the Convergent Intelligence LLC: Research Division portfolio. All models in this portfolio are developed under the Discrepancy Calculus (DISC) framework — a measure-theoretic approach to understanding and controlling the gap between what a model should produce and what it actually produces.

DISC treats training singularities (loss plateaus, mode collapse, catastrophic forgetting) not as failures to be smoothed over, but as structural signals that reveal the geometry of the learning problem. Key concepts:

  • Discrepancy Operator (D): Measures the gap between expected and observed behavior at each training step
  • Jump Sets: Boundaries where model behavior changes discontinuously — these are features, not bugs
  • Ghost Imprinting: Teacher knowledge that transfers to student models through weight-space topology rather than explicit distillation signal

For the full mathematical treatment, see Discrepancy Calculus: Foundations and Core Theory (DOI: 10.57967/hf/8194).

Citation chain: Structure Over Scale (DOI: 10.57967/hf/8165) → Three Teachers to Dual Cognition (DOI: 10.57967/hf/8184) → Discrepancy Calculus (DOI: 10.57967/hf/8194)

License

Apache‑2.0 – see the LICENSE file in the repository.


Citation

@misc{moametriclm185m,
  title   = {reaperdoesntknow/MoA-100M: A Geometry-Aware Mixture-of-Attentions Language Model},
  author  = {Convergent Intelligencehawn and collaborators},
  year    = {2025},
  url     = {https://huggingface.co/reaperdoesntknow/MoA-100M}
}

Changelog

Version Date Notes
v0.2 2025‑09‑20 500 k‑token CPU run, GPT‑2 tokenizer, LR = 5e‑4, final loss ≈ 0.30.
v0.1 2025‑09‑20 Initial public release: metric heads, MQA, ball pruning, HyperFFN, router & gates; HF‑compatible; no KV cache.

Maintainers


Special Remarks

  • This models still in an extremely experimental state. As are most of them, but im working on stabilizing this one for general inference.
  • I design create and train all of my models using my mathematical research and pure disgust for the dot product!
  • For those of you who actually read this and use my models, you make my day everytime I see another download, so thank you for being awesome!

Convergent Intelligence Portfolio

Part of the Mixture of Attention Series by Convergent Intelligence LLC: Research Division

Related Models

Model Downloads Format
MoA-150M 4 HF
MoA-155M 2 HF
MoA-400M 3 HF

Top Models from Our Lab

Total Portfolio: 41 models | 2,781 total downloads

Last updated: 2026-03-28 12:56 UTC


From the Convergent Intelligence Portfolio

DistilQwen Collection — Our only BF16 series. Proof-weighted distillation from Qwen3-30B-A3B → 1.7B and 0.6B on H100. Three teacher variants (Instruct, Thinking, Coder), nine models, 2,788 combined downloads. The rest of the portfolio proves structure beats scale on CPU. This collection shows what happens when you give the methodology real hardware.

Top model: Qwen3-1.7B-Coder-Distilled-SFT — 508 downloads

Full methodology: Structure Over Scale (DOI: 10.57967/hf/8165)

Convergent Intelligence LLC: Research Division

Configuration

Architecture
MoAMetricLM
Context length (tokens)
1,024
Layers
6
Vocabulary size
50,257
Model type
moa_metric

Identity and Version

Repository
reaperdoesntknow/MoA-100M
Publisher
Convergent Intelligence
Task
Text generation
Modality
Text
Library
transformers
Parameters
Not stated by the source
Languages
en
Revision
20b97d2ed798d5cd8a9ecc68ea98420da42b8a41
First published
2025-09-20
Last updated
2026-09-18

Files and Weights

5 files, 1.0 GB in total. The weights are 1 file totalling 1.0 GB in bin.

Weights1 file · 1.0 GB
Configuration2 files · 1.4 KB
Documentation1 file · 13.1 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
pytorch_model.binWeights1.0 GB c402df542bb4
config.jsonConfiguration1.3 KB
generation_config.jsonConfiguration136 B
README.mdDocumentation13.1 KB
.gitattributesRepository1.5 KB

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
1.0 GB
Download from Convergent Intelligence

Released by Convergent Intelligence through its official repository on Hugging Face. Read the license.

Built From

  • Trained on (disclosed) WeMake/Intelligent-Content-Understanding
  • Trained on (disclosed) nvidia/Nemotron-Math-HumanReasoning

Memory Requirements

PrecisionWeights in memory
As published1.0 GB

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

Questions About MoA-100M

Can I use MoA-100M commercially?

Yes. MoA-100M 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 MoA-100M's context length?

1,024 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Fine-tune Qwen3 (14B) for free using our Google Colab notebook! - Read our Blog about Qwen3 support: unsloth.ai/blog/qwen3 - View the rest of our notebooks in our docs here. Qwen3-Coder is available in multiple sizes. Today, we're excited to introduce Qwen3-Coder-30B-A3B-Instruct. This streamlined model maintains impressive performance and efficiency, featuring the following key enhancements: - Significant Performance among open models on Agentic Coding, Agentic Browser-Use, and other foundational coding tasks. - Long-context Capabilities with native support for 256K tokens, extendable up to 1M tokens using Yarn, optimized for repository-scale understanding. - Agentic Coding supporting for…

Open weights apache-2.0 transformers

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp