Elastic
Jina AI
Modelli
API
keyboard_arrow_down
Lettore
Leggi gli URL e cerca sul web per ottenere LLM più approfonditi.
Incorporamenti
Incorporamenti multimodali multilingue.
Riclassificazione
Strumento di riordinamento per massimizzare la pertinenza dei risultati di ricerca.
Elastic Inference Service
Esegui i modelli Jina in modo nativo all'interno di Elasticsearch.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agenti
data_object
Schema
menu_book
Documenti
Login
login
Architettura
Come iniziare
Conclusione
star
In primo piano
comunicato stampa
dicembre 04, 2025

Jina-VLM: Modello di linguaggio visivo multilingue di piccole dimensioni

Un nuovo modello di linguaggio visivo da 2B raggiunge lo SOTA sul VQA multilingue, senza perdita catastrofica di informazioni sulle attività di solo testo.
Jina AI • 7 minuti letti
Jina-VLM: Small Multilingual Vision Language Model
We present Jina-VLM, a 2.4B parameter vision-language model that achieves state-of-the-art multilingual visual question answering among open 2B-scale VLMs. The model couples a SigLIP2 vision encoder with a Qwen3 language backbone through an attention-pooling connector that enables token-efficient processing of arbitrary-resolution images. Across standard VQA benchmarks and multilingual evaluations, Jina-VLM outperforms comparable models while preserving competitive text-only performance.
arXiv.orgAndreas Koukounas
jinaai/jina-vlm · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

Stiamo rilasciando jina-vlm, un modello di linguaggio visivo con 2,4 miliardi di parametri che raggiunge prestazioni all'avanguardia nel question answering visivo multilingue tra i VLM open source da 2 miliardi di parametri. Combinando un encoder visivo SigLIP2 con un backbone linguistico Qwen3 attraverso un connettore di attention-pooling, jina-vlm offre prestazioni elevate in 29 lingue pur rimanendo sufficientemente efficiente da essere eseguito su hardware consumer.

Model Size VQA Avg MMMB Multi. MMB DocVQA OCRBench
jina-vlm 2.4B 72.3 78.8 74.3 90.6 778
Qwen2-VL-2B 2.1B 66.4 71.3 69.4 89.2 809
Qwen3-VL-2B 2.8B 71.6 75.0 72.3 92.3 858
InternVL3-2B 2.2B 69.2 73.6 71.9 87.4 835
InternVL3.5-2B 2.2B 71.6 74.6 70.9 88.5 836
Distribuzione delle prestazioni su 6 lingue nel benchmark MMMB: arabo, cinese, inglese, portoghese, russo e turco. MMMB valuta la comprensione multimodale multilingue attraverso diversi tipi di domande visive.
Distribuzione delle prestazioni su 6 lingue nel Multilingual MMBench: arabo, cinese, inglese, portoghese, russo e turco. Questo benchmark testa le capacità di ragionamento visivo e percezione cross-linguistiche.
Distribuzione delle prestazioni su 8 benchmark di visual question answering: AI2D (diagrammi), ChartQA (grafici), TextVQA (testo di scena), DocVQA (documenti), InfoVQA (infografiche), OCRBench (OCR), SEED-2-Plus (scene diverse) e CharXiv (figure scientifiche).
Distribuzione delle prestazioni su 3 benchmark di comprensione del mondo reale: RealWorldQA (scenari pratici), MME-RealWorld (percezione del mondo reale) e R-Bench (valutazione della robustezza).
Distribuzione delle prestazioni su 5 benchmark di solo testo confrontando jina-vlm con il suo backbone Qwen3-1.7B: MMLU (conoscenza), MMLU-Pro (ragionamento avanzato), GSM-8K (matematica), ARC-C (scienza) e HellaSwag (senso comune).

tagArchitettura

Architettura di jina-vlm. Le immagini vengono ridimensionate per adattarsi a una griglia di un massimo di 12 riquadri sovrapposti, più una miniatura globale. Ogni riquadro è un ritaglio quadrato di 378x378; i riquadri adiacenti si sovrappongono di 112 pixel con un passo di 266 pixel tra le origini dei riquadri. Una griglia 4x3 si estende quindi su 1176x910 pixel e le immagini che superano questa risoluzione effettiva vengono ridimensionate per adattarsi al budget dei riquadri. Ogni riquadro produce 729 patch tramite SigLIP2. Il connettore VL concatena le caratteristiche dai livelli 24 e 18, il terzultimo e il nono dall'ultimo, quindi applica l'attention pooling 2x2 per ridurre 729 token a 182 prima di proiettare sulla dimensione del decodificatore. I token visivi vengono combinati con gli Embeddings di testo per il decodificatore Qwen3.

