/ Модель

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

Контекст
128 000 токенов
Параметры
3,1 млрд
Размер весов
7,5 ГБ
Архитектура
qwen2_5_vl · dense
Библиотека
transformers
Опубликована
1 июл 2025

jina-embeddings-v4-vllm-retrieval

ЭмбеддингиИзображение, текст → embedding9 профессий

Мультимодальная модель Jina AI для многоязычного поиска по визуальным документам и их содержимому.

105 тыс.скачиваний за 30 дней32лайкавеса обновлены17 сен 2025

Бенчмарки

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

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

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

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

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

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

Jina AI разработала эту версию jina-embeddings-v4 для мультимодального и многоязычного поиска по визуальным документам. Веса адаптера retrieval объединены с базовой моделью Qwen2.5-VL, что обеспечивает совместимость с vLLM без специальной обработки адаптеров. Модель содержит 3,1 млрд параметров, использует архитектуру Qwen2.5-VL и поддерживает контекст до 128 000 токенов.

Модель предназначена для поиска документов по текстовым и визуальным запросам, в том числе для многоязычного поиска по содержимому документов. Репозиторий содержит веса в формате safetensors; метаданные указывают библиотеку Transformers. Лицензия в предоставленных данных не указана.

Сценарии применения

  • поиск документов по текстовому запросу
  • поиск визуально похожих страниц документов
  • многоязычный поиск по коллекции документов
  • извлечение релевантных страниц из визуального архива

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

Jina Embeddings v4: Universal Embeddings for Multimodal Multilingual Retrieval

Original Model | Blog | Technical Report | API

Model Overview

This repository hosts a vLLM-compatible version of jina-embeddings-v4 with the retrieval adapter merged into the base Qwen2.5-VL weights. This architecture modification enables native compatibility with vLLM without requiring custom adapter-handling code.

Usage

import torch
from PIL import Image

from vllm import LLM
from vllm.config import PoolerConfig
from vllm.inputs.data import TextPrompt

# Initialize model
model = LLM(
    model="jinaai/jina-embeddings-v4-vllm-retrieval",
    task="auto",
    override_pooler_config=PoolerConfig(pooling_type="ALL", normalize=False),
    dtype="float16",
)

# Create text prompts
query = "Overview of climate change impacts on coastal cities"
query_prompt = TextPrompt(
    prompt=f"Query: {query}"
)

passage = "The impacts of climate change on coastal cities are significant.."
passage_prompt = TextPrompt(
    prompt=f"Passage: {passage}"
)

# Create image prompt
image = Image.open("<path_to_image>")
image_prompt = TextPrompt(
    prompt="<|im_start|>user\n<|vision_start|><|image_pad|><|vision_end|>Describe the image.<|im_end|>\n",
    multi_modal_data={"image": image},
)

# Encode all prompts
prompts = [query_prompt, passage_prompt, image_prompt]
outputs = model.encode(prompts)


def get_embeddings(outputs):
    VISION_START_TOKEN_ID, VISION_END_TOKEN_ID = 151652, 151653

    embeddings = []
    for output in outputs:
        if VISION_START_TOKEN_ID in output.prompt_token_ids:
            # Gather only vision tokens
            img_start_pos = torch.where(
                torch.tensor(output.prompt_token_ids) == VISION_START_TOKEN_ID
            )[0][0]
            img_end_pos = torch.where(
                torch.tensor(output.prompt_token_ids) == VISION_END_TOKEN_ID
            )[0][0]
            embeddings_tensor = output.outputs.data.detach().clone()[
                img_start_pos : img_end_pos + 1
            ]
        else:
            # Use all tokens for text-only prompts
            embeddings_tensor = output.outputs.data.detach().clone()
        
        # Pool and normalize embeddings
        pooled_output = (
            embeddings_tensor.sum(dim=0, dtype=torch.float32)
            / embeddings_tensor.shape[0]
        )
        embeddings.append(torch.nn.functional.normalize(pooled_output, dim=-1))
    return embeddings

embeddings = get_embeddings(outputs)

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

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

GPU в ailist

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

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

Поиск по документам-картинкам пока не поддерживается.

Класс архитектуры
Qwen2_5_VLForConditionalGeneration
Ревизия весов
1c64a04

0 моделей