Fine-Tuning di LLaMA 3.2 Vision 11B per l'Estrazione Dati da Volantini
Come abbiamo raggiunto un'accuratezza del 99% nell'estrazione di informazioni strutturate da volantini di supermercati tramite Vision-Language Models, OCR avanzato e RAG
Abstract
L'estrazione di informazioni strutturate da documenti scansionati — come volantini promozionali, listini prezzi e cataloghi — rappresenta una sfida complessa nel campo della computer vision. Questo studio presenta un approccio innovativo basato sul fine-tuning di LLaMA 3.2 Vision 11B, combinato con tecnologie OCR avanzate e Retrieval-Augmented Generation (RAG), per ottenere un'accuratezza del 99% nell'estrazione di dati da volantini di supermercati. La nostra pipeline integra ricerca semantica e vettoriale, garantendo coerenza e precisione nei risultati.
Metodologia
1. OCR Avanzato
Preprocessing delle immagini con tecniche di enhancement e applicazione di modelli OCR ottimizzati per layout complessi e font variabili tipici dei volantini.
2. Fine-Tuning VLLM
Addestramento di LLaMA 3.2 Vision 11B su dataset annotato di volantini, utilizzando PEFT (LoRA) per efficienza computazionale su singola GPU A100.
3. RAG Pipeline
Implementazione di ricerca semantica e vettoriale con embedding ottimizzati per garantire coerenza e contestualizzazione delle informazioni estratte.
Architettura del Sistema
Ingest & Preprocessing
Upload PDF volantini → Conversione in immagini → Normalizzazione e enhancement
OCR + Vision Model
Estrazione testo con Tesseract/PaddleOCR → Analisi visuale con LLaMA 3.2 Vision fine-tuned
Strutturazione Dati
Estrazione entità (prodotti, prezzi, date) → Validazione coerenza → Creazione embeddings vettoriali
RAG & Query
Indexing vettoriale (Pinecone/Weaviate) → Ricerca semantica → Retrieval contestuale
Processo di Fine-Tuning
Framework e Configurazione
Per l'addestramento efficiente del modello da 11 miliardi di parametri su singola GPU A100 (40GB), abbiamo utilizzato Unsloth combinato con PEFT (Parameter-Efficient Fine-Tuning)tramite LoRA (Low-Rank Adaptation).
Configurazione Iniziale
# Hyperparametri iniziali (dataset: 500 volantini) r = 8 lora_alpha = 8 learning_rate = 2e-5 num_epochs = 20 per_device_train_batch_size = 2 gradient_accumulation_steps = 4
Configurazione Ottimizzata
# Hyperparametri finali (dataset: 2500 volantini) r = 32 lora_alpha = 32 learning_rate = 1e-6 num_epochs = 12 per_device_train_batch_size = 2 gradient_accumulation_steps = 4 warmup_steps = 50 early_stopping = True (patience=4)
Strategie di Ottimizzazione
- Approccio Iterativo: Cicli di training → valutazione → aggiustamento parametri con monitoraggio giornaliero delle metriche
- Early Stopping: Interruzione automatica quando la validation loss si stabilizza, risparmiando ore di GPU
- Scaling Progressivo: Aumento graduale di r e lora_alpha con la crescita del dataset per evitare underfitting
- Data Augmentation: Rotazioni, zoom, variazioni di luminosità per simulare condizioni reali di scansione
Metriche di Valutazione
Mean Reciprocal Rank (MRR)
Misura la qualità della ricerca valutando la posizione del primo risultato rilevante.
Average Precision (AP)
Valuta precisione e recall attraverso tutti i livelli di confidenza.
Confronto Pre/Post Fine-Tuning
| Metrica | Modello Base | Post Fine-Tuning | Miglioramento |
|---|---|---|---|
| Accuratezza Estrazione | 76.3% | 99.1% | +22.8% |
| F1-Score Prodotti | 0.72 | 0.98 | +36% |
| F1-Score Prezzi | 0.68 | 0.99 | +45% |
| MRR | 0.71 | 0.94 | +32% |
| Tempo Inferenza (ms) | 287 | 214 | -25% |
Risultati Sperimentali
Training & Validation Loss
Convergenza raggiunta all'epoch 9 con early stopping
Accuracy per Categoria
Deployment e Infrastruttura
Scelte Cloud e Ottimizzazioni Costi
Per il deployment in produzione abbiamo optato per Lambda Cloud, ottenendo un risparmio del 60% rispetto a AWS/GCP mantenendo performance eccellenti:
- GPU A100 (40GB) per inferenza con latenza media di 214ms per documento
- Autoscaling basato su carico con min 1 / max 4 istanze
- Cache Redis per embeddings già computati (hit rate: 78%)
- Vector DB (Pinecone) per ricerca semantica con 2.5M+ embeddings
⚠️ Limitazioni e Trade-offs
- • Disponibilità GPU non sempre garantita (consigliato uso di reserved instances)
- • No supporto multi-GPU nativo con Unsloth (per scale-out considerare Axolotl)
- • Latenza variabile in caso di cold start (mitigata con warm pools)
Conclusioni e Best Practices
Questo studio dimostra che il fine-tuning di modelli vision-language su task specifici può produrre risultati straordinari, raggiungendo un'accuratezza del 99% nell'estrazione di dati strutturati da volantini di supermercati. La combinazione di OCR avanzato, Vision-Language Models e RAG ha permesso di superare le limitazioni dei sistemi tradizionali.
Successi Chiave
- ✓ Riduzione errori dell'85% rispetto a baseline
- ✓ Tempo inferenza ridotto del 25%
- ✓ Scalabilità a 2500+ volantini processati
- ✓ ROI positivo in 4 mesi di produzione
Raccomandazioni
- → Approccio iterativo al training
- → Early stopping per efficienza GPU
- → Scaling graduale di hyperparametri
- → Monitoraggio continuo delle metriche
Sviluppi Futuri
- • Multi-lingua: Estensione a volantini in lingue diverse dall'italiano
- • Real-time processing: Riduzione latenza sotto i 100ms per applicazioni mobile
- • Active Learning: Feedback loop per miglioramento continuo su nuovi layout
- • Multi-modal RAG: Integrazione di informazioni testuali e visuali nella retrieval
Scopri la Piattaforma in Azione
Prova tu stesso la potenza del nostro sistema di estrazione dati da volantini

Vittorio Sequino
Innovation Manager & Data Scientist specializzato in Vision LLM e Marketing. Appassionato di Vision-Language Models e applicazioni pratiche di AI nel retail.
