Skip to main content
Version: v0.4

Vela Router Models

Overview​

Vela 1.0 is a family of fourteen published model checkpoints for intelligent routing. The Router registry currently includes the Vela 307M encoder base and ten task models covering routing, prompt protection, content safety, retrieval and reranking. Each registered release is pinned to an immutable revision.

ModelRole
EncoderShared base for adapting new routing tasks
DomainRequest subject across 14 domains
GuardPrompt injection and jailbreak detection
SafetyUnsafe content detection
HazardTwelve independent content risk categories
PIIPersonal information spans across 17 entity types
FactCheckWhether a request needs factual verification
FeedbackFour feedback types and a neutral NO_FEEDBACK class
ModalityText, image, or combined output intent from a written request
EmbeddingMultilingual retrieval and semantic matching
RerankerRelevance scoring for query-document pairs

The full model name is Vela-1.0-Encoder-307M, followed by the task suffix. Modality classifies the requested output modality from text. FactCheck requests verification and does not verify the truth of an answer.

The public collection also includes Halu for answer evidence-support detection and Omni Nano / Omni Mini for text, image and audio embeddings. These three checkpoints are available for direct use and integration work; they are not yet the Router's default hallucination or multimodal components. See the Vela 1.0 release announcement for the full family.

What Problem Does It Solve?​

A shared model family supplies task-specific signals and retrieval components with explicit model identities, input budgets and serving policies.

When to Use​

Use Vela for built-in routing tasks or adapt the shared Encoder for a new task. Choose input length and representation size against your workload's quality and latency requirements.

Omni checkpoints​

The September 19 releases provide separate text, image and audio encoders in a shared embedding space. These checkpoints remain direct-use models rather than the Router's default multimodal components.

CheckpointTotal parametersOutput dimensionsText limitText backbone and readout
Omni Nano163.8M (163,771,288)384512 tokensFrozen GIST-small; CLS readout
Omni Mini1.36B (1,361,475,288)76832,768 tokensQwen3-Embedding-0.6B; last-token Matryoshka readout

Parameter counts include every modality branch, including the CLAP audio branch; integer and running-statistics buffers are not parameters. Nano retains CLS readout with an identity projection. Mini normalizes the 1024-dimensional last nonpadding token, takes its first 768 dimensions, then normalizes again.

Mini defaults to shared text for cross-modal comparisons. For text-only tasks, encode_text accepts either task= or a custom instruction=. The retrieval preset requires role="query" or role="document"; documents stay unprefixed. The 32,768-token budget includes any instruction prefix and special tokens. Inputs over the budget are rejected unless Mini's caller explicitly sets truncate=True. Nano retains its 512-token limit and rejects longer inputs. The instructed English benchmark uses fixed official task instructions, not a sweep of the generic presets.

Both models accept original-rate PCM of at most 30 seconds, as mono or channels-first arrays. Pass its actual sampling rate; each branch independently resamples the original waveform to 16 kHz for Whisper and 48 kHz for CLAP. Preserve higher-rate PCM instead of downsampling to 16 kHz before the call. CLAP encodes endpoint-spaced windows of at most ten seconds, aggregates their normalized vectors, and applies a learned residual map after frozen TRAIN standardization. That residual is added to the retained, unnormalized Whisper affine before final L2 normalization. Text/image paths are retained; audio is newly trained and evaluated.

The latest cards compare routing and cross-modal retrieval with the original small and original large models. Scores are 0–100; each cell shows original → current:

MetricOriginal small → NanoOriginal large → Mini
Banking77, accuracy70.42 → 87.9975.78 → 86.56
MASSIVE English, accuracy65.95 → 81.9772.31 → 80.96
COCO, image → text, R@140.83 → 60.8742.53 → 67.44
COCO, text → image, R@130.18 → 55.8235.04 → 61.60
LibriSpeech, audio → text, R@14.21 → 16.1256.99 → 86.14
LibriSpeech, text → audio, R@19.58 → 20.3478.58 → 94.90

