---
license: apache-2.0
language:
- en
pipeline_tag: image-text-to-text
library_name: transformers
tags:
- multimodal
- vision-language
- moe
- mixture-of-experts
- reasoning
- thinking
- code
- agentic
- tool-use
- long-context
- qwen3
- qwen3-vl
model-index:
- name: Salience-1.5-Flash
results: []
new_version: vectionlabs/Salience-1.5-Pro
---
# Salience 1.5 — Flash
**A 30B-A3B Mixture-of-Experts multimodal agent — only 3.3B active params per token: the decode speed of a small model with the reach of a large one.**
*Vection Labs*
[Weights](https://huggingface.co/vectionlabs/Salience-1.5-Flash) ·
[Benchmarks](#benchmarks) ·
[Quickstart](#quickstart) ·
[Fast inference](#fast-inference-2×-t4-no-gguf) ·
[Limitations](#limitations--responsible-use)
---
## Abstract
Salience 1.5 Flash is a sparse **Mixture-of-Experts** vision-language model: **30B total parameters,
but only 3.3B active per token**. It decodes at the speed of a ~3B dense model while reasoning with
the capacity of a 30B one — built for **hard, practical work**: writing and debugging real code,
driving tools and agents, designing production-grade interfaces, and visual understanding over
images and video, inside a single model with a context window of up to **1M tokens**.
It is the fast, multimodal tier of the **Salience** family — engineered for people who care less
about chat pleasantries and more about whether the model can *do the thing*: ship the function, find
the bug, call the right tool, design the screen, read the diagram.
## Highlights
- **Bigger and faster at once.** Sparse activation means ~3B of compute for 30B of knowledge —
roughly **2× the decode speed** of a dense 8B at far greater capacity.
- **Code & agentic first.** Tuned to produce runnable code, repo-scale edits, and well-formed
native tool calls.
- **Designs, not just describes.** Defaults to modern stacks (React/Next, TypeScript, Tailwind,
shadcn/ui), real design tokens, accessible (WCAG) semantics, and tasteful motion.
- **Reasoning that shows its work.** Structured, inspectable chains of thought — with a one-token
switch to turn them off when you want instant answers.
- **Genuinely multimodal.** Images **and** video are first-class inputs, not bolted-on captioning.
- **Long context.** Up to **1M tokens** via interleaved multimodal RoPE — whole repos, long papers,
or long videos in a single prompt.
- **Fast on modest hardware.** Runs on **2× T4 with no GGUF** (~17 GB in 4-bit NF4).
- **Open weights.** Apache-2.0, `transformers`-native, single-file deployment.
## Model overview
| | |
|---|---|
| **Parameters** | 30B total / **3.3B active** (Mixture-of-Experts) |
| **Modalities** | text, image, video → text |
| **Context window** | up to 1,000,000 tokens (256K native, interleaved multimodal RoPE) |
| **Precision** | bfloat16 master weights |
| **Architecture** | Qwen3-VL MoE (30B-A3B) + native vision encoder |
| **License** | Apache-2.0 |
| **Library** | 🤗 `transformers` (`AutoModelForImageTextToText`) |
## Architecture & capabilities
Salience 1.5 Flash is a Qwen3-VL Mixture-of-Experts model: a 30B-parameter expert network that
routes only **3.3B parameters per token**, coupled to a native vision encoder, with interleaved
multimodal RoPE carrying the context window from 256K up to **1M tokens**.
Its capability profile is built around four pillars:
- **Code & agentic execution** — runnable code, repo-scale edits, and well-formed tool calls.
- **Frontier UI/UX design** — modern stacks, design tokens, accessible semantics, tasteful motion.
- **Deep reasoning** — structured, inspectable chains of thought for math and logic.
- **Multimodal perception** — images and video as first-class inputs, not bolted-on captioning.
The vision pathway and long-context behavior are preserved end to end, so the same reasoning that
solves a hard problem also reads a chart, a UI screenshot, or a short clip.
### Agent persona & thinking control
With **no system prompt**, the model adopts an elite **software-engineering + design agent** persona
automatically — pass your own `system` message to override it completely. Thinking is **on by
default**; append **`/no_think`** (or pass `enable_thinking=False`) for instant direct answers.
## Intended use
Salience 1.5 Flash targets **technical assistance, coding & design agents, and research**:
- Code generation, explanation, debugging, review, and repo-scale tasks.
- Frontend / UI generation and design-system work.
- Agentic / tool-using workflows that emit structured calls.
- Step-by-step math and quantitative reasoning.
- Visual question answering and document/diagram/chart/UI understanding.
- Video understanding over short clips, and long-document / long-context analysis.
It is **not** intended for high-stakes decisions without human review, nor as a source of truth for
medical, legal, or financial advice.
## Benchmarks
All results use a single reproducible evaluation harness with greedy/CoT settings.
### Reasoning, math & code
| Benchmark | Setting | Salience-1.5-Flash |
|---|---|---|
| GSM8K | 0-shot CoT, exact match | — |
| MATH-500 | 0-shot CoT, exact match | — |
| HumanEval | 0-shot, pass@1 | — |
| MBPP | 3-shot, pass@1 | — |
| MMLU | 0-shot | — |
### Multimodal
| Benchmark | Setting | Salience-1.5-Flash |
|---|---|---|
| MMMU (val) | 0-shot | — |
| MathVista (testmini) | 0-shot | — |
| DocVQA (val) | 0-shot, ANLS | — |
*The evaluation protocol, prompts, and answer-extraction logic are fixed and reproducible
end-to-end.*
## Quickstart
```python
from transformers import AutoModelForImageTextToText, AutoProcessor
from qwen_vl_utils import process_vision_info
import torch
model_id = "vectionlabs/Salience-1.5-Flash"
proc = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id, dtype=torch.bfloat16, device_map="auto"
)
messages = [{
"role": "user",
"content": [
{"type": "image", "image": "https://example.com/diagram.png"},
{"type": "text", "text": "Explain what this diagram proves, step by step."},
],
}]
text = proc.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
imgs, vids = process_vision_info(messages)
inputs = proc(text=[text], images=imgs, videos=vids, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=1024)
print(proc.batch_decode(out[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)[0])
```
Text-only works the same way with a plain `{"type": "text", ...}` message. Append **`/no_think`**
to any prompt for the fastest, direct answer.
## Fast inference (2× T4, no GGUF)
T4 (Turing) has no bf16 and no FlashAttention2 — use **fp16 + SDPA**, or 4-bit NF4 to fit ~17 GB:
```python
import torch
from transformers import AutoModelForImageTextToText, AutoProcessor, BitsAndBytesConfig
repo = "vectionlabs/Salience-1.5-Flash"
bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=torch.float16)
model = AutoModelForImageTextToText.from_pretrained(
repo, quantization_config=bnb, device_map="auto", attn_implementation="sdpa")
proc = AutoProcessor.from_pretrained(repo)
```
Because only 3.3B parameters are active per token, decode stays fast even at 30B scale.
## Speed & efficiency
- **Sparse MoE.** ~3B active params/token means memory traffic per token is roughly halved versus a
dense model of equal quality — the core "bigger AND faster" lever.
- **Adaptive thinking.** Append **`/no_think`** for instant direct answers, or keep thinking on for
deep step-by-step reasoning on hard math and multi-step agentic planning — you spend latency only
when the task is worth it.
- **Speculative decoding** with a small same-family draft (`Qwen/Qwen3-0.6B`) gives a lossless
**1.5–2.5×** speedup on code and structured text (`assistant_model=` in `transformers`, or
`--speculative-model` in vLLM).
- **Production serving.** On Ampere+ GPUs use vLLM (fp16 / AWQ) for high-throughput deployment.
## Prompting tips
- **Code:** specify language, constraints ("no external libraries"), and the exact I/O contract.
- **Design:** name the stack and the look you want; it will return tokens, semantics, and structure.
- **Agentic / tools:** give the tool schema and ask for the call as strict JSON.
- **Math/logic:** ask it to **reason step by step**; it is tuned to externalize its work.
- **Vision:** put the image/video **before** the question in the message content.
- **Sampling (Qwen3 family):** thinking → `temperature=0.6, top_p=0.95, top_k=20`;
direct answers → `temperature=0.7, top_p=0.8, top_k=20`.
## Long context (large codebases)
256K out of the box. To push toward ~1M, enable YaRN in `config.json`:
```json
"rope_scaling": { "type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144 }
```
(Small short-context quality cost — enable only when you actually need >256K.)
## Deployment
- **Single / dual GPU:** loads in bf16/fp16 with `device_map="auto"`; 4-bit NF4 fits ~17 GB across
2× T4.
- **Serving:** integrates with standard `transformers` generation and vision-capable serving stacks
such as vLLM (with optional speculative decoding) for high-throughput production use.
- **Quantized formats:** GGUF and other community quantizations are supported.
## Limitations & responsible use
- Salience 1.5 Flash can be **confidently wrong**. Verify mathematical and factual claims.
- Generated code may be insecure or incorrect — review before running, never execute untrusted output.
- Long-context and long-video inputs increase latency and memory substantially.
- It inherits the licenses, biases, and failure modes of its base model. Do not use it for
surveillance, manipulation, or any use that violates applicable law or the Apache-2.0 terms.
- No audio modality.
## Citation
```bibtex
@misc{vectionlabs2026salience15flash,
title = {Salience 1.5 Flash: A Sparse-MoE Multimodal Agent},
author = {Vection Labs},
year = {2026},
url = {https://huggingface.co/vectionlabs/Salience-1.5-Flash}
}
```
---
© 2026 Vection Labs · Apache-2.0