Vela Omni Mini
Text, images, speech and environmental sounds in one embedding space. Vela Omni Mini supports multimodal search, routing and clustering with normalized vectors that can be compared directly.
Try Vela Studio · Vela collection · Detailed evaluation
Model overview
| Feature | Value |
|---|---|
| Modalities | Text, images, speech and environmental sounds |
| Total parameters | 1.36B (1,361,475,288) |
| Embedding dimensions | 768 |
| Text context | 32,768 tokens, including any instruction prefix and special tokens |
| Text modes | Default shared space; optional task or custom instruction |
| Audio input | Original-rate mono PCM, up to 30 seconds |
| Output | L2-normalized vectors; cosine similarity |
| License | Apache 2.0; see component attribution |
Evaluation
Scores are 0–100; higher is better. The comparison uses the same held-out evaluation examples, complete retrieval pools and 128-token text cap for both models. Bold marks improvement over the original large model. These known test pools are reused across releases.
| Metric | Original large | Current Mini |
|---|---|---|
| Banking77 · Accuracy | 75.78 | 86.56 |
| MASSIVE English · Accuracy | 72.31 | 80.96 |
| COCO · Image → text · R@1 | 42.53 | 67.44 |
| COCO · Text → image · R@1 | 35.04 | 61.60 |
| LibriSpeech · Audio → text · R@1 | 56.99 | 86.14 |
| LibriSpeech · Text → audio · R@1 | 78.58 | 94.90 |
The common protocol uses labeled TRAIN prototypes for text classification and all matching positives for retrieval; it is separate from official MTEB classification. All 14 metrics, Macro-F1, exact counts and uncertainty.
Standard benchmarks and rankings
The primary metric, Mean(TaskType), weights each task type equally. Mean(Task) weights individual tasks equally and is supplementary. Rankings use complete benchmark results from the September 17, 2026 registry snapshots plus both current Vela models; “≤ size” counts models with no more total parameters than this model.
| Benchmark | Mean(TaskType) | Global rank | Rank at ≤ size | Gap to best at ≤ size | Mean(Task) |
|---|---|---|---|---|---|
| MTEB English v2 · 41 tasks · instructed text | 64.68 | 38/188 | 10/134 | 3.78 pp | 70.38 |
| MAEB audio-only · 19 tasks | 54.87 | 12/64 | 5/50 | 2.85 pp | 47.77 |
Mini ranks 10/134 on instructed English and 5/50 on audio by Mean(TaskType) among models with no more than its 1.361B total parameters. Its supplementary audio Mean(Task) rank is 3/50. English uses fixed official MTEB task instructions; audio and the scorecard above use the default shared mode. A new comparison with the same text weights and evaluation settings raises Mean(TaskType) from 58.79 to 64.68 (+5.89 pp): 38 tasks improve, three decline, and all seven task types improve. This uses a fresh matched raw control; the historical default result is retained separately. Matched comparison and regressions. Snapshot comparisons include single-modality specialists and reported protocols; the original large has not been evaluated on these complete panels. Full rankings and both aggregate metrics · All task scores and methods.
Audio Mean(TaskType) rises from 52.94 to 54.87 without adding parameters. SpeechCommands zero-shot falls from 40.35 to 38.12, and several speech retrieval and audio classification metrics decline. Every change.
Quality and model size
Each plot combines the full benchmark score, global and size-constrained ranks, and the gap to the best model at no greater total size. Every complete model with a known size is plotted, including models below the observed Pareto frontier. Highlighting Vela does not imply frontier membership. Click either figure for full resolution.
Selected task strengths
These task-level comparisons highlight specific strengths; they do not establish overall benchmark SOTA.
Comparison data and methodology · Figure gallery
Usage
Use PyTorch and a matching torchaudio build, Transformers 4.57.6, Hugging Face Hub, safetensors, NumPy and Pillow. CPU loading was verified with PyTorch/torchaudio 2.8.0:
import sys
from huggingface_hub import snapshot_download
path = snapshot_download("llm-semantic-router/Vela-1.0-Omni-Mini")
sys.path.insert(0, path)
from vela_omni import VelaOmni
model = VelaOmni.from_pretrained(path, device="cpu")
vectors = model.encode_text(["A bicycle beside a building.", "Someone is reading aloud."])
print(vectors.shape) # (2, 768)
The default mode above keeps text in the shared image/audio space. For text retrieval, opt into an instruction and keep documents unprefixed:
queries = model.encode_text(
["How do I reset my password?"],
instruction="Given a search query, retrieve passages that answer the query.",
role="query",
)
documents = model.encode_text(["Open Settings and choose Reset password."], role="document")
scores = queries @ documents.T
task="retrieval", role="query" selects a generic preset; custom instruction= and task= are mutually exclusive. The benchmark uses the fixed official task instructions, not a preset sweep. Instructions are intended for text tasks; use the default mode for cross-modal comparisons.
The 32,768-token limit includes the instruction prefix and special tokens. Longer formatted inputs raise ValueError; pass truncate=True only when whole-input truncation is intended. Modes, roles and context rules.
Pass a list of Pillow images to model.encode_image(images). Pass original-rate mono NumPy waveforms and their actual rate, for example model.encode_audio(waveforms, sampling_rate=48000) for 48 kHz recordings. Each waveform must be at most 30 seconds; the model independently derives its 16 kHz speech and 48 kHz sound inputs. Existing 16 kHz recordings are also accepted. Compare normalized vectors with their dot product. To route media, embed each destination’s name and description, then select the closest vector. To discover routing categories, cluster media embeddings and inspect each group. Similarity scores are rankings, not calibrated probabilities.
Training and license
Cross-modal alignment uses COCO image–caption pairs from the CC-BY 2.0 image subset and LibriSpeech speech–transcript pairs (CC-BY 4.0). COCO annotations, Banking77, and MASSIVE are provided under CC-BY 4.0.
The audio weights retain the existing backbones and the residual projection trained with TRAIN-only speech and event geometry constraints. This release adds an optional text API without changing any model weights.
Residual audio alignment additionally uses 3,299 FSD50K TRAIN recordings (CC0 or CC-BY 3.0); per-recording attribution is included. The added CLAP unfused checkpoint is Apache 2.0; its upstream code license is retained separately.
The text component uses Qwen3-Embedding-0.6B, licensed under Apache 2.0. The repository includes the native model code, component configurations, and tokenizer and processor files. See NOTICE and LICENSE for component attribution and license terms.