Salta al contenuto principale

Q3 2026 takeaways + ebook teaser Sovereign AI PMI EU: recap 12 articoli

Il percorso di dodici articoli sull'AI in casa per le PMI europee, con una scheda di decisione eseguibile e ciò che la serie non ha potuto verificare.

Cosa ne pensi di questo articolo?

Q3 2026 takeaways + ebook teaser Sovereign AI PMI EU: recap 12 articoli
Sovereign AI PMI EUFoto:Matheus BertelliPexels

In Breve

Il percorso di dodici articoli sull'AI in casa per le PMI europee, con una scheda di decisione eseguibile e ciò che la serie non ha potuto verificare.

Che cosa decide davvero se tenere l'AI in casa: cinque numeri e tre vincoli

Dodici articoli sull'AI «sovrana» per le PMI europee si possono riassumere in una frase scomoda: la serie non risponde «sì, tieni tutto in casa» né «no, vai sul cloud», perché la risposta dipende da numeri che solo tu puoi misurare. Sono cinque: i token al secondo che la tua macchina produce, la memoria che il modello e le richieste parallele occupano, l'utilizzo che avrai davvero, il costo del tempo di chi gestisce il servizio, e il tempo che ti serve a ripartire dopo un guasto. A questi si aggiungono tre vincoli che vengono dalle norme: dove vanno i dati personali, che cosa devi poter dimostrare con un registro, e che cosa impone il regolamento europeo sull'intelligenza artificiale e da quando.

Questo articolo chiude il percorso in tre mosse. Rimette in ordine i dodici articoli dicendo che cosa ciascuno ti lascia in mano, costruisce una scheda di decisione eseguibile che mette insieme i controlli, e dice con franchezza che cosa la serie non ha potuto verificare. Non c'è un riepilogo di cifre da portarti via: le cifre di una macchina, di un listino o di un fornitore non valgono per la tua, e ogni cifra che compare qui viene da un programma eseguito o da una norma letta.

Il percorso, articolo per articolo

La serie ha un ordine, e l'ordine conta: si parte dal servire un modello e dal capire quanta memoria chiede, si passa alla scelta del modello e ai costi, si costruisce il recupero dei documenti, e solo dopo si arriva alla valutazione, al carico, al disastro, al registro e alla domanda finale su quando il cloud è meglio. Il lettore che ha già un sistema funzionante può entrare dal punto che gli serve, ma i primi sei servono a leggere bene gli ultimi.

  1. Servire Ollama in produzione su un VPS europeo: quanta memoria serve, che velocità aspettarsi e come proteggere l'endpoint.
  2. SLM contro LLM: come scegliere fra modello piccolo e grande, con memoria, licenze lette sui testi e il numero di domande che servono per confrontare due modelli.
  3. Costi reali: quando un server proprio costa meno di un'API, con ipotesi dichiarate e punto di pareggio.
  4. Ollama, RAG e RediSearch: un recupero ibrido per i documenti aziendali, con suddivisione, BM25, vettori e fusione.
  5. Privacy by design: dove finiscono le copie dei dati personali e che cosa chiede davvero il GDPR.
  6. Quale modello: Llama, Mistral, Qwen e Gemma a confronto su architettura, cache, contesto e licenze.
  7. Valutare il RAG: le quattro metriche, il golden dataset, un giudice locale e il test A/B appaiato.
  8. Da 1 a 50 utenti: token al secondo, memoria per richiesta, coda limitata e secchio di gettoni.
  9. Disaster recovery: RPO e RTO per componente, archiviazione WAL, verifica dei backup e prova di ripristino.
  10. Audit log: che cosa dice l'articolo 12 dell'AI Act, record minimali, HMAC e catena di impronte.
  11. Quando NO self-host: sette casi in cui il servizio gestito conviene, con il calcolo del pareggio.

L'elenco ha un ordine di lettura, non di importanza: il costo del terzo articolo non si capisce senza la memoria del primo, e il registro del decimo presuppone la pseudonimizzazione del quinto. Se devi saltare qualcosa, salta il confronto fra modelli, che invecchia in mesi, e non i calcoli di memoria, di capacità e di ripristino, che restano veri finché non cambia la tua macchina. L'articolo che precede questo, sul quando non conviene, è il correttivo di tutta la serie: dopo averlo letto, un percorso che finisse sempre in «tieni tutto in casa» non sarebbe più credibile.

La scheda di decisione: i controlli in un programma

I numeri della serie si possono mettere insieme in un controllo solo, che dice dove il tuo caso regge e dove no. Il programma prende un caso costruito (dodici utenti, un modello da circa 7 miliardi di parametri a 4 bit, due richieste parallele, 16 GiB di memoria) e applica cinque controlli: la memoria, con pesi più cache per le richieste parallele più un margine per il sistema; la capacità, che usa il modello di coda a utilizzazione 0,5; il costo, cioè il server proprio contro un'API con l'utilizzo che avrai davvero; il ripristino, la somma dei passi misurati nella prova contro l'obiettivo; e il registro, che distingue l'obbligo dell'articolo 12 dalla scelta di prudenza. Tutti i valori sono di prova: sostituiscili con le tue misure.