Both sides use the same held-out pools, reused across releases, with a 128-token text cap. Classification uses labeled TRAIN prototypes; retrieval uses complete candidate pools and all matching positives. This differs from official MTEB classification probes. Full metrics and uncertainty are in the linked evaluations.

For the complete MTEB 2.21.0 panels, Mean(TaskType) is the primary metric; Mean(Task) is supplementary. The original small/large models have not been measured under these complete-panel protocols.

Panel and modeMean(TaskType)Global rankRank at ≤ sizeGap to best at ≤ sizeMean(Task)
Nano · English v2, 41 tasks · default text60.7866/1885/750.61 pp64.88
Mini · English v2, 41 tasks · official instructed text64.6838/18810/1343.78 pp70.38
Nano · MAEB audio-only, 19 tasks · default audio52.3419/646/273.51 pp43.59
Mini · MAEB audio-only, 19 tasks · default audio54.8712/645/502.85 pp47.77

Ranks combine the September 17 registry snapshots with the current Vela models, including single-modality specialists and differing reported protocols. The size limit counts total parameters. Neither Vela model lies on the observed frontier of either complete panel, under either aggregate. Selected task strengths include Nano's IMDb 91.95 accuracy and NMSQA 62.90 max AP, and Mini's Mridingham 68.14 accuracy and SIBFLEURS 39.07 accuracy; these task-level frontiers do not establish overall benchmark leadership.

Nano's English score is retained through its unchanged frozen text path. Mini's instructed English panel uses fixed official instructions and a fresh matched raw-text control: Mean(TaskType) rises from 58.79 to 64.68, with 38 tasks improving and three declining. This instruction-mode result does not replace the default shared mode for image/audio comparisons. Both new audio paths are freshly evaluated; speech–text retrieval regresses despite aggregate audio gains. See the pinned Nano evaluation, Mini evaluation and matched instruction comparison for measurement identities, all tasks and regressions. These panels do not establish full multilingual or image coverage, latency, or memory performance.

Defaults and input budgets​

Built-in Domain, Guard, Safety, PII, FactCheck, Feedback and semantic Embedding now use Vela. The reference configuration also selects Vela Modality, Hazard and Reranker. Only models required by a recipe are loaded. The base encoder is a training parent and is not loaded as an additional routing signal.

Default operating thresholds are 0.5 for Guard, 0.95 for FactCheck and 0.7 for Feedback. NO_FEEDBACK emits no feedback match. Safety is independent of Guard, so an unsafe content request need not be classified as a prompt attack. Hazard uses per-label thresholds from its artifact-bound operating point; a single threshold does not represent its published decision policy.

An input budget is a deployment choice. A module max_sequence_length of 0 keeps the conservative 512-token policy. Embedding defaults to 22 layers, 768 dimensions and full_context: false. Explicit model bindings can accept up to 32,768 tokens, including special tokens, with overflow: reject. A rejected input is not silently shortened.

Configuration​

The following excerpt binds Domain to a CPU deployment with a 32K budget. Apply it to an existing configuration containing providers, signals and decisions.

routing:
model_bindings:
domain_classifier:
deployment: vela-domain
contract: label_distribution.v1
adapter: modernbert
mapping_path: models/Vela-1.0-Encoder-307M-Domain/category_mapping.json

global:
model_catalog:
deployments:
vela-domain:
artifact: models/Vela-1.0-Encoder-307M-Domain
provider: candle
device: cpu
precision: fp32
input:
max_tokens: 32768
overflow: reject

Use the same deployment and consumer-binding structure for other classifiers. PII returns token_spans.v1. Embedding uses the mmbert adapter and embedding.v1; Reranker uses vela_reranker and relevance_scores.v1. These adapter names describe inference architectures and are independent of release names. See in-process inference for the full contract.

For Hazard, bind the independent classifier contract label_scores.v1 and pin operating_point.json with its SHA-256. The policy binds the weights, tokenizer, execution settings, overlapping windows and twelve thresholds. Decisions select labels without replacing those thresholds. The reference configuration includes this complete pattern.

