fragment-2 (v3.0.0)

A ~36M-parameter System-One decision model by FrameXlabs β€” built on the original Fragment build (fragment-1 v2.29) and trained entirely from scratch: own BPE tokenizer, own encoder, own RLCD loop. No pretrained weights, no fine-tune of Laya or any other model.

Give it a state (any text) and typed questions; it returns typed answers with calibrated probabilities in a single forward pass β€” no autoregression, no text generation, no chain-of-thought, nothing to parse and nothing to hallucinate.

Five question types (Laya has 3): choice, score, noul, multi, rank β€” with up to 16 options per question (trained 14-way on DBpedia).

Weights

This repository is the release target of the training notebook β€” the first trained checkpoint is published here automatically when the notebook is run (Stage 10, "automatic release"):

fragment-2-colab.ipynb β€” one free Google Colab T4 run (~2.5 h) trains the model from scratch and publishes weights + tokenizer + config + measured model card to this repo (and to GitHub). f3.py and f3_config.json are already here: the runtime is ready the moment weights land.

vs Laya (Convai Innovations, Sep 2026)

Laya fragment-2
Origin fine-tuned ModernBERT / mmBERT from scratch
Params 421M (EN) / 322M (multi) ~36M
Question types 3 5 (+ multi, rank)
Options per question weak beyond 20 up to 16, trained 14-way
Calibration raw ECE 0.213 β†’ 0.081 tuned RLCD + per-type temperature
Zero-shot 0.362 reported measured on IMDb + SST-5 (never trained on)
Reproducibility weights only weights + tokenizer + full notebook

Honest note: Laya-multilingual serves 100+ languages; fragment-2 is English-first (char-level fallback alphabet for other scripts in the tokenizer). Multilingual is the next fragment release, on this same build.

Architecture (the original F2Net, scaled and modernized)

fragment-1 (v2.29) fragment-2 (v3)
layers / width 6 Β· d=256 10 Β· d=384
attention 4 heads, learned pos 6 heads, RoPE
FFN GELU 1024 SwiGLU 1536
vocab / context 16,384 / 192 32,768 / 256
params 8.98M ~36M

Training = the original three-stage recipe, extended:

  1. Supervised warmup β€” CE / BCE / Plackett-Luce over ~470k typed items (SST-2, BoolQ, Amazon polarity, AG News, DBpedia-14, Yelp-5, plus new multi + rank constructions)
  2. RLCD v2 β€” GRPO-style Gaussian logit-noise exploration with strictly proper scoring rules as reward (log score, RPS, Brier, PL log-likelihood); honest probabilities are the unique reward maximiser
  3. Per-type temperature calibration on a held-out split

Quickstart (after weights land)

from f3 import Fragment
m = Fragment.from_pretrained("FrameXlabs/fragment-2")
res = m.decide(
    state="Hi, we were billed twice for March. Please refund the duplicate today.",
    questions={
        "refund": {"type": "noul",
                   "instructions": "Does the user explicitly request a refund?"},
        "urgency": {"type": "score",
                    "instructions": "How urgent is this request?",
                    "criteria": ["not urgent", "soon", "critical or blocking"]},
    })
print(res["answers"]["refund"]["noul"])   # calibrated P(yes)

Lineage

fragment-1 v2.29 (8.98M, CPU-trained) β†’ fragment-2 v3 (same recipe, scaled, GPU-trained). One build, no graveyard.

β€” FrameXlabs, a group of students who want to build something big.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support