Qwen 2.5 Tutorial: Avvio rapido, Deploy e Casi d'Uso Reali

Ultimo aggiornamento: 2025-09-05 12:32:56

L'intelligenza artificiale sta rapidamente superando i modelli basati solo su testo ed entrando in un'era multimodale dove i sistemi possono comprendere parole, immagini e persino video. Questo cambiamento apre la strada ad applicazioni più naturali e potenti, dall'automazione dei documenti al tutoring intelligente fino all'analisi multimediale.

Qwen 2.5, sviluppato da Alibaba Cloud, è uno dei modelli multimodali open source più avanzati disponibili oggi. Unisce comprensione del linguaggio, elaborazione di immagini ad alta risoluzione e ragionamento sui video in un unico sistema. A differenza di molte piattaforme chiuse, Qwen 2.5 può essere usato liberamente per ricerca e scopi commerciali, rendendolo una scelta interessante per sviluppatori, startup e aziende che vogliono creare soluzioni AI pratiche.

Questa guida spiega come iniziare con Qwen 2.5. Copre l'installazione, esempi rapidi d'uso, metodi di deploy e casi d'uso reali, così potrai sfruttare il modello nei tuoi progetti.

Cos'è Qwen 2.5-VL

Qwen 2.5-VL è l'ultima generazione di modelli visione-linguaggio del progetto Tongyi Qianwen. Combina la capacità di elaborazione linguistica avanzata con analisi di immagini ad alta risoluzione e comprensione dei video. La famiglia include modelli con 3B, 7B, 32B e 72B parametri. Le varianti più piccole sono adatte a esperimenti locali, mentre i modelli più grandi garantiscono prestazioni al top per attività su scala aziendale. Con una lunghezza di contesto fino a 128.000 token, Qwen 2.5 può gestire interi libri o conversazioni molto lunghe. Diversamente da GPT-4V o Gemini, Qwen è completamente open source, permettendo un'adozione flessibile.

Installazione e Configurazione

Ambiente e Licenza

Qwen 2.5-VL viene rilasciato con licenza Apache 2.0. Questo significa che è completamente open source e può essere utilizzato tanto in progetti di ricerca quanto in progetti commerciali senza grandi restrizioni.

Dimensioni del Modello e Supporto al Contesto

La famiglia comprende diverse dimensioni di parametri come 3B, 7B, 32B e 72B. I modelli più piccoli sono più semplici da eseguire in locale, mentre il modello più grande offre il massimo delle prestazioni ma richiede GPU di livello server. Tutti i modelli tranne la versione 72B sono coperti da licenza open source. Qwen 2.5-VL supporta anche input con contesto lungo fino a 128.000 token, rendendolo ideale per analizzare documenti e conversazioni molto estesi.

Passaggi per l'Installazione

Per configurare il modello con Hugging Face Transformers, installa i pacchetti necessari:

pip install git+https://github.com/huggingface/transformers accelerate
pip install qwen-vl-utils[decord]==0.0.8

Una volta installato, modello e processor possono essere caricati con poche righe di Python:

from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
model = Qwen2_5_VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")

Hardware e Quantizzazione

  • Le versioni 3B e 7B possono funzionare su una singola GPU moderna, specialmente usando le versioni quantizzate.
  • I modelli 32B e 72B richiedono invece configurazioni multi-GPU più potenti.
  • Le opzioni di quantizzazione come INT8 o INT4 riducono l'uso di memoria, rendendo più pratico il deploy locale mantenendo una precisione accettabile.

Avvio rapido con Transformers

Una volta configurato l'ambiente, puoi iniziare a usare Qwen 2.5-VL con poche linee di codice. La libreria Hugging Face Transformers offre un'interfaccia semplice per input di testo, immagini e video.

Carica Modello e Processor

from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessorimport torch
model = Qwen2_5_VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct",
   torch_dtype=torch.float16,
   device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")

Image Question Answering

Ad esempio, se hai un'immagine di una fattura e vuoi estrarre delle informazioni:

from PIL import Image
image = Image.open("invoice_sample.png")
question = "Qual è l'importo totale su questa fattura?"inputs = processor(text=question, images=image, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=128)print(processor.batch_decode(outputs, skip_special_tokens=True))

Comprensione Video

Qwen 2.5-VL supporta anche input video, così è possibile riassumere o analizzare brevi clip:

