/ Модель

Характеристики

Контекст
262 144 токена
Размер весов
10,6 ГБ
Лицензия
Apache 2.0
Архитектура
qwen3_vl · dense
Базовая модель
Qwen3-VL-Embedding-8B
Библиотека
transformers
Опубликована
22 янв 2026

Qwen3-VL-Embedding-8B-FP8

ЭмбеддингиТекст → embedding9 профессий

RamManavalan/Qwen3-VL-Embedding-8B-FP8 — мультимодальная embedding-модель, представляющая собой FP8-квантизированную версию Qwen/Qwen3-VL-Embedding-8B.

104 тыс.скачиваний за 30 дней5лайковвеса обновлены22 янв 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

В README указано, что модель подготовлена для эффективного инференса с vLLM; разработчик исходной модели — Qwen, а данный вариант опубликован пользователем RamManavalan. Модель предназначена для получения векторных представлений текста, изображений, скриншотов, видео и мультимодальных комбинаций, поэтому может применяться в семантическом поиске, сопоставлении контента и мультимодальном retrieval. Поддерживаются английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский языки.

Размерность embedding составляет 4096, максимальная длина контекста — 32K токенов. Используется FP8_DYNAMIC-квантизация W8A8: веса слоёв декодера представлены в FP8 E4M3 с поканальным масштабированием, активации квантизуются динамически по токенам во время выполнения. Vision Encoder и выходные embedding сохраняются в BF16. Размер модели сокращён примерно с 16 до 9 ГБ, что даёт около 45% экономии памяти; калибровочные данные не требуются. Для инференса рекомендуется vLLM версии 0.14.0 или новее с pooling runner; требуется GPU NVIDIA с поддержкой FP8 и compute capability не ниже 8.9, а минимальный объём VRAM заявлен около 10 ГБ.

Сильными сторонами являются поддержка нескольких модальностей, высокая эффективность инференса и сохранение большей части качества исходной модели; для FP8 заявлено обычно более 95% исходной точности, однако отдельные результаты приведены для базовой модели, а не как независимая оценка этой квантизированной версии. Ограничения включают требования к совместимому FP8-оборудованию и зависимость от vLLM или специальной конфигурации Transformers. Модель распространяется по лицензии Apache-2.0.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Qwen3-VL-Embedding-8B-FP8

This is an FP8 quantized version of Qwen/Qwen3-VL-Embedding-8B, optimized for efficient inference with vLLM.

Model Overview

AttributeValue
Base ModelQwen/Qwen3-VL-Embedding-8B
QuantizationFP8 Dynamic (W8A8)
Original Size~16 GB (BF16)
Quantized Size~9 GB (FP8)
Memory Savings~45%
Embedding Dimension4096
Supported InputsText, Images, Videos, Multimodal
Context Length32K tokens

Highlights

  • Multimodal Versatility: Handles text, images, screenshots, and video inputs
  • Efficient Inference: ~45% memory reduction with minimal accuracy loss
  • vLLM Compatible: Works with vLLM's pooling runner for high-throughput embedding
  • No Calibration Required: Uses FP8_DYNAMIC scheme (data-free quantization)

Quantization Details

ComponentPrecisionNotes
Vision Encoder (ViT)BF16Preserved for accuracy
LLM Decoder LayersFP8Quantized for efficiency
EmbeddingsBF16Preserved
  • Scheme: FP8_DYNAMIC
    • Weights: FP8_E4M3 (per-channel quantization)
    • Activations: Dynamic per-token quantization at runtime
  • Tool: llm-compressor
  • Calibration: None required (data-free quantization)

Hardware Requirements

  • GPU: NVIDIA GPU with FP8 support (compute capability >= 8.9)
    • Blackwell: RTX 5090, RTX 5080
    • Ada Lovelace: RTX 4090, RTX 4080
    • Hopper: H100, H200
  • VRAM: ~10GB minimum for inference

Usage

With vLLM (>=0.14.0) (Recommended)

from vllm import LLM, EngineArgs
import numpy as np

# Initialize vLLM with pooling runner
engine_args = EngineArgs(
    model="RamManavalan/Qwen3-VL-Embedding-8B-FP8",
    runner="pooling",
    dtype="bfloat16",
    trust_remote_code=True,
)
llm = LLM(**vars(engine_args))

# Prepare inputs
tokenizer = llm.get_tokenizer()

