- AlphaRoute-VL-0.8B (Preview)
AlphaRoute-VL-0.8B (Preview)
AlphaRoute-VL-0.8B is a sub-1B parameter Vision-Language Small Language Model designed for instruction-conditioned multimodal semantic routing, visual entity extraction, and structured JSON output.
AlphaRoute learns the meta-task of routing: it does not rely on static, hardcoded labels. Given an arbitrary task instruction, a dynamic ontology (with descriptions), a target JSON schema, and a visual input (or text query), AlphaRoute-VL parses the evidence and outputs structured JSON conforming to the requested schema.
⚠️ Important Architectural & Training Disclosure
Honest Disclosure on Training State:
AlphaRoute-VL-0.8Bwas created by surgically transplanting the pre-trained native ViT visual encoder and cross-attention weights (model.visual.*) fromQwen/Qwen3.5-0.8B-Baseback into the hardened instruction-tuned text routing weights ofAlphaRoute-0.8B-v1.5.It has NOT yet undergone explicit end-to-end multimodal SFT fine-tuning on image-text pairs.
Despite having zero explicit multimodal routing supervision, this zero-shot stitched architecture demonstrates emergent visual perception: it successfully reads image pixels (OCR, UI modals, defect photos, scanned invoices), maps visual cues to arbitrary runtime categories, and extracts pixel-grounded entities into structured JSON fields.
🌟 Key Capabilities & Highlights
- Dual-Mode Inference (Multimodal + Pure Text):
- Multimodal Mode: Pass an image alongside instructions and schemas to perform visual intent classification and OCR slot extraction.
- Pure Text Mode: When passed text-only queries (
images=None), the vision encoder is completely bypassed. It retains 100% of AlphaRoute-0.8B-v1.5's state-of-the-art text routing performance with zero degradation.
- Dynamic Runtime Ontologies: No fixed classes. Define candidate labels, descriptions, and JSON schemas on the fly per request.
- Structured JSON Slot Filling: Directly extracts visual tokens (error codes, transaction IDs, monetary amounts, tracking numbers) from pixel buffers into designated schema keys.
- Lightweight & Fast: At 0.8B parameters (~1.66 GB fp16/bf16 memory footprint), it runs at edge speeds on consumer hardware (MacBook M-series MPS, mobile devices, single low-cost cloud GPUs).
📊 Benchmark Evaluation 1: Text-Based Routing (100% Retained from v1.5)
Because pure text queries bypass the vision encoder, AlphaRoute-VL-0.8B retains the exact state-of-the-art benchmark scores of AlphaRoute-0.8B-v1.5:
| Benchmark Dimension | AlphaRoute-VL-0.8B | AlphaRoute-0.8B v1.5 | AlphaRoute-0.8B v1.1 | DeepSeek-V4 Flash | Azure GPT-5.4-nano |
|---|---|---|---|---|---|
| Banking77 Intent (500 Fixed Split) | 95.40% | 95.40% | 92.60% | 93.00% | 85.40% |
| CLINC150 Multi-Domain (500 Fixed + OOS) | 94.00% | 94.00% | 73.20% | 71.40% | 54.40% |
| HWU64 Zero-Shot (1,076 Held-Out) | 89.96% | 89.96% | 83.18% | 85.40% | 81.20% |
| Golden 300 Enterprise (300 Scenarios) | 97.67% | 97.67% | 95.67% | 94.00% | 92.33% |
| Hard Enterprise 100 Suite | 95.00% | 95.00% | 80.00% | 86.00% | 84.00% |
| Adversarial Text OOS Rejection (20 Probes) | 100.00% | 100.00% | 55.00% | 75.00% | 65.00% |
| CLINC150 In-Scope Intent Accuracy | 96.06% | 96.06% | 67.73% | 65.02% | 45.07% |
| JSON Schema Validity | 100.00% | 100.00% | 100.00% | 100.00% | 99.00% |
📊 Benchmark Evaluation 2: Multimodal Visual Routing (300 Test Cases)
Evaluated on the Golden VL Benchmark (300 distinct procedural scenarios) across 6 domains with pixel-grounded truth:
| Evaluation Metric | AlphaRoute-VL-0.8B Score | Details |
|---|---|---|
| Overall Category Accuracy | 95.33% (286 / 300) |
All 5 active enterprise domains + 50 adversarial OOS traps |
| In-Scope Enterprise Routing | 100.00% (250 / 250) |
100% across DevOps, FinTech, Web UI, Logistics, and KYC |
| Visual OCR Slot Extraction | 77.92% (600 / 770) |
Extracted exact text values (codes, amounts, IDs) from raw pixels |
| Adversarial OOS Image Rejection | 72.00% (36 / 50) |
Correctly rejected sunsets, coffee, and abstract art paired with technical tasks |
| JSON Schema Validity | 100.00% (300 / 300) |
100% syntactically valid JSON conforming to output schema |
| Inference Latency (Apple Silicon MPS) | 2.59s / query |
Evaluated on MacBook Air M4 (16GB Unified Memory) |
Domain Breakdown (300 Cases)
- DevOps & Cloud SRE (50/50 - 100.0%): K8s OOMKilled (
exit_code: 137), TLS cert expired (code: 526), DB pool exhaustion, Disk full (errno: 28), CrashLoopBackOff (SIGSEGV 139). - FinTech & Payments (50/50 - 100.0%): AML cash structuring flags, SWIFT clearing receipts, Stripe card declines, B2B vendor invoices, chargeback disputes.
- Web & Mobile UI Bugs (50/50 - 100.0%): 504 Gateway Timeout modals, 403 Forbidden screens, 502 Bad Gateway, React runtime
TypeError, 503 Maintenance windows. - Logistics & Claims (50/50 - 100.0%): Crushed delivery parcel damage proof, address geofence mismatch, RMA return barcode labels, stalled hub scans, clean delivery proofs.
- Identity & KYC (50/50 - 100.0%): State driver licenses (valid vs expired), international passports with MRZ lines, corporate employee badges, unreadable flash glare audit rejections.
- Adversarial Out-of-Scope (36/50 - 72.0%): Procedural non-technical images (sunsets, geometric art, food illustrations) paired with technical schemas. Zero-shot flagged 72% as
out_of_scope: true.
🚀 Quickstart & Usage
Installation
pip install torch transformers pillow accelerate
1. Multimodal Visual Routing (Image + Schema)
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForImageTextToText
model_id = "NamanAgnih0tri/AlphaRoute-VL-0.8B"
device = "mps" if torch.backends.mps.is_available() else ("cuda" if torch.cuda.is_available() else "cpu")
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map=device
)
# Load input image
image = Image.open("path/to/server_error.png").convert("RGB")
task = "Triage server crash screenshot and extract error telemetry."
categories = {
"k8s_oom_kill": "Out of memory container crash, exit code 137.",
"tls_cert_expired": "Certificate expiration or handshake failure.",
"db_pool_exhausted": "Database connection pool saturated."
}
schema = {
"incident_type": "k8s_oom_kill | tls_cert_expired | db_pool_exhausted | null",
"exit_code": "string | null",
"failed_pod": "string | null",
"out_of_scope": "boolean"
}
cat_lines = "\n".join([f"- {k}: {v}" for k, v in categories.items()])
prompt = f"""You are a precise semantic routing engine. Output only valid JSON.
TASK:
{task}
CATEGORIES:
{cat_lines}
OUTPUT SCHEMA:
{schema}
INPUT:
<|vision_start|><|image_pad|><|vision_end|>
"Please diagnose the attached error screenshot."
JSON:"""
inputs = processor(text=prompt, images=image, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=150, do_sample=False)
response = processor.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)
# Expected Output:
# {"incident_type": "k8s_oom_kill", "exit_code": "137", "failed_pod": "payment-svc-129", "out_of_scope": false}
2. Pure Text Routing (Text Only)
prompt = """You are a precise semantic routing engine. Output only valid JSON.
TASK:
Route incoming fintech customer inquiry.
CATEGORIES:
- dispute_charge: Unauthorized transaction or card fraud claim.
- card_replacement: Damaged or lost card replacement request.
- wire_transfer: Inquiries about international SWIFT wire status.
OUTPUT SCHEMA:
{"route": "dispute_charge | card_replacement | wire_transfer | null", "out_of_scope": "boolean"}
INPUT:
"Someone used my debit card at an electronics store in Miami yesterday and I live in Chicago!"
JSON:"""
# When images is omitted, the vision tower is completely bypassed
inputs = processor(text=prompt, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=60, do_sample=False)
response = processor.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)
# Output: {"route": "dispute_charge", "out_of_scope": false}
🛠️ Model Architecture Details
- Base Architecture:
Qwen3_5ForConditionalGeneration(Qwen3-VL framework) - Parameter Count: 0.8 Billion (~800M parameters)
- Vision Encoder: Native Qwen3.5 ViT with spatial merger (
model.visual.*) - Language Backbone: Qwen3.5 24-layer hybrid linear/full attention with rotary position embeddings
- Context Window: 262,144 tokens
- Weights Precision:
bfloat16safetensors (1.75 GB download)
📜 Citation & Attribution
@misc{alpharoute_vl_2026,
author = {Naman Agnihotri},
title = {AlphaRoute-VL-0.8B: Instruction-Conditioned Multimodal Semantic Routing SLM},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/NamanAgnih0tri/AlphaRoute-VL-0.8B}}
}
- Downloads last month
- 30
Model tree for NamanAgnih0tri/AlphaRoute-VL-0.8B
Base model
Qwen/Qwen3.5-0.8B-Base