video_path = "meeting_clip.mp4"question = "Riassumi i punti principali discussi in questo video."inputs = processor(text=question, videos=video_path, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)print(processor.batch_decode(outputs, skip_special_tokens=True))

Input Multimodale

Puoi fornire anche più immagini o una combinazione di immagini e video in una sola richiesta, per ragionamenti più complessi.

Deploy Locale con Web Demo e Ollama

Qwen 2.5-VL non è limitato a chiamate API o script Python. Puoi anche eseguire il modello in locale con interfacce user-friendly e opzioni leggere di runtime.

Web Demo per Test Locale

Il repository ufficiale include uno script web_demo_mm che avvia una semplice interfaccia web. Con questa demo, puoi caricare immagini o file video e interagire con il modello in formato chat. È un modo veloce per testare le funzionalità multimodali senza scrivere codice personalizzato.

Per avviare la demo, esegui il seguente comando nella cartella del progetto:

python web_demo_mm.py

Una volta avviata, l'interfaccia sarà accessibile dal browser e potrai inserire prompt e caricare media. Questa soluzione è ideale per esplorazioni rapide e prototipazione.

Demo Chat Video in Tempo Reale

Un altro esempio fornito dagli sviluppatori è una demo di video chat in tempo reale. Questa versione permette di trasmettere input da webcam o da una sorgente video e porre domande al modello in tempo reale sui contenuti. Dimostra la potenza di Qwen 2.5-VL in scenari dinamici come il monitoraggio o il tutoring interattivo.

Esecuzione di Qwen su Ollama

Per chi cerca un'esperienza leggera, Qwen 2.5 è supportato anche su Ollama. Ollama offre un ambiente di runtime facile da usare per eseguire grandi modelli in locale. Una volta installato, puoi scaricare il modello Qwen 2.5 con un solo comando e iniziare a interagire senza dover configurare ogni dettaglio.

Questo metodo è particolarmente indicato per chi vuole poca configurazione e desidera provare Qwen sul proprio portatile o desktop senza conoscere in profondità gli ambienti Python.

Uso Comune: Object Detection Zero-Shot

Uno degli usi più pratici di Qwen 2.5-VL è il rilevamento oggetti zero-shot. A differenza dei tradizionali sistemi di visione artificiale che richiedono dati etichettati per l'addestramento, Qwen può rilevare oggetti semplicemente ricevendo una descrizione in linguaggio naturale di cosa cercare.

Così puoi, ad esempio, localizzare "tutte le tazze sul tavolo" o "tutti i semafori in questa foto" senza preparare dataset personalizzati. Il modello può anche restituire le coordinate dei riquadri in un formato strutturato come JSON, risultando utile per pipeline di automazione successive.

Esempio di Workflow

  • Fornisci un'immagine come input.
  • Chiedi a Qwen di identificare oggetti di interesse usando testo semplice.
  • Il modello restituisce coordinate ed etichette in formato JSON.
  • I risultati possono essere visualizzati o integrati in altre applicazioni.

Esempio di Codice

from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessorfrom PIL import Imageimport torch, json
# Carica modello e processor
model = Qwen2_5_VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype=torch.float16, device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
# Immagine di input
image = Image.open("street_scene.jpg")
prompt = "Rileva tutte le auto e i semafori in questa immagine e restituisci i risultati in formato JSON."
# Preprocessing e generazione
inputs = processor(text=prompt, images=image, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)
result = processor.batch_decode(outputs, skip_special_tokens=True)
# Parsing output (se in formato JSON)
try:
   parsed = json.loads(result[0])print(parsed)except:print(result)

Perché è importante

Questo approccio riduce la necessità di costosi progetti di annotazione. Gli sviluppatori possono applicare Qwen 2.5-VL ad aree come analisi retail, monitoraggio del traffico, robotica e smart city con un setup minimo.

Prestazioni e Fine-Tuning

Prestazioni Benchmark

Qwen 2.5-VL è stato valutato su una vasta gamma di task multimodali. Ottiene ottimi risultati in question answering sui documenti (DocVQA), riconoscimento ottico dei caratteri e ragionamento su contesti lunghi. Rispetto a molte alternative open source, si distingue soprattutto nella gestione di documenti complessi e input video.