"""Scheda di decisione: i controlli della serie su un caso costruito, con le TUE misure al posto di quelle di prova."""
SECONDI_MESE = 30 * 24 * 3600
GIB = 1024 ** 3


def controlla(c):
    esiti = []

    # 1. Memoria: pesi + cache per le richieste parallele + margine per sistema e altri servizi
    cache = c["parallele"] * c["contesto"] * c["kv_kib_per_token"] * 1024 / GIB
    serve = c["pesi_gib"] + cache + c["margine_gib"]
    esiti.append(("memoria", serve <= c["ram_gib"], f"servono {serve:.1f} GiB su {c['ram_gib']} disponibili"))

    # 2. Capacità: utenti sostenibili a utilizzazione 0,5 (modello M/M/1 dell'articolo sul dimensionamento)
    mu = c["token_al_secondo"] / c["token_risposta"]
    utenti_max = int(0.5 * mu * c["pausa_s"])
    esiti.append(("capacità", utenti_max >= c["utenti"], f"a utilizzazione 0,5 reggi {utenti_max} utenti, ne hai {c['utenti']}"))

    # 3. Costo: server proprio contro API, con l'utilizzo che avrai davvero
    token_mese = c["utenti"] / c["pausa_s"] * c["token_risposta"] * c["ore_attive_mese"] * 3600
    capacita_mese = c["token_al_secondo"] * SECONDI_MESE
    utilizzo = token_mese / capacita_mese
    proprio = (c["server_mese"] + c["ore_gestione"] * c["tariffa"]) / (token_mese / 1e6)
    esiti.append(("costo", proprio <= c["api_per_milione"],
                  f"utilizzo {utilizzo:.1%}: {proprio:.2f} euro per milione di token contro {c['api_per_milione']:.2f}"))

    # 4. Ripristino: la somma dei passi misurati nella prova contro l'obiettivo
    rto = sum(c["passi_ripristino_min"])
    esiti.append(("ripristino", rto <= c["rto_obiettivo_min"], f"prova di ripristino {rto} min, obiettivo {c['rto_obiettivo_min']}"))

    # 5. Registro: obbligo solo se ad alto rischio dell'allegato III (dal 2 dicembre 2027), altrimenti scelta di prudenza
    nota = "obbligo dal 2 dicembre 2027 (allegato III)" if c["alto_rischio_allegato_III"] else "nessun obbligo dell'articolo 12; registro minimale per accountability"
    esiti.append(("registro", True, nota))
    return esiti


CASO = dict(pesi_gib=3.4, kv_kib_per_token=128, contesto=4096, parallele=2, margine_gib=6.0, ram_gib=16,
            token_al_secondo=25.0, token_risposta=300, pausa_s=120, utenti=12, ore_attive_mese=160,
            server_mese=200.0, ore_gestione=8, tariffa=50.0, api_per_milione=5.0,
            passi_ripristino_min=[10, 15, 20, 10], rto_obiettivo_min=60, alto_rischio_allegato_III=False)


def stampa(titolo, caso):
    print(titolo)
    for nome, ok, dettaglio in controlla(caso):
        print(f"  {'OK ' if ok else 'NO '} {nome:10s} {dettaglio}")


stampa("caso costruito (ipotesi: sostituisci con le tue misure)", CASO)
stampa("stesso caso, nessuna ora di gestione e API a 20 euro per milione", {**CASO, "ore_gestione": 0, "api_per_milione": 20.0})

# Output:
# caso costruito (ipotesi: sostituisci con le tue misure)
#   OK  memoria    servono 10.4 GiB su 16 disponibili
#   NO  capacità   a utilizzazione 0,5 reggi 5 utenti, ne hai 12
#   NO  costo      utilizzo 26.7%: 34.72 euro per milione di token contro 5.00
#   OK  ripristino prova di ripristino 55 min, obiettivo 60
#   OK  registro   nessun obbligo dell'articolo 12; registro minimale per accountability
# stesso caso, nessuna ora di gestione e API a 20 euro per milione
#   OK  memoria    servono 10.4 GiB su 16 disponibili
#   NO  capacità   a utilizzazione 0,5 reggi 5 utenti, ne hai 12
#   OK  costo      utilizzo 26.7%: 11.57 euro per milione di token contro 20.00
#   OK  ripristino prova di ripristino 55 min, obiettivo 60
#   OK  registro   nessun obbligo dell'articolo 12; registro minimale per accountability

