TS-Ettin-68M by typestrict.ai

Train your own on typestrict.ai | Docs | MCP for AI assistants | CLI | All TS models
License: Apache 2.0 | Authors: typestrict.ai

TS-Ettin-68M

The typestrict recipe on the 68M Ettin reranker: less than half the size of the 150M bases, for high volumes in English.

Train on it today at typestrict.ai: pick it as the base model (ts-ettin-68m). TS-moBERTo-150M stays the default; train both and keep the version that wins on your held-out examples.

The confidence of this model is not calibrated yet (identity settings in config.json): use the probabilities, and measure before setting an automation threshold on confidence.

  • Typed decisions: choice (one option out of many), noul (is this statement true) and score (a value on an ordered rubric), each with the probability of every option and a confidence.
  • Small and fast: 68M parameters, English, 8,192 tokens of context, with ONNX files that run on a CPU.
  • Open: Apache-2.0 weights, trained only on data whose license allows it (listed below).
  • The base of every typestrict model: send your data to typestrict.ai and get a model that answers your own question, measured against Jev on your held-out examples.

Decision Index 0.3 of the TS models

๐Ÿงญ The TS family

Every TS model follows the same recipe on the same data, so trying another one is a new version of the same training.

ModelSizeLanguagesOn typestrict.ai
TS-moBERTo-150M150MEnglish and PortugueseAvailable, recommended
TS-Ettin-150M150MEnglishAvailable
TS-Ettin-68M68MEnglishAvailable
TS-Ettin-32M32MEnglishAvailable
TS-Ettin-17M17MEnglishAvailable

๐Ÿ“Š Results

Decision Index 0.3

The public index of the Decision Index 0.3, in our lab's run: the encoder alone, then with the code and calculator experts that ship with TS-moBERTo-150M. Measured on public benchmarks, not on your task: a model trained on typestrict is measured on your own examples.

ModelEncoder aloneWith code and calculator experts
TS-moBERTo-150M31.2033.89
TS-Ettin-150M31.9634.78
TS-Ettin-68M27.6130.46
TS-Ettin-32M19.7022.45
TS-Ettin-17M15.7618.52

Held-out typed decisions

Held-out sets of 1,000 items each, accuracy:

SetAccuracy
Typed decisions, English (PyTorch)0.703
Typed decisions, English (ONNX int8)0.705

๐Ÿƒ Quickstart

The inference code ships in this repository (dinah.py). On a CPU, with the int8 ONNX file:

pip install huggingface_hub onnxruntime transformers numpy
import importlib.util
from huggingface_hub import hf_hub_download

REPO = "typestrict/TS-Ettin-68M"
spec = importlib.util.spec_from_file_location("dinah", hf_hub_download(REPO, "dinah.py"))
dinah = importlib.util.module_from_spec(spec)
spec.loader.exec_module(dinah)

model = dinah.DinahONNX.from_pretrained(REPO)   # or dinah.Dinah for PyTorch
print(model.choice(
    state="My card still has not arrived. How can I track the delivery?",
    criteria={
        "payment": "A problem with a payment or a charge",
        "card_delivery": "Delivery or shipping of the card",
        "cancel": "Cancel the card or the account",
    },
    instructions="What is the customer's message about?",
))
# What this model answers here: "card_delivery", probability 0.811, confidence 0.913

noul and score work the same way (model.noul(...), model.score(...)); model.predict([...]) answers a batch. This is the base model, before any training on your data: for your own decision, train it on typestrict.ai.

๐Ÿš€ Train your own on typestrict.ai

Train a decision model on your data with typestrict.ai

TS-Ettin-68M is a base: it already reads language and makes typed decisions. On typestrict.ai it learns your decision (your queues, teams, products, intents) from your data, and the result is measured against Jev, the market reference model, on examples held out from training. If it does not beat Jev, the credit comes back.

In the web app: upload a spreadsheet, a folder of documents or a public dataset at typestrict.ai, review what the agent proposes, and train.

From your AI assistant (ChatGPT, Claude, Cursor, Codex, Copilot and others), with the remote MCP server:

claude mcp add --transport http typestrict https://api.typestrict.ai/mcp

From a terminal or CI, with the typestrict CLI:

curl -fsSL https://typestrict.ai/install.sh | sh && typestrict login
typestrict train tickets.csv --goal "Which team handles the ticket?" --base ts-ettin-68m --watch

The trained model comes as a small package (decision_ai.json, tokenizer.json, onnx/model_8bit.onnx) that runs on your own servers, in a container, or inside a Flutter app with decision_ai. Setup for every assistant: docs.typestrict.ai/agents.