Il modello supporta anche fino a 128K token di input, permettendo analisi su larga scala di libri, report o lunghe conversazioni senza perdita di contesto. Lo rende uno dei modelli open source più capaci per il ragionamento su contesti ampi.

Opzioni di Fine-Tuning

Anche se i modelli base sono già molto potenti, molti sviluppatori vorranno adattare Qwen 2.5-VL a domini specifici. Tra le opzioni di fine-tuning ci sono:

  • Full fine-tuning: aggiornamento di tutti i parametri del modello per la massima personalizzazione, ideale per organizzazioni con grandi risorse di calcolo.
  • Parameter-efficient fine-tuning: utilizzo di tecniche come LoRA o QLoRA per adattare il modello modificando molti meno parametri. È conveniente e ampiamente usato in produzione.
  • Adattamento al dominio: addestramento con dataset specializzati, come immagini mediche, rapporti finanziari o contratti legali, per aumentare la precisione in ambiti specifici.

Quantizzazione e Ottimizzazione

Per rendere la distribuzione più pratica, gli sviluppatori possono usare versioni quantizzate del modello in precisione INT8 o INT4. Questo riduce la memoria GPU necessaria e velocizza l'inferenza, mantenendo comunque una precisione accettabile. Queste ottimizzazioni sono fondamentali quando si esegue Qwen 2.5 in locale o su cloud con risorse limitate.

Risolvere i Problemi e Consigli Utili

Come evitare loop di decodifica

In alcuni casi, il modello può generare output ripetitivi o incompleti. Per evitarlo, modifica i parametri di decodifica come temperature, top_p o max_new_tokens. Una configurazione equilibrata produce spesso risposte più stabili.

Limitazioni Hardware

L'esecuzione di modelli grandi come le varianti 32B o 72B richiede molta memoria GPU. Se incontri errori di memoria insufficiente, valuta l'uso di una versione più piccola (3B o 7B), oppure applica la quantizzazione (INT8 o INT4). Queste soluzioni riducono i requisiti di VRAM mantenendo prestazioni pratiche.

Scelta del Decoder

Con input video, alcuni utenti hanno segnalato problemi con decoder specifici. Passare da decord a torchcodec o ad altre librerie ottimizzate può migliorare stabilità e velocità. Assicurati di installare l'ultima versione dei pacchetti necessari.

Prompt Engineering

Per compiti come il rilevamento di oggetti o l'analisi di documenti, sii chiaro nelle istruzioni. Ad esempio, chiedi al modello di “restituire i risultati in formato JSON” oppure “riassumere in punti elenco”. Prompt precisi riducono l'ambiguità e rendono gli output più utili.

Elaborazione Batch

Se devi processare più immagini o video, raggruppare (batching) gli input consente di risparmiare tempo e risorse. Usa le funzioni di batching integrate nel processore anziché eseguire ogni file separatamente. Questo aiuta anche il modello a mantenere il contesto su input correlati.

Conclusione

Qwen 2.5-VL dimostra che i modelli open-source possono competere con i sistemi chiusi nell'IA multimodale. Grazie a OCR avanzato, ragionamento video e capacità di gestire contesti lunghi, è uno strumento pratico sia per sviluppatori che per aziende. La licenza Apache 2.0 garantisce flessibilità, e le dimensioni scalabili del modello si adattano a vari scenari d'uso. Con i futuri sviluppi verso audio e 3D, Qwen si conferma una scelta interessante per chi lavora con l'IA multimodale più avanzata.

Domande Frequenti e Argomenti Avanzati

Qwen 2.5-VL può essere usato tramite API?
Sì. Oltre alla distribuzione locale, Qwen 2.5-VL è accessibile tramite API cloud, facilitando l'integrazione con applicazioni web o mobile.

Su quali piattaforme è supportato Qwen 2.5?
Il modello può essere distribuito su computer locali, server aziendali o sulle principali piattaforme cloud. Sono disponibili anche immagini Docker per una configurazione semplificata.

Come scelgo la dimensione giusta del modello?
Per test o applicazioni leggere, sono consigliate le versioni 3B o 7B. Le aziende con hardware più potente possono preferire le varianti 32B o 72B per prestazioni massime.

Qwen 2.5 supporta output strutturati?
Sì. Il modello può generare risultati in formato JSON, tabelle o chiave-valore su richiesta, utile per estrazioni dati o report automatici.