Il primo caso è istruttivo perché quasi tutto va bene e due controlli no. La memoria e il ripristino reggono; la capacità no, perché 25 token al secondo con risposte da 300 token reggono cinque utenti a utilizzazione 0,5, non dodici; il costo no, perché con quel carico l'utilizzo mensile è del 26,7% e le otto ore di gestione portano il server proprio a 34,72 euro per milione di token contro 5 dell'API di prova. Il secondo caso cambia due ipotesi, nessuna ora di gestione e un'API più cara, e il controllo del costo diventa positivo mentre la capacità resta insufficiente: un risultato conta solo se leggi anche gli altri controlli. La riga del registro è un'indicazione, non un obbligo calcolato: dipende dal tuo sistema e dall'elenco dell'allegato III.

Una nota sul programma: la funzione controlla restituisce una lista di terne (nome, esito, dettaglio) e non un verdetto unico, di proposito. Un punteggio complessivo nasconde quale vincolo ti blocca, e il vincolo che ti blocca è l'informazione che serve: se è la memoria compri RAM o cambi modello, se è la capacità aggiungi macchine o riduci il contesto, se è il costo valuti il servizio gestito. Le soglie e le formule sono quelle degli articoli di dimensionamento e di costi, copiate qui sotto forma di codice per poterle toccare.

Che cosa la serie non ha potuto verificare

Una serie che propone calcoli deve elencare ciò che non ha misurato, altrimenti il lettore lo prende per misurato. Qui sotto trovi le cose lasciate fuori, perché non c'era una fonte primaria raggiungibile o perché serviva un'esecuzione che non era possibile.

  • I prezzi di macchine, GPU e API: cambiano, e li leggi dal listino ufficiale nel giorno in cui decidi; gli articoli usano valori di prova dichiarati.
  • La velocità in token al secondo su un hardware specifico: nessun modello è stato eseguito per questi articoli, e il valore che conta è quello che misuri tu con i campi che Ollama restituisce.
  • Lo stato dell'impugnazione contro la sentenza del Tribunale sulla decisione di adeguatezza UE-USA, e lo stato dello schema europeo di certificazione del cloud.
  • Se i decreti legislativi previsti dalla legge 132/2025 siano stati emanati, e con quali sanzioni.
  • Il modo in cui un backup di Redis tratta un indice di ricerca vettoriale: va verificato nella tua prova di ripristino.

Ognuna di queste voci ha un rimedio che passa da te: leggere un listino, eseguire una misura, controllare un testo normativo, ripetere una prova. La serie ti ha dato il metodo per farlo e le fonti da cui partire, e la data di consultazione scritta accanto a ogni fonte serve a dirti da quando controllare di nuovo. Le norme che contano di più per questa serie hanno date precise: il regolamento 2024/1689 per i sistemi ad alto rischio dell'allegato III si applica dal 2 dicembre 2027, e l'obbligo di conservare i log per almeno sei mesi, salvo diversa disposizione, sta negli articoli 19 e 26 del testo consolidato.

Domande frequenti

Per una PMI, conviene l'AI in casa o un servizio gestito?

Dipende da quattro numeri che puoi misurare: l'utilizzo che avrai, il costo del tempo di gestione, la memoria che serve al modello e il tempo di ripristino che sai garantire. Con un utilizzo basso e senza chi gestisca il servizio, di norma conviene il servizio gestito; con un utilizzo alto e dati personali che non devono uscire, il server proprio.

Da dove comincio?

Dalla misura: i token al secondo della tua macchina, con i campi che Ollama restituisce, e dalla memoria che il modello occupa. Con quei due numeri la scheda di decisione ti dice subito se la strada in casa è praticabile.

Devo tenere un registro degli eventi del mio assistente?

L'articolo 12 dell'AI Act lo prevede per i sistemi ad alto rischio, dal 2 dicembre 2027 per quelli dell'allegato III. Per gli altri il registro minimale resta una scelta di prudenza collegata alla responsabilità del titolare del trattamento, e va progettato senza copiare i dati personali.

Che cosa sai fare adesso

Sai prendere una decisione sul dove tenere un modello AI con numeri tuoi invece che con cifre di altri: misurare la velocità, calcolare la memoria dai parametri, stimare il pareggio con le ore di gestione dentro, dimensionare con una coda limitata, provare il ripristino con il cronometro, registrare gli eventi senza copiare i dati personali e scegliere il cloud quando i numeri lo dicono. Sai anche dove le tue informazioni scadono, perché ogni fonte porta la sua data. Se uno dei controlli della scheda ti dice di no, l'articolo corrispondente della serie è il punto da cui ripartire.

Fonti

Il programma dell'articolo è stato eseguito con Python 3.14.4, due volte con uscita identica; i valori del caso sono di prova dichiarati. Le cifre e le affermazioni degli altri articoli della serie vanno lette nel loro testo, con le rispettive fonti.

Commenti

Caricamento commenti...

Accedi per commentare

Discuti questo articolo nella community

Unisciti al gruppo Telegram per discutere con altri sviluppatori, fare domande e condividere le tue esperienze.

Ti è piaciuto questo articolo?

Esplora altri contenuti sul blog o scopri i miei progetti