🧠 Addestrare un LLM investire come Warren Buffett: dalla teoria alla validazione

Negli ultimi anni, i Large Language Model (LLM) sono diventati strumenti potenti non solo per il linguaggio naturale, ma anche per compiti di valutazione semantica complessa. In questo progetto, abbiamo esplorato l’idea di addestrare il modello Mistral-7B-Instruct-v0.1 a rispondere come un investitore ispirato da Warren Buffett, usando esclusivamente dati finanziari sintetici.
🔍 Step 1 – Pre-validazione: quanto sa Mistral “zero-shot”?
Prima di effettuare il fine-tuning, abbiamo valutato le capacità del modello Mistral "out-of-the-box" (senza addestramento specifico) su un dataset di 20 esempi nel dominio finanziario. Ogni esempio chiedeva di dare un giudizio (BUY, HOLD, SELL) in base a dati come il PE ratio, dividend yield, e altre metriche aziendali.
📊 Zero-shot accuracy:
✅ Dataset caricato correttamente
✅ Inferenza completata su 20 esempi
📈 Risultato: 55% di accuratezza
Questo punteggio è stato considerato un buon punto di partenza, ma lasciava spazio a miglioramenti.
🔧 Step 2 – Fine-Tuning su dati strutturati in stile Buffett
Abbiamo poi costruito un dataset supervisionato in cui ogni esempio era formato da un prompt strutturato (dati aziendali) e una risposta in linguaggio naturale completa di spiegazione e verdetto finale.
Esempio di prompt:
textCopiaModifica[INST] Valuta questa azienda secondo i principi di Warren Buffett...
Company: NVIDIA
PE: 17.5, PB: 13.2, Dividend Yield: 2.5% [/INST]
Risposta attesa:
textCopiaModificaLa società presenta un PE moderato e un buon rendimento da dividendo...
Verdict: BUY
📦 Dataset:
80 esempi per il training
20 esempi per la validazione
⚙️ Configurazione tecnica:
Modello:
Mistral-7B-Instruct-v0.1
Tokenizer customizzato
Fine-tuning con
SFTTrainer
di 🤗 TRLPrecisione:
bf16
, LoRA + quantizzazione 8-bit
📉 Andamento della Loss durante il training:
Step 10 → Loss: 1.84
Step 20 → Loss: 0.48
Step 30 → Loss: 0.19
Il modello ha rapidamente appreso il pattern logico tra input e risposta, segnale di buon apprendimento strutturato.
✅ Step 3 – Validazione dopo il fine-tuning
Abbiamo rieseguito la validazione sullo stesso test set (20 esempi). Risultati:
🧪 Zero-shot accuracy post fine-tuning:
✅ 100% completamento
📈 Accuratezza: 70%
Rispetto al 55% iniziale, il miglioramento è netto (+15 punti percentuali), a conferma dell’efficacia del fine-tuning supervisionato con dati ben formattati.
📌 Considerazioni Finali
Il prompt engineering è fondamentale: specificare chiaramente al modello di non usare conoscenze esterne è critico per evitare allucinazioni.
Per generalizzare meglio, future iterazioni dovrebbero includere nuove feature come il PE medio di settore.
Usare nomi fittizi o “mascherati” aiuta a prevenire bias legati alla conoscenza pregressa del modello.
🚀 Prossimi Step
🧪 Estensione del dataset a 500+ esempi
🧠 Valutazione automatica del “verdict consistency”
🛠️ Integrazione in un assistente finanziario AI
💬 Vuoi replicare questo progetto?
Scrivimi nei commenti o scarica il modello direttamente dal repo Hugging Face (link coming soon).
Subscribe to my newsletter
Read articles from Daniele Ippoliti directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
