Strategia degli embeddings fissi
La sperimentazione utilizza un sotto‑set di AG News, con 800 esempi per l'addestramento e 200 per il test, tutti mescolati con seme 42. Gli embeddings vengono estratti da Qwen/Qwen2.5‑1.5B, un modello di grandi dimensioni configurato per la classificazione a quattro etichette. Il modello è caricato con quantizzazione a 4 bit (tipo nf4) e calcoli in bfloat16, sfruttando device_map="auto" per distribuire automaticamente le risorse.
Durante l'inferenza, il modello opera in modalità valutazione, senza gradienti, e restituisce gli stati nascosti. Viene preservato l'ultimo stato nascosto, aggregato mediante una media ponderata dal mask di attenzione, con una piccola costante (1e‑9) per garantire la stabilità numerica. I vettori risultanti vengono convertiti in float32 e spostati sulla CPU.
Procedura di tokenizzazione e batch
- Batch size: 8
- Padding e troncamento fino a 128 token
- Token di padding:
eostokenid, necessario per le architetture solo decoder - Tokenizer allineato con
padtokeniddel modello
Questa configurazione consente di ottenere embeddings consistenti e riproducibili, mantenendo il modello “gelato” (pesi fissi) durante tutto il processo.
Classificatore Random Forest
Sui vettori estratti, viene addestrato un RandomForestClassifier di scikit‑learn con 100 alberi e seme 42. L'addestramento richiede appena 2,866 secondi, dimostrando che il collo di bottiglia è l'estrazione dei feature (96,5 secondi). La precisione sul set di test è dell'82,0 %.
Gli embeddings e le etichette vengono separati per fase di training e test; i tempi di estrazione e di apprendimento sono misurati indipendentemente per fornire un quadro chiaro dei costi computazionali.
Confronto costi‑benefici
- Tempo totale di estrazione: 96,5 s
- Tempo di addestramento Random Forest: 2,866 s
- Precisione: 82,0 %
- Risorse richieste: GPU T4 (per l'estrazione) + CPU (per il classificatore)
Questa combinazione è ideale per scenari con budget limitato, dove l'addestramento completo di un LLM sarebbe proibitivo.
Prospettive di fine‑tuning con LoRA
Il prossimo passo previsto è sperimentare un adattamento fine del modello Qwen tramite LoRA (Low‑Rank Adaptation). LoRA permette di aggiornare solo un piccolo set di parametri a rango basso, riducendo drasticamente i requisiti di memoria e tempo rispetto al tradizionale fine‑tuning.
L'obiettivo è verificare se l'accuratezza di 82 % può essere superata senza sacrificare l'efficienza. L'ambiente consigliato per queste prove è Google Colab, con GPU T4 e le seguenti librerie:
- bitsandbytes
- peft
- accelerate
- evaluate
In ambienti Python locali, le dipendenze includono scikit‑learn, transformers e datasets.
Impatto atteso
Se LoRA riuscisse a migliorare la precisione, la scelta tra embeddings fissi e fine‑tuning dipenderebbe non solo da metriche di accuratezza ma anche da costi di calcolo, tempo di sviluppo e disponibilità di risorse hardware.
In sintesi, gli embeddings fissi combinati con un Random Forest offrono una soluzione rapida e a basso costo per la classificazione di testi su AG News, raggiungendo 82 % di accuratezza. La sperimentazione futura con LoRA potrà fornire ulteriori indicazioni su come bilanciare performance e risorse in progetti IA con budget limitati.