Due sfide hanno limitato l'implementazione pratica dei VLM: le capacità multilingue spesso si degradano durante l'adattamento alla visione e i VLM di alta qualità rimangono costosi dal punto di vista computazionale. jina-vlm affronta entrambi i problemi attraverso scelte architetturali oculate (il nostro connettore di attention-pooling riduce i token visivi di 4× con un impatto minimo sulle prestazioni) e una ricetta di addestramento che preserva esplicitamente le capacità multilingue.

L'innovazione architetturale chiave è il nostro connettore visione-linguaggio. Invece di passare tutti i 729 token visivi per riquadro al modello linguistico, applichiamo un attention pooling 2×2 che lo riduce a 182 token: una riduzione di 4× con una perdita di informazioni minima. Il connettore funziona come segue:

  1. Fusione di caratteristiche multistrato: concatena le caratteristiche dai livelli ViT 18 e 24 (terzultimo e nono dall'ultimo), catturando sia i dettagli spaziali a grana fine sia la semantica di alto livello.
  2. Attention pooling: per ogni quartiere di patch 2×2, calcola una query come la media delle caratteristiche del quartiere, quindi applica l'attenzione incrociata per produrre una singola rappresentazione in pool.
  3. Proiezione SwiGLU: le caratteristiche in pool vengono proiettate sulla dimensione del modello linguistico tramite un'unità lineare gated.

Questo guadagno di efficienza è descritto di seguito:

Metric No Pooling With Pooling Reduction
Visual tokens (12 tiles + thumbnail) 9,477 2,366 4.0×
LLM prefill FLOPs 27.2 TFLOPs 6.9 TFLOPs 3.9×
KV-cache memory 2.12 GB 0.53 GB 4.0×

Poiché il ViT elabora ogni riquadro in modo identico indipendentemente dal pooling, questi risparmi si applicano esclusivamente al modello linguistico, che è il costo dominante durante l'inferenza.

tagProcedura di addestramento

Una modalità di errore comune nell'addestramento VLM è la dimenticanza catastrofica: il modello linguistico perde le sue capacità di solo testo man mano che si adatta agli input visivi. Ciò è particolarmente acuto per i modelli multilingue, in cui l'adattamento alla visione può degradare le prestazioni nelle lingue non inglesi.

Affrontiamo questo problema attraverso una pipeline di addestramento in due fasi con dati multilingue espliciti e conservazione del solo testo.

Fase 1: addestramento all'allineamento

La prima fase si concentra sul grounding semantico cross-linguistico utilizzando set di dati di didascalie che coprono diversi domini visivi: scene naturali, documenti, infografiche e diagrammi. Fondamentalmente, includiamo il 15% di dati di solo testo per mantenere la comprensione del linguaggio del backbone. Il connettore utilizza un tasso di apprendimento più elevato (2e-4) e un warmup più breve rispetto all'encoder e al decoder, consentendogli di adattarsi rapidamente mentre i componenti pre-addestrati cambiano gradualmente.

Fase 2: fine-tuning delle istruzioni

La seconda fase addestra il modello a seguire le istruzioni per attività di VQA e di ragionamento. Combiniamo dataset pubblici che coprono VQA accademico, comprensione di documenti, OCR, matematica e ragionamento, con dati di istruzioni solo testuali per mantenere le capacità linguistiche.

I dati combinati comprendono circa 5 milioni di campioni multimodali e 12 miliardi di token di testo in 29 lingue, con circa la metà in inglese e il resto in cinese, arabo, tedesco, spagnolo, francese, italiano, giapponese, coreano, portoghese, russo, turco, vietnamita, tailandese, indonesiano, hindi, bengali e altre.

tagCome iniziare

tagTramite Jina API

Forniamo un'API compatibile con OpenAI all'indirizzo https://api-beta-vlm.jina.ai.

tagImmagine da URL

Formato Esempio
URL HTTP/HTTPS https://example.com/image.jpg
URI dati Base64 data:image/jpeg;base64,/9j/4AAQ...
curl https://api-beta-vlm.jina.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -d '{
    "model": "jina-vlm",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Describe this image"},
        {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
      ]
    }]
  }'

Immagine locale (base64)

curl https://api-beta-vlm.jina.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -d '{
    "model": "jina-vlm",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "What is in this image?"},
        {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,'$(base64 -i image.jpg)'"}}
      ]
    }]
  }'