PII's overlapping scan and Hazard's windowed policy differ from whole-document classification. Select the policy appropriate to the task, and measure latency with the input lengths your application will send.

Inference engines and hardware​

Native Vela artifacts run through Candle. CPU execution is validated, including 32K inputs. CUDA remains an available Candle backend; NVIDIA performance must be measured on the target hardware.

ONNX is the portable inference format for the ORT provider. The Vela AMD recipe explicitly binds all ten task models to AMD GPU execution: CK FlashAttention through ROCm for Embedding and Reranker, a fixed 8K ROCm graph for Guard, and MIGraphX for the other classifiers. It pins each artifact and preserves the published operating policies. --platform amd selects the AMD image and device access; it does not make every authored model use a GPU or override an explicit CPU deployment.

The complete signal pipeline is measured with an 8K input budget. Standalone Embedding and Reranker execution is qualified through 32K; Hazard uses its qualified 2,048-token windows within a 32K logical budget. These limits do not establish 32K AMD execution for all classifiers. Initial GPU compilation and warm request latency are separate measurements.

For longer Domain and FactCheck requests, use the optional 32K ROCm deployments. They require more GPU memory and add latency for short inputs.

The Embedding and Reranker repositories include FP32 ONNX graphs with shared external weights. The full representation uses onnx/model.onnx; reduced representations require their matching trained layer or layer/dimension graph. The downloader resolves a full-size selection from the model's encoder configuration, so an explicit full selection can use the primary graph. The CK variants use onnx/model_fa.onnx for the full 22-layer, 768-dimensional representation. Select that exact head, device: rocm:0, custom_ops_profile: ck_flash_attention and precision: native. Reranker's pair_scorer must match the graph: reduced exits use onnx/model_fa_layer_N_dim_D.onnx with the same layer and dimension. Embedding uses matching onnx/model_fa_layer_N.onnx companions. These graphs share the published external weights and retain the portable exports.

Replacing native weights also requires regenerating the corresponding ONNX artifacts before publishing the update.

All models expose their supported input length, usage and comparable evaluation results in their model cards. Published comparisons use the previous mmBERT family on matched evaluation data. Quality scores, maximum accepted input length and inference performance measure different properties.

Verify live routing and reranking​

For the Vela AMD recipe, download and validate the complete configuration, then start it with the AMD image. Connect an existing vLLM backend served as vela-default at vllm:8000, as explained in the recipe's Model Card.

curl --fail --location --output vela-amd.yaml \
https://raw.githubusercontent.com/vllm-project/semantic-router/main/config/recipes/vela-amd/config.yaml
vllm-sr config validate --config vela-amd.yaml
vllm-sr serve --platform amd --config vela-amd.yaml

Route Preview returns actual signal values, decisions and per-signal latency. Keep its input within the recipe's 8K classifier budget:

curl --fail 'http://localhost:8080/api/v1/routing/preview?trace=true' \
-H 'Content-Type: application/json' \
-d '{"model":"vela-auto","text":"Help me debug this Python program."}' \
| jq '{decision_result, signal_confidences, signal_values, signal_errors, metrics, eval_trace}'

Use the public model name declared by your entrypoint. Check /ready before sending requests and inspect the returned signal values and evaluation trace.

Reranking executes inside the vectorstore RAG plugin after routing. Bind rag.reranker and enable rerank as described in neural reranking. Verify it through a real chat request with indexed documents. Its request trace records candidate count, reranker identity, relevance scores and reranking latency; routing Preview does not execute the RAG plugin.

Preserve an earlier deployment​

Explicit older model paths and aliases retain their original repositories. Select the matching mapping file, threshold and input policy when reproducing an earlier classifier. Upgrading to Vela does not rewrite explicit model choices.

Changing embedding weights or representation changes the vector space. Response caches and memory isolate data by representation identity. Existing vector stores require compatible embeddings or reindexing; old data is not silently adopted or deleted. See stores and tools.