fragment-2 (v3.0.2)

A 36.3M-parameter System-One decision model, built by FrameXlabs on the original fragment build 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: choice, score, noul, multi, rank.

Results (measured by the training notebook, held-out splits)

benchmark fragment-2 Laya (reported)
AG News (choice) 0.9080 0.950
DBpedia-14 (14-way choice) 0.1540 β€”
Yelp-5 (score) 0.6040 SST-5 0.372
SST-5 (score, zero-shot) 0.3421 zero-shot base 0.362
IMDb (noul, zero-shot) 0.8345 β€”
multi F1@0.5 (AG News) 0.7860 n/a (no multi type)
rank Kendall tau (Yelp) 0.5773 n/a (no rank type)
avg ECE (calibrated) 0.1971 0.081 (raw 0.213)
avg accuracy 0.5920 typed-decisions 0.766

Sizes: fragment-2 36.3M from scratch vs Laya 421M/322M

Quickstart

The repo ships a self-contained runtime β€” f3.py (needs only torch + safetensors):

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={
        "urgency": {"type": "score",
                    "instructions": "How urgent is this request?",
                    "criteria": ["not urgent", "soon", "critical or blocking"]},
        "refund": {"type": "noul",
                   "instructions": "Does the user explicitly request a refund?"},
        "dept": {"type": "choice",
                 "instructions": "Which department should handle this?",
                 "criteria": {"billing": "invoices, payments, refunds",
                               "technical": "bugs, outages, errors",
                               "other": "everything else"}},
        "claims": {"type": "multi",
                   "instructions": "Which of these claims hold for this message?",
                   "criteria": ["the customer is angry",
                                "a refund is requested",
                                "this is about march billing"]},
    })
print(res["answers"]["refund"]["noul"])      # calibrated P(yes)
print(res["answers"]["urgency"]["score"])    # expected level + distribution

Architecture

fragment-1 (v2.29) fragment-2 (v3.0.2)
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 36,332,161
question types 3 5 (+ multi, rank)
options per question 5 16 (trained 14-way)

Training: supervised warmup (cross-entropy / BCE / Plackett-Luce over ~470k typed items from SST-2, BoolQ, Amazon polarity, AG News, DBpedia-14, Yelp-5) β†’ RLCD v2 (GRPO-style Gaussian logit-noise exploration, strictly proper scoring rules as reward β€” log score, RPS, Brier, PL log-likelihood) β†’ per-type temperature calibration on a held-out split.

Honest limits

  • English-first. The tokenizer carries a char-level fallback alphabet for other scripts (encodable, but no sub-word merges outside Latin) β€” a multilingual fragment on this same build is next.
  • Zero-shot numbers are measured on IMDb / SST-5, which were never trained on; they are reported, not guaranteed, on arbitrary domains.
  • Fine-tuned Laya checkpoints still win some benchmarks (e.g. Banking77 0.870 vs 0.425); fragment-2's case is: from-scratch, ~9x smaller, 5 question types, calibrated out of the box, fully reproducible.
  • Scores are ordinal rubric answers, not generation β€” it will not write prose, by design.

Lineage

fragment-1 v2.29 (8.98M, CPU-trained) β†’ fragment-2 v3.0.2 (same recipe, scaled, GPU-trained). One build, no graveyard: the notebook is the complete, reproducible pipeline.

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

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
36.3M params
Tensor type
F16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support