def format_input(text, instruction="Represent the user's input."):
    conversation = [
        {"role": "system", "content": [{"type": "text", "text": instruction}]},
        {"role": "user", "content": [{"type": "text", "text": text}]}
    ]
    prompt = tokenizer.apply_chat_template(
        conversation, tokenize=False, add_generation_prompt=True
    )
    return {"prompt": prompt}

# Get embeddings
inputs = [
    format_input("A woman playing with her dog on the beach."),
    format_input("Machine learning for image classification."),
]
outputs = llm.embed(inputs)

# Extract embeddings
embeddings = np.array([o.outputs.embedding for o in outputs])
print(f"Embeddings shape: {embeddings.shape}")  # (2, 4096)

# Compute similarity
similarity = embeddings[0] @ embeddings[1]
print(f"Similarity: {similarity:.4f}")

With vLLM (>=0.14.0) Server

# Start the server
vllm serve RamManavalan/Qwen3-VL-Embedding-8B-FP8 --task embed

# Query via API
curl http://localhost:8000/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{"input": "Your text here", "model": "RamManavalan/Qwen3-VL-Embedding-8B-FP8"}'

With Transformers

import torch
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration

model = Qwen3VLForConditionalGeneration.from_pretrained(
    "RamManavalan/Qwen3-VL-Embedding-8B-FP8",
    dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto",
)
processor = AutoProcessor.from_pretrained(
    "RamManavalan/Qwen3-VL-Embedding-8B-FP8",
    trust_remote_code=True,
)

# Prepare input
messages = [
    {"role": "system", "content": [{"type": "text", "text": "Represent the user's input."}]},
    {"role": "user", "content": [{"type": "text", "text": "Your text here"}]}
]
prompt = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[prompt], return_tensors="pt", padding=True).to(model.device)

# Get embedding (last-token pooling)
with torch.no_grad():
    outputs = model.model(**inputs, output_hidden_states=True)
    # Get the last non-padding token
    seq_len = inputs['attention_mask'].sum(dim=1) - 1
    embedding = outputs.last_hidden_state[0, seq_len[0]]
    embedding = torch.nn.functional.normalize(embedding, p=2, dim=-1)

print(f"Embedding shape: {embedding.shape}")  # (4096,)

Using the Helper Class

This repository includes a helper class for easier embedding extraction:

from scripts.qwen3_vl_embedding import Qwen3VLEmbedder

# Initialize
model = Qwen3VLEmbedder(model_name_or_path="RamManavalan/Qwen3-VL-Embedding-8B-FP8")

# Get embeddings for text, images, or multimodal inputs
inputs = [
    {"text": "A dog on the beach"},
    {"image": "path/to/image.jpg"},
    {"text": "What is in this image?", "image": "path/to/image.jpg"},
]
embeddings = model.process(inputs)
print(f"Embeddings shape: {embeddings.shape}")  # (3, 4096)

Benchmark Results

The base model achieves state-of-the-art performance on multimodal benchmarks:

BenchmarkScore
MMEB-V2 Overall77.9
MMTEB Mean67.88

FP8 quantization typically preserves >95% of the original model's accuracy.

Creation

This model was quantized using llm-compressor:

from transformers import Qwen3VLForConditionalGeneration, AutoProcessor
from llmcompressor import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier

# Load model
model = Qwen3VLForConditionalGeneration.from_pretrained(
    "Qwen/Qwen3-VL-Embedding-8B",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto",
)

# FP8 quantization recipe (data-free)
recipe = QuantizationModifier(
    targets="Linear",
    scheme="FP8_DYNAMIC",
    ignore=[
        "lm_head",
        r"re:model\.visual\..*",  # Keep vision encoder in BF16
    ]
)

# Apply quantization
oneshot(model=model, recipe=recipe)

# Save
model.save_pretrained("Qwen3-VL-Embedding-8B-FP8", save_compressed=True)

Citation

If you use this model, please cite the original Qwen3-VL-Embedding paper:

@article{qwen3vlembedding,
  title={Qwen3-VL-Embedding and Qwen3-VL-Reranker: A Unified Framework for State-of-the-Art Multimodal Retrieval and Ranking},
  author={Li, Mingxin and Zhang, Yanzhao and Long, Dingkun and Chen, Keqin and Song, Sibo and Bai, Shuai and Yang, Zhibo and Xie, Pengjun and Yang, An and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang},
  journal={arXiv preprint arXiv:2601.04720},
  year={2026}
}

License

Apache 2.0 (same as base model)

Acknowledgments

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Готовая квантизация поддерживается только для текстовых LLM (vLLM).

Класс архитектуры
Qwen3VLForConditionalGeneration
Ревизия весов
e20bfb5

0 моделей