Coming Monday, September 21: Expanding the Gateway: Pinta-1.1 Mini Drops Monday — 103 MB bf16, sub-15 ms ONNX edge routing. Preview the specs ↓
AENEA AENEAQuartz Quartz dual-domain · aenea.app / quartz.host
PINTA-1.1 · 226M · BETA RELEASE

Semantic routing,
crystallized.

AENEA Pinta-1.1 is a 226M-parameter semantic routing gateway built on the custom Merlin architecture and the AENEA Prelude-6 base. Every incoming prompt is classified into a high-precision domain token in one forward pass — dynamically routing traffic across MoE backends, local SLMs and specialized API endpoints. Measured at 192.66 ms average TTFT across a 1,020-prompt evaluation.

bf16 · ~656 MB · merlin_2 · QT VI.6.4 UltraLingo · aenea.app ⇄ quartz.host

0Mparameters · low-footprint Merlin core
0%strict accuracy · primary token match
0 msaverage TTFT · 1,020-prompt benchmark
0 MBbf16 inference footprint
Coming Monday

Expanding the Gateway: Pinta-1.1 Mini Drops Monday

The 103MB sub-15ms edge router for the Human + Agent Economy.

We just launched the Pinta-1.1 (226M) flagship gateway. On Monday, we are releasing the Edge version: Pinta-1.1 Mini (50M), built on the custom Cartan Cittern architecture.

Releasing Monday on Hugging Face (Apache 2.0). Includes PyTorch weights, ONNX export, and the custom 9K QT-Cittern tokenizer.

Watch Hugging Face ↗ edge router · Cartan Cittern · QT-Cittern
Parameter Count 50M edge-class router
Footprint 103 MB bf16 · major feature
ONNX Latency (C++) < 15 ms native edge path
Routing Accuracy 75.5% / 79.2% Strict / Flex
Ideal Deployment Microservices · local agent swarms · Raspberry Pi / Edge hardware.
01 · Model showcase

Meet Pinta-1.1

A classifier and gateway, not a conversational model — Pinta-1.1 emits a single routing token per prompt and hands off to whatever model should actually answer.

MODEL CARDv1.1 · BETA
Parameters
226M
Architecture
Merlin v2 · merlin_2 (custom)
Base model
AENEA Prelude-6 checkpoint
Layers
16 · transformer blocks, parallel residuals
Attention
GQA · 16 query / 4 KV heads
Hidden / FFN
1024 / 4096 · SwiGLU
Context
2,048 tokens · RoPE
Tokenizer
QT VI.6.4 Multilingual · 49,152 vocab
Precision
bfloat16 · ~656 MB
Runtime
pinta_engine · PyTorch / FastAPI
Training
Prelude-6 pre-train + contrastive alignment
Hardware
pre-trained RTX 4090 · fine-tuned RTX 4060
License
Apache-2.0 · Beta release
Artifact
huggingface.co/JamesQuartz/aenea-pinta-1.1
ROUTER DECISION · ONE PASS
decision.token<|reserved_24|>
decision.labelCode
decision.confidence0.9890856146812439
decision.downstream_modelqwen2.5-coder:32b
REPO ARTIFACTS

merlin_2/ architecture package  |  pinta_engine.py router engine  |  config.yaml  |  routing_map.json  |  tokenizer.json · 49,152  |  pinta_1.1_bf16.pt · ~656 MB

Model card on Hugging Face ↗

What Pinta-1.1 changes for prompt routing

01

One pass, one token

Every prompt is classified into one of nine reserved domain tokens (<|reserved_23|><|reserved_31|>), read straight from the vocabulary logits in a single forward pass. No secondary heads, no generative overhead — a router, and only a router.

02

Merlin v2 under the hood

16 transformer blocks with parallel residuals, 16Q/4KV grouped-query attention, SwiGLU FFN and RoPE — a 226M / ~656 MB bf16 architecture purpose-built for low-latency routing on consumer hardware.

03

Fallback by design

Any decision below the confidence threshold (default 0.35) is automatically redirected to the Knowledge fallback (<|reserved_29|>) — quality-preserving and never silent. Threshold is tunable per deployment.

04

Backend-agnostic dispatch