Query di solo testo

curl https://api-beta-vlm.jina.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -d '{
    "model": "jina-vlm",
    "messages": [{"role": "user", "content": "What is the capital of France?"}]
  }'

Risposta in streaming

Aggiungi "stream": true per ricevere i token man mano che vengono generati:

curl https://api-beta-vlm.jina.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -d '{
    "model": "jina-vlm",
    "stream": true,
    "messages": [{"role": "user", "content": "Write a haiku about coding"}]
  }'

Quando il servizio è in fase di avvio a freddo, riceverai:

{
  "error": {
    "message": "Model is loading, please retry in 30-60 seconds. Cold start takes ~30s after the service scales up.",
    "code": 503
  }
}

È sufficiente riprovare la richiesta dopo aver atteso.

tagTramite CLI

Il repository di HuggingFace include uno script infer.py per esperimenti rapidi:

# Single image
python infer.py -i image.jpg -p "What's in this image?"

# Streaming output
python infer.py -i image.jpg -p "Describe this image" --stream

# Multiple images
python infer.py -i img1.jpg -i img2.jpg -p "Compare these images"

# Text-only
python infer.py -p "What is the capital of France?"

tagTramite Transformers

from transformers import AutoModelForCausalLM, AutoProcessor
import torch
from PIL import Image

# Load model and processor
model = AutoModelForCausalLM.from_pretrained(
    "jinaai/jina-vlm",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(
    "jinaai/jina-vlm",
    trust_remote_code=True
)

# Load an image
image = Image.open("document.png")

# Create the conversation
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": "What is the main topic of this document?"}
        ]
    }
]

# Process and generate
inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=256, do_sample=False)
response = processor.decode(outputs[0], skip_special_tokens=True)
print(response)

tagConclusione

jina-vlm dimostra che i VLM piccoli possono ottenere una forte comprensione visiva multilingue attraverso scelte architetturali e di addestramento attente. Il connettore di attention-pooling fornisce una riduzione dei token di 4× con un impatto minimo sulle prestazioni e l'incorporazione di dati di solo testo durante l'addestramento multimodale preserva le capacità linguistiche che altrimenti si degraderebbero.

Notiamo diverse limitazioni dell'approccio attuale:

  • Overhead di tiling: l'elaborazione scala linearmente con il numero di tile. Per immagini a risoluzione molto alta, questo può diventare significativo. Inoltre, il tiling può compromettere le attività che richiedono una comprensione olistica della scena, come il conteggio degli oggetti o il ragionamento spaziale attraverso i confini delle tile. La miniatura globale mitiga parzialmente questo problema, ma gli approcci a risoluzione nativa potrebbero essere più adatti per tali attività.
  • Ragionamento multi-immagine: le prestazioni sui benchmark multi-immagine sono più deboli a causa dei dati di addestramento limitati in questo regime. L'ottimizzazione per risposte visive concise sembra essere in conflitto con il ragionamento multi-step esteso, come evidenziato dal degrado di MMLU-Pro.

Il lavoro futuro potrebbe esplorare una gestione della risoluzione più efficiente, miglioramenti mirati per il conteggio e le attività spaziali e indagare se la nostra ricetta di addestramento multilingue si trasferisce a scale di modelli più grandi.

Categorie:
star
In primo piano
comunicato stampa
rss_feed

Per saperne di più
agosto 03, 2026 • 11 minuti letti
jina-reranker-v3.5: Faster Listwise Reranking with Hybrid Attention and Self-Distillation
Jina AI
maggio 12, 2026 • 7 minuti letti
jina-embeddings-v5-omni: Embeddings for Text, Image, Audio and Video
Han Xiao
febbraio 19, 2026 • 7 minuti letti
jina-embeddings-v5-text: New SOTA Small Multilingual Embeddings
Han Xiao
Abstract digital artwork in black and white, featuring scattered dots forming letters in a halftone effect. The central lette
Lingua / tema attuale
Search Foundation
Lettore
Incorporamenti
Riclassificazione
Ottieni la chiave API Jina
Limite di velocità
Chi siamo
Notizia
Scarica il logo Jina
open_in_new
Scarica il logo Elastic
open_in_new
Stato dell'API
Elastic © 2026.SicurezzaTermini & CondizioniPrivacyGestisci i cookieNon vendere né condividere le mie informazioni personali
Questo sito web e tutti i contenuti, software, prodotti e servizi ad esso associati sono destinati esclusivamente all'uso professionale. Non è previsto né raccomandato alcun utilizzo da parte dei consumatori.