๐Ÿ—’๏ธ Model details

PropertyTS-Ettin-68M
Parameters68M
ArchitectureBidirectional encoder with a typed-decision head
Starts fromEttin reranker 68M (Apache-2.0)
LanguagesEnglish
Context length8,192 tokens (longer examples are refused, never cut)
Question typeschoice, noul, score, with probabilities and a confidence
Runs onCPU (ONNX) or GPU (PyTorch)
typestrict idts-ettin-68m
LicenseApache-2.0

๐Ÿ“š Training data

Two stages (2,048 tokens, then 8,192) and an average of both, on the same mixture for every TS model. Each source with the license its own card declares; sources under CC BY-SA and CDLA-Sharing are used for training only and are not redistributed. The training blocks were checked against the Decision Index's public test rows (exact and near-duplicate removal, and 8-gram overlap for the newest blocks).

AreaSources
Typed decisionsZefanCai/Open-Jev (CC0-1.0), LocalLLaMA/typed-decisions (Apache-2.0), typed-decisions-pt translated with Qwen3-4B (Apache-2.0), tasksource/procedural-typed-decisions (Apache-2.0)
Intents and customer supportAmazonScience/massive (CC BY 4.0), Bitext customer support (CDLA-Sharing-1.0), BANKING77 (CC BY 4.0), CLINC150 (CC BY 3.0), FAQ_BACEN (Apache-2.0)
Inference and fact checkingWANLI (CC BY 4.0), SNLI (CC BY-SA 4.0), HoVer (CC BY-SA 4.0), FEVER-NLI (MIT; FEVER and Wikipedia CC BY-SA 3.0), ContractNLI (CC BY 4.0), bAbI-NLI (BSD), FaQuAD-NLI (CC BY 4.0), ExtraGLUE RTE and COPA in Portuguese (MIT)
Reasoning and knowledgeCommonsenseQA (MIT), Cosmos QA (CC BY 4.0), BoolQ (CC BY-SA 3.0), HellaSwag (MIT), WinoGrande (Apache-2.0), ARC train split (CC BY-SA 4.0), QASC (CC BY 4.0), StrategyQA (MIT), BIG-bench tasks without BBH (Apache-2.0), MMLU auxiliary train, ARC and OpenBookQA parts (MIT), GSM8K (MIT), CLadder (MIT)
Health, finance and lawPubMedQA (MIT), MedMCQA (Apache-2.0), twitter-financial-news-sentiment (MIT), financial-tweets-sentiment (MIT), NOSIBLE financial-sentiment (ODC-By), FinQA hallucination detection (MIT), pyRis/SEntFiN (MIT), CUAD (CC BY 4.0), jurisprudencias_br (CC BY 4.0), IBM Claim Stance (CC BY 3.0)
Sentiment, emotion and moderationGoEmotions (Apache-2.0), Civil Comments (CC0-1.0), iSarcasmEval (MIT), B2W-Reviews01 (CC BY 4.0), multilingual-sentiments in Portuguese (Apache-2.0)
Retrieval and hallucinationESCI (Apache-2.0), HaluEval (Apache-2.0), RAGTruth (MIT), CNN/DailyMail (Apache-2.0), SQuAD 2.0 (CC BY-SA 4.0)
Toolsglaive-function-calling-v2 (Apache-2.0), ToolACE (Apache-2.0), hermes-function-calling-v1 (Apache-2.0), nvidia/When2Call (CC BY 4.0)
PhishingLLMGen-Phishing-Email-Dataset (Apache-2.0), aura-phishing-email-corpus, SpamAssassin part (CC BY 4.0)
ChessLichess puzzles (CC0-1.0), google-deepmind/searchless_chess (Apache-2.0)
Humornewyorker_caption_contest, matching task (CC BY 4.0)
Made by usEnglish to Portuguese translations with opus-mt-tc-big-en-pt (CC BY 4.0); synthetic phishing emails written with gpt-oss-120b, labels set by code (Apache-2.0); synthetic home-appliance households, RAG hallucination examples and programmatic skills (arithmetic, dates, units, sorting, graphs, code output), generated by our scripts (MIT and Apache-2.0)

Links

Citation

@misc{typestrict2026tsettin68m,
  author = {{typestrict.ai}},
  title  = {TS-Ettin-68M: a typed-decision encoder},
  year   = {2026},
  url    = {https://huggingface.co/typestrict/TS-Ettin-68M}
}
Downloads last month
14
Safetensors
Model size
68.4M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for typestrict/TS-Ettin-68M

Quantized
(4)
this model