routing_map.json binds each domain token to Ollama, vLLM, the OpenAI API or a local HF pipeline — so one router fronts MoE backends, local SLMs and specialized endpoints at the same time.

STAGE 01 · BASE PRE-TRAINING

The AENEA Prelude-6 checkpoint

  • English Wikipedia — complete clean English corpus
  • Stack Exchange network — StackOverflow, MathOverflow, ServerFault, SuperUser, AskUbuntu, CodeReview, SoftwareEngineering, ReverseEngineering, NetworkEngineering
  • Multi-language source code — Python, C, C++, C#, Java, JavaScript, TypeScript, Rust, Go, PHP, Ruby, Kotlin, Swift, Shell · CodeSearchNet Python
  • Mathematics & science — cleaned pure mathematics and scientific reasoning corpora
STAGE 02 · FINE-TUNING & ALIGNMENT

Contrastive alignment, 50 / 50

  • 50% curated open data mix — mined imperative subsets targeting instruction execution across Code, System Architecture, Formatting and Reasoning
  • 50% Deepseek-v4-Flash synthetic boundary data — hard-negative contrastive pairs generated to sharpen semantic boundaries between domain classes
  • Result — a router that separates domains by meaning, not keywords
02 · Domain map

Nine reserved tokens. One decision.

Pinta-1.1 classifies every prompt into exactly one of nine reserved domain tokens — <|reserved_23|> through <|reserved_31|> — read from the vocabulary logits in one forward pass. Click a domain to inspect its measured performance.

green = F1 ≥ 0.85  ·  blue = moderate / low support  ·  amber = beta watch  ·  held = future expansion

<|reserved_24|>

Code

STRONG
0.83precision
0.94recall
0.88F1-score
281support (n)

The workhorse of the code side.

WORKED DISPATCH · MEASUREDfrom example_usage.py · reference hardware

"Write a Python function to normalize a file path."

tokenizerQT VI.6.4 Multilingual · 49,152-entry vocab
merlin_216 layers · 1024 hidden · GQA 16Q/4KV · one forward pass
logits[23–31]argmax → <|reserved_24|> · confidence 0.9891
gate0.9891 ≥ 0.350 threshold — clears, no fallback
dispatchqwen2.5-coder:32b · ollama · localhost:11434
latency333 ms cold pass · 192.66 ms benchmarked average
2026-09-18 11:57:46,784 INFO pinta.router [Pinta Router] Initialized Pinta-1.1 router on cuda with dtype=torch.bfloat16, threshold=0.350, fallback=<|reserved_29|>
2026-09-18 11:57:47,117 INFO pinta.router [Pinta Router] Prompt -> Mapped to <|reserved_24|> (Code) -> Dispatching to qwen2.5-coder:32b (Latency: 333ms).

The 333 ms figure is the first (cold) routing pass including CUDA kernel warm-up. Warm-cache passes are substantially faster — the benchmarked average TTFT of 192.66 ms is measured across the full 1,020-prompt evaluation on reference hardware.

03 · Evaluation

1,020 prompts. Eight domains. One token each.

Evaluated on the Pinta Gold Benchmark — 1,020 curated cross-domain prompts sourced from benchmark datasets. Strict accuracy demands the exact primary token; flexible accuracy accepts allowed-token matches.

0%strict accuracy · primary token match
0%flexible accuracy · allowed token match
0weighted F1-score
0evaluation prompts · Pinta Gold
PER-DOMAIN PERFORMANCE · n = 1,020Pinta Gold Benchmark · test split
TokenDomainPrecisionRecallF1-ScoreSupport
<|reserved_23|>Formatting0.500.050.0943
<|reserved_24|>Code0.830.940.88281
<|reserved_25|>Creative0.700.230.3431
<|reserved_26|>RAG / Doc QA1.000.830.9124
<|reserved_27|>Architecture0.310.560.409
<|reserved_28|>Math0.920.920.92260
<|reserved_29|>Knowledge0.830.880.86369
<|reserved_30|>Law / Policy0.000.000.003
Weighted average0.830.850.831,020

Support values sum to the full 1,020-prompt evaluation set. See the Beta scope panel below for details on the Formatting and Law / Policy classes.

PER-DOMAIN CLASSIFICATION PERFORMANCEclick to enlarge
Per-domain classification performance: precision, recall and F1-score for Formatting, Code, Creative, RAG/Doc QA, Architecture, Math, Knowledge and Law/Policy across 1,020 evaluation prompts
Per-domain precision, recall and F1 across the 1,020-prompt Pinta Gold Benchmark evaluation.
BETA SCOPE · STATED PLAINLYknown limitations, from the model card
Formatting recall is 0.05

Class imbalance in the fine-tuning mix — most formatting prompts are absorbed by Knowledge or Code as a safe fallback. Post-Beta priority.

Law / Policy is unvalidated

Evaluation support is n=3 — reported scores are not statistically meaningful. Treat Law routing as experimental.

<|reserved_31|> is held

Reserved for future domain expansion — not scored in the Beta benchmark.

Confidence fallback

Decisions below the default 0.35 threshold redirect to Knowledge. Tune the threshold and monitor fallback rates for strict domain separation.

Hardware-dependent latency

TTFT figures are measured on the reference consumer-GPU setup — CPU-only or shared-GPU deployments will see higher latency.

Router-only model

Pinta-1.1 emits routing decisions. It is not intended for open-ended text generation.

04 · Infrastructure

The Pinta engine

pinta_engine.py — a production-ready router engine handling model loading via merlin_2, fast logits extraction, and async dispatch to OpenAI-compatible endpoints or local Ollama instances.

incoming prompt
qt vi.6.4 multilingual
pinta-1.1 · merlin_2 · one pass
reserved logits 23–31
confidence gate · 0.35
ollamavllmopenai apilocal hfknowledge fallback

Custom architecture: merlin_2 bypasses the standard HF AutoModel mapping — AutoModelForCausalLM.from_pretrained(...) will not load this checkpoint. Download the full repository, including the merlin_2/ package and pinta_engine.py, and keep them in the same working directory (or on PYTHONPATH).

192.66 ms

Average TTFT, benchmarked

Across the full 1,020-prompt evaluation on reference hardware. The first cold pass (333 ms) includes CUDA kernel warm-up — warm-cache passes are substantially faster.

≈656 MB bf16

The whole router ships as pinta_1.1_bf16.pt — small enough to sit beside your existing inference stack.

Merlin v2 core

16 blocks with parallel residuals, 16Q/4KV grouped-query attention, SwiGLU FFN and RoPE — dense where it matters, sparse where it doesn't.

Async dispatch, any backend

FastAPI middleware with async dispatch to vLLM and any OpenAI-compatible server, the OpenAI API, local Ollama instances or local HF pipelines — per-token backends, base URLs, API-key env vars and generation parameters all configurable in routing_map.json.

Deployment & quickstart

engine + weights · huggingface.co/JamesQuartz/aenea-pinta-1.1
# Python ≥ 3.9
pip install torch transformers fastapi uvicorn httpx pyyaml
  • Python — 3.9 or newer
  • Hardware — CUDA-capable GPU recommended; CPU and MPS inference are supported, with higher TTFT
  • Weights — shipped in bfloat16 as pinta_1.1_bf16.pt, ~656 MB
# Pull the full repository — the custom merlin_2 package is required
huggingface-cli download JamesQuartz/aenea-pinta-1.1 \
  --include "*.py" "*.yaml" "*.json" "*.pt" \
  --local-dir ./aenea-pinta-1.1

EXPECTED REPOSITORY LAYOUT

aenea-pinta-1.1/
├── merlin_2/               # Custom architecture: config + modeling code
├── pinta_engine.py         # Router engine & FastAPI middleware
├── config.yaml             # Model + router configuration
├── routing_map.json        # Reserved-token → backend dispatch map
├── tokenizer.json          # QT VI.6.4 Multilingual tokenizer (49,152 vocab)
└── pinta_1.1_bf16.pt       # bf16 weights (~656 MB)

pinta_engine.py imports merlin_2 from the repository root at runtime — keep both in the same working directory, or put the repo on PYTHONPATH.

# example_usage.py — execute a routing pass
import asyncio
from pinta_engine import PintaRouter

# Load bf16 weights via the custom merlin_2 architecture
router = PintaRouter("config.yaml")

prompt = "Write a Python function to normalize a file path."

# 1. Ultra-fast routing decision
decision = router.route(prompt)

print(decision.token)
print(decision.label)
print(decision.confidence)
print(decision.downstream_model)

# 2. Async dispatch to the mapped backend (e.g., local Ollama qwen2.5-coder)
# response = asyncio.run(router.adispatch(prompt, decision))
# print(response["choices"][0]["message"]["content"])

EXPECTED OUTPUT

<|reserved_24|>
Code
0.9890856146812439
qwen2.5-coder:32b
# routing_map.json — bind each reserved token to a downstream backend
{
  "<|reserved_24|>": {
    "label": "Code",
    "backend": "ollama",
    "base_url": "http://localhost:11434",
    "model": "qwen2.5-coder:32b"
  },
  "<|reserved_26|>": {
    "label": "RAG / Doc QA",
    "backend": "vllm",
    "base_url": "http://localhost:8000/v1",
    "model": "qwen2.5-7b-instruct"
  },
  "<|reserved_29|>": {
    "label": "Knowledge",
    "backend": "openai",
    "model": "gpt-4o-mini",
    "api_key_env": "OPENAI_API_KEY"
  }
}
  • Fallback — decisions below the confidence threshold (default 0.35) automatically route to Knowledge (<|reserved_29|>)
  • Backends — Ollama, vLLM / any OpenAI-compatible server, the OpenAI API, or a local Hugging Face pipeline
  • Configurable — base URLs, API-key environment variables and per-target default generation parameters, all per token
05 · Tokenizer research

49K to route. 200 languages covered.

Pinta-1.1 routes on QT VI.6.4 — a 49,152-token byte-level BPE tokenizer built for broad multilingual coverage and a strong low-resource tail. It matches Llama 3.2's English compression at roughly one-third the vocabulary size, keeping the embedding footprint low for small models.

0vocab size · 384 × 128 Tensor-Core aligned
0 / 204FLORES-200 languages with real subword coverage
0English chars/token · matches Llama 3.2 (4.68)
1/3the vocab size of Llama 3.2 & DeepSeek V4
VOCABULARY SIZE IN CONTEXTFLORES-200 devtest · English density vs footprint
TokenizerVocab SizeEnglish (chars/tok)Real CoverageRead
QT VI.6.449,1524.63200 / 204~1/3 the vocab, near-identical English density
Llama 3.2128,2564.68179 / 2042.6× larger embedding matrix
DeepSeek V4129,2804.88193 / 2042.6× larger embedding matrix

A smaller vocabulary means a smaller embedding matrix. On a 226M model like Pinta-1.1, that difference is paid straight back into the non-embedding parameter budget.

FLORES-200 BENCHMARKSBytes/token & Chars/token · higher is better
QT VI.6.449,152 vocab
Llama 3.2128,256 vocab
DeepSeek V4129,280 vocab
QT VI.6.4 reaches essentially the same English density as Llama 3.2 (4.63 vs 4.68 chars/tok) using roughly one-third the vocabulary.
LOW-RESOURCE DOMINANCEBytes per token (higher is better) · underserved scripts
LanguageScriptQT VI.6.4Llama 3.2DeepSeek V4
TibetanTibetan6.701.442.65
TamilTamil6.182.025.08
BurmeseMyanmar6.071.473.25
HindiDevanagari5.704.854.46
MalayalamMalayalam5.731.693.45
TeluguTelugu5.211.563.50
ThaiThai5.03

On Tibetan, Burmese, Malayalam, and Telugu the gain over Llama 3.2 is roughly 4× to 5×. General-purpose tokenizers fall back toward bytes here; VI.6.4 gives them real subword inventories.

MAJOR LANGUAGESCharacters per token (higher is better) · high-resource density
LanguageQT VI.6.4Llama 3.2DeepSeek V4
English4.634.684.88
German3.113.503.75
Russian2.263.163.32
Chinese1.121.211.70
Arabic1.912.532.66

VI.6.4 trades some major-language density for its much broader coverage and low-resource strength. English stays highly competitive; the majors edge is bought by competitors with a 2.6× larger embedding matrix.

06 · Network

One page. Two doors.

This exact page is served byte-for-byte from both aenea.app and quartz.host — wherever you knock, the same Pinta answers.