//Assumere un'AI in azienda. Parte 4: quale Modello di AI scegliere?
- Max

- 24 ott 2023
- Tempo di lettura: 12 min
Aggiornamento: 26 ott 2023
Arriva un momento nel quale prendiamo la decisione di dotarci di una nuova tecnologia. Presa la decisione, capito come funzionano le cose, iniziamo ad affacciarci sul mercato e scegliere il modello. Ma non è sempre facile.

Se parliamo di PC, capito che vogliamo ad esempio un notebook, iniziamo a guardare tutti i notebook di determinati brand, nella nostra fascia di prezzo, con le caratteristiche di performance, capienza ed estetica che cerchiamo. Capito il sistema operativo che ci interessa dedichiamo un po’ di tempo ad approfondimenti e comparazioni e dopo qualche ora… acquistiamo.
Funziona così anche per le AI Generative?
Temo di no. La situazione è più lunga e complessa.
Partiamo da un presupposto: siamo in una fase di mercato nella quale le AI Generative sono in pieno boom ma siamo ancora ben lontani dal “Plateau della produttività”, ovvero quella fase in cui una tecnologia può dirsi serenamente consolidata e godiamo dei suoi benefici.

Cosa significa? Che per questo lungo periodo (E probabilmente anche dopo) dovremo aspettarci un bel po’ di instabilità, colpi di scena -positivi e negativi- e disillusioni prima di fare una scelta su cui consolidare i nostri modelli di business aziendali.
Come tendo a ripetere molto spesso è l’evidenza del fatto che “stiamo lavorando con la peggior versione di AI disponibile” ovvero che siamo ancora lontani dall’avere prodotti stabili, collaudati, con outcome prevedibili.
Ma altrettanto spesso ripeto che ciò non deve essere una scusa per rimandare la scelta, per lasciar fare agli altri e vedere cosa succede: ci dobbiamo sporcare le mani oggi per crearci un mindset pronto a questa fase di consolidamento.
Abbiamo capito che che dobbiamo avere nuovi approcci, che cosa possono aiutarci a fare le AI Generative (e non) e in che forma si presentano a noi.
Ma ora dovremo occuparci di capire su quale modello di AI basare il nostro progetto. E qui la scelta non è necessariamente semplice.
Cos’è un Modello di AI?
Provando a dare un’ulteriore definizione (in attesa che qualche dizionario decida di farlo):
Un modello di intelligenza artificiale (AI) è un file informatico che funziona in modo analogo a un cervello virtuale. È stato addestrato per eseguire compiti specifici basati sui dati su cui è stato addestrato e comprende sia dati che algoritmi che ne determinano il funzionamento.
Ricordate le vecchie vignette con i computer in cui si mangiavano tonnellate di libri, li digerivano ed erano in grado di fornire risposta a qualunque domanda?

Ecco, immaginate che un modello di AI sia come avere a disposizione uno di questi oggetti sulla vostra scrivania, su qualcuno ha già caricato (quasi) tutti i libri che esistono e glieli ha fatti ‘digerire’ con un processo di training.
Lui non farà altro che accettare le vostre domande (sotto forma di testi, immagini, suoni) e produrre risposte in base a quanto e come ha digerito.
Attenzione che non parliamo di un PC! Quello, con i suoi software, è un oggetto diverso: è abituato a fare esattamente quello che gli chiedete: processa i vostri input secondo regole e formule predicibili (deterministiche). Se in Excel fate una somma, o una media, a parità di input avrete sempre lo stesso output.
Con l’AI, soprattutto quella generativa, parliamo di qualcosa di non deterministico (stocastico) perché ragiona, all’incirca, a probabilità (qui trovate un post che vi spiega come funziona GPT).
A parità di domanda quindi avrete risposte simili ma sempre diverse.
(Chiedo sempre scusa ai più tecnici per le mie semplificazioni).
E come fa un modello a rispondere?
Bisogna addestrarlo. Con molti dati coerenti con il tipo di risposte che vogliamo ottenere.
E come si addestra?
In base all’istruzione che ha ricevuto: ovvero la serie di domande e risposte già scritte che le hanno dato un’idea del mondo da rappresentare.
Analizzando i dati su cui è stato addestrato: se volete che vi parli di Shakespeare o riconosca volti dovete fornirle i suoi libri o un set di immagini di volti umani.
Fornendogli un suo senso di precisione. Ovvero rendendolo più o meno preciso in funzione dello scopo per cui è stato creato.
Permettendogli di adattarsi: un modello creato con tutta la letteratura del mondo potrebbe essere in grado di parlarvi di amore o di guerra senza fare riferimento ad un testo particolare perché ne ha "distillato" i concetti.
Su questo ultimo punto permettetemi una breve digressione. Maggiore è il numero di parametri forniti ad un modello maggiori sono le sue capacità. Questo video (di cui ho perso le fonti, chiedo scusa all’autore) lo spiega benissimo! Più sono i parametri più esso guadagna capacità innate.
Addestrare un modello può essere un compito molto lungo, complesso costoso. Ne parleremo meglio nelle prossime puntate.
OK, scegliamo un modello
Prendendo come catalogo Hugghing Face, la community open source che sviluppa strumenti per creare, gestire e addestrare modelli di AI: ad oggi, Ottobre 2023, i modelli complessivamente sono circa… 365.000 (trecentosessantacinquemila)!
Vi lascio un po’ di tempo per rileggere e ripensare il numero sopra.

Su Hugghingface un comodo configuratore vi permette di scegliere alcune caratteristiche che il vostro modello dovrebbe avere.
I parametri di scelta sono abbastanza vari:
Lo scopo per cui li state scegliendo (Multimodali, Computer Vision, Analisi e generazione testo, Audio)
Le librerie su cui si basano (da PyTorch a Tensor Flow, ma ce ne sono una cinquantina)
I dataset di riferimento (ovvero i dati ‘etichettati’ che vengono forniti loro per imparare, qualche centinaio di dataset serve a definire i più popolari.)
Le lingue in cui sono addestrati (Inglese, Italiano, Cinese etc… ci sono più o meno tutte)
Le licenze di utilizzo (Commerciali, non commerciali, e un’altra cinquantina di opzioni con vincoli vari)
Altri parametri (interessante quello sull’indicazione delle emissioni di CO2 utilizzate per il training)
Mal contate sono alcune centinaia di milioni di opzioni diverse!
Ma, per fare una scelta consapevole, dobbiamo porci un po’ di domande ulteriori:
È adatto allo scopo? Tradurre lingue, sintetizzare o generare testi, fare analisi del sentimento, generare o interpretare documenti o immagini sono attività molto diverse tra loro. È importante selezionare un modello in base alle specifiche esigenze del compito da svolgere.
Che addestramento e fine tuning sono stati fatti? I modelli vengono solitamente pre-addestrati su un vasto corpus di dati e possono essere disponibili già perfezionati per compiti specifici. L'estensione del fine-tuning necessario può dipendere da quanto bene il modello pre-addestrato esegue già il compito desiderato. Importante in questo caso capire se l’addestramento è stato fatto tramite Feedback con Rinforzo Umano (RHLF).
Su che dati è preparato ? Più ampio e diversificato il dataset di addestramento, e quanto più il dataset è rappresentativo delle lingue e del contesto che il modello gestirà, più avremo versatilità e meno rischi. Rischi? Sì: riproduzione di Bias, inaccuratezza culturale, mancata comprensione del contesto locale, decisioni errate, perdita di fiducia, conformità legale e reputazione, difficoltà di personalizzazione, costi di rettifica, esclusione di informazioni rilevanti nell’output, mancanza di trasparenza, rischi etici. Vi basta ?
Quali sono le prestazioni e la latenza nelle risposte? I modelli possono essere ospitati in diversi data center ed essere più o meno lenti a rispondere anche in funzione della loro complessità intrinseca. Quanto è importante avere una risposta entro 2 secondi o entro 20? Quante risposte al secondo vogliamo chiedergli (ovviamente in un contesto di automazione)
Quanto costerà implementarlo e manutenerlo? L’apparenza del concetto di “Prendere un modello open-source” e implementarlo in autonomia nasconde centinaia di insidie in termini di costi nascosti: Analisi delle risorse computazionali necessarie -figlie della complessità del modello-, Reperimento di tecnici addestrati per questo compito, Selezione di un fornitore di hosting adatto, Valutazione puntuale dei costi di esecuzione, Assenza di sorprese in corso d’opera, Scalabilità in caso di crescita sono solo alcune.
Come siamo messi a compliancy legale? Solo questo argomento merita un post a parte che arriverà prossimamente con un legale esperto in materia. I temi sono di responsabilità legali in merito, ad esempio, al copyright dei dati usati, alla liceità del loro utilizzo, alle normative in termini di data protection. Direi che basta per un bel mal di testa
Chi ci sa mettere le mani sopra? Quanto è documentato? Trovare tecnici adeguati, come detto sopra, potrebbe essere il vostro peggior incubo, anche in termini di costi. Utilizzare modelli più documentati offre qualche speranza in più di arrivare in fondo al progetto
Dovrò addestrarlo ulteriormente? Se la vostra azienda è specializzata in tautologia della persuasione in ambienti a basso contenuto di idrogeno, probabilmente avrete bisogno di aggiungere documentazione all’addestramento già fatto con processi di Fine Tuning. Che costano e fanno lievitare i costi di esercizio.
Posso integrarlo con il mio sistema informativo? Supponendo di avere sistemi aperti e dati a disposizione va valutata l’interoperabilità del modello con i vostri sistemi. A meno che non abbiate intenzione di consumare i tasti CTRL + C + V di tutte le vostre tastiere.
È sicuro? Ovvero se gli darò tutta la conoscenza aziendale come posso essere tranquillo sul fatto che non sia utilizzata da malintenzionati? I dati sensibili che gli fornirò sono protetti? Potrò dormire la notte?
Mi fermo qui, ce ne sono altre, ma almeno questi sono temi da mettere sul tavolo, pena la mancata aderenza al risultato finale effettivo per lo use-case che avete scelto e l’ottenimento di risultati impredicibili.
E, mi ripeto di nuovo, il fatto che ad oggi stiamo usando la peggior versione di AI possibile implica altri ragionamenti sulla probabile vita futura di ciascun modello. Investire su un ramo che poi si seccherà genera un sacco di grattacapi.
Tutto chiaro?
Facile?
No?
Facciamo Ordine
Rassereniamoci e facciamo un bel respiro.
Scelte con una complessità di magnitudo come quella sopra devono essere fatte nel momento in cui un modello diventa parte di un progetto più grande e sia necessario un processo di cherry picking estremamente articolato.
Ma se la vostra azienda non si occupa di tecnologia e non si è mai affacciata al mondo dell’intelligenza artificiale i parametri tra cui scegliere forse sono minori.
Ci viene in aiuto il concetto di Foundation Models.
Cosa sono i Foundation Models?
Nel primo articolo della serie ho citato i Foundation Models, ovvero i modelli più grandi e importanti, quelli in grado di “fare il maggior numero di cose” (anche a prescindere dalle loro dimensioni).
In pratica avendo un modello in grado di cucinare sarà più facile utilizzarlo per creare una nuova ricetta, lavorando con un modello addestrato su cento lingue sarà più facile insegnargli la centounesima, giocando con un modello addestrato sulle basi musicali sarà più efficace chiedergli di produrre una nuova melodia. Se poi un modello saprà fare tutte queste cose potremo chiedergli la nostra ricetta cantata in lingua Sarda e suonata sullo sfondo musicale migliore, possibilmente riferendomi a qualche opera cinematografica degli anni 60.
I FM sono quindi modelli pensati e progettati per fornire una varietà di risultati vasta e generica, applicabile a compiti molto diversi, come la produzione di testo, audio, immagini.
Sono modelli generali, riferendosi all’ampiezza dei compiti, alla gamma di applicazioni e ai tipi di output che possono produrre.
Alcuni esempi di Foundation Models con le applicazioni più importanti che li utilizzano:
GPT-4 → API → Chat GPT Plus, Khanmigo, Duolingo Max, Bing Chat, …
GPT-3.5 → API → Chat GPT
PaLM 2 → API → Google BARD
Claude → API → Anthropic Claude
Dall-E 3 → API → Chat GPT Plus
LLaMA 2 → API → Meta AI
Mistral → API → Mistral AI
e qualcun altro che ometto per brevità e non per meriti.
Notate la presenza costante delle API (Application program interface) che spesso aggiungono funzionalità software agli LLM. Ad esempio GPT-4 non è fatto da un solo modello ma da un MOE (Mixture Of Experts), ovvero da una decina di modelli diversi. L’API si occupa tra le varie cose di decidere automaticamente a quale modello di esperto rivolgersi in base ai vostri prompt. Oppure si occupa di integrare ulteriori funzionalità quali i Plug-In.
Sono ancora troppi?
Per fortuna a loro volta questi modelli si possono selezionare ulteriormente.
Esistono infatti i SOTA FM (Ovvero State Of The Art Foundation Models), ovvero quelli che, oltre a fare più cose, funzionano meglio degli altri.
In questa lista, se consideriamo di voler lavorare con un sistema multimodale (in grado cioè di processare testo, immagini, suoni) si riduce tutto una lista piuttosto semplice e formata ad oggi da un solo elemento:
GPT 4.0 di Open AI.
perché ad oggi è in grado di supportare qualunque tipo di input a fronte di qualsiasi tipo di output (Esclusi solo i video per ora) ed è in grado di fornirvi un livello di flessibilità che ancora non è presente in altri modelli attraverso un unico punto di accesso.
Credo che Claude stia facendo un ottimo lavoro (Ma deve recuperare molto con compliancy sulla data protection e apertura delle API) e le applicazioni possibili con LLaMA di Meta stiano emergendo in modo interessante; sembra che a breve Gemini di Google surclasserà tutti. Ma oggi, l’unico con cui consiglierei di iniziare e fare pratica è GPT-4 di Open AI.
Poi con il tempo le vostre esigenze risulteranno più chiare e gli altri modelli matureranno, diventeranno produttivi e stabili, e potrete decidere di utilizzarli.
E quanto costa?
Il costo in questo momento è uno dei punti più critici da capire.
Ipotizziamo i seguenti scenari:
Nel primo, MAKE, ipotizziamo quanto costa sviluppare da zero il vostro modello,
Nel secondo, USE, ipotizziamo che adottiate un modello Open Source (es. Llama 2 70b) e lo mettiate su una vostra soluzione di Housing/cloud.
Nel terzo, BUY, vi preoccupate solo di interfacciare le vostre API con quelle del fornitore del modello.
Dai calcoli, in generale, sono esclusi tutti i costi di realizzazione del vostro progetto software, la pulizia dei dati in ingresso se necessaria.
Dagli scenari Make sono esclusi i costi di acquisto, implementazione, manutenzione della piattaforma di housing/cloud, il personale interno o esterno necessario ad implementarla ed extra costi vari a piacere.
MAKE - Modello Nuovo
Addestrare un modello da zero è più o meno costoso in funzione di quanti dati, token, sono stati utilizzati. Ad esempio per addestrare GPT 3.5 sono state utilizzate 1.204 GPU per 34 giorni di elaborazione con un costo di pura computazione di 4.6 milioni di dollari! Ma si parla di cifre che serenamente oscillano tra i 50 ed i 100 milioni, con picchi non dichiarati ancora più alti, per modelli più grandi.
Addestrare modelli più piccoli (7 Miliardi di parametri), come LLaMa costa invece soltanto intorno ai 250.000 USD.
Scegliere quindi di partire con un modello proprietario, basato sui propri dati, istruiti e configurati come noi (o la nostra azienda) ci potremmo aspettare, ha un upfront decisamente impegnativo. Andrà poi capito per quanto tempo il modello sarà utilizzabile prima di dover iniziare da zero a svilupparne uno nuovo, magari con una nuova tecnologia.
A cui dovete aggiungere i costi esclusi sopra.
USE - Modello esistente
In questo caso vale quanto visto sopra sui modelli disponibili su HuggingFace che potete usare sulla loro piattaforma o decidere di portarli su una vostra infrastruttura.
Qui mi fermo poco perché i costi che non considero in questa analisi sono esattamente quelli del esclusi nell’introduzione di questo capitolo.
Implementare un modello esistente, magari open-source e gratuito, ha dei costi nascosti che vanno bene analizzati e dipendono molto dalle performance che volete ottenere, dalla mole di dati che pensate sarà necessaria, da eventuali processi di fine-tuning successivi.
BUY
L’unica cosa “facile” ad oggi sono i prezzi a canone mensile per i servizi in stile chatbot. Con circa 20 Euro/mese avrete a disposizione Chat GPT Plus che include tutti i servizi evoluti di Open AI.
Oppure tra i 10 e i 120 Euro potete abbonarvi a MidJourney per produrre le immagini che più vi piacciono.
Ma queste soluzioni vi forniranno soltanto una piccola parte delle capacità altrimenti a disposizione utilizzando le API.
Le cose iniziano infatti a complicarsi quando decidete di integrare un modello in un vostro processo aziendale attraverso le API. Magari dopo aver fatto del fine-tuning.
Con le immagini è piuttosto semplice: in funzione della risoluzione finale desiderata avete un costo per immagine.
Riguardo il testo va considerato il fatto che il “traffico” di domande e risposte ha costi diversi (Costo Input del Prompt e costo Output della risposta).
Prevedere il traffico in tokens partendo dal numero di caratteri che pensate di usare non è difficile: dividete per 3 (per essere pessimisti; in inglese siamo a circa 2,5 mentre in italiano circa 2,9) il numero di caratteri per ottenere i token su cui si basa il pricing. Il numero varia molto in funzione delle lingue e del tipo di contenuto che prevedete che andranno usati, se volete essere precisi qui trovate Tokenizer, lo strumento messo a disposizione di Open AI proprio per fare questo calcolo.
Prevedere però il numero di caratteri coinvolti nel traffico non è necessariamente semplice: dipende dal tipo di interazioni che prevedete di fare e dalla quantità delle stesse.
Ad esempio:
supponiamo di voler progettare un automatismo che riceva in ingresso dei PDF di Curriculum Vitae corredati di lettera di presentazione.
E che il prompt incluso il testo del CV sia di circa 10.000 caratteri = circa 3.000 token con un’uguale quantità di risposte per semplicità.
Ipotizzando di processare 100 CV al giorno (So che son tanti 🙂) sui quali ottenete feedback dalle interazioni abbiamo 36.500 interazioni l’anno.
Con i prezzi di GPT-3.5 Turbo 16k, di seguito mostrati e spiegati, parliamo circa di $766,00/anno. Niente male vero?
La stessa cosa fatta con GPT-4 32k, costa invece $ 19.710,00. Ben 25 volte tanto (ma comunque molto meno della squadra di analisti che li dovrebbe processare!)
Qui trovate il calcolo fatto su docsbot.ai, che offre un tool interessante per calcolare i costi presunti dei diversi modelli. Direi che occorre fare attenzione!
Per semplicità -i Token sono una variabile ad oggi poco pratica- ho quindi fatto un semplice calcolo di costo al GB (Sempre con Input = Output) e nel grafico di seguito vedete come sia molto importante scegliere il modello giusto in base a tutte le caratteristiche che desiderate dal vostro modello con un'unità di misura che vi è più familiare.

A voi le conclusioni.
Quindi ?
Quindi la scelta di un Modello di AI, se si vogliono considerare tutte le opzioni, non è per nulla semplice.
Come ribadito nei precedenti post l’approccio più ‘corretto’ è quello di procedere a passi brevi, sviluppando prototipi e mantenendo aspettative di piccoli risultati iniziali.
Il modo migliore per farlo ad oggi è quello di utilizzare un Foundation Model unico in grado di fare pressoché tutto, integrandolo con API e pagandone l’utilizzo per arrivare, nel tempo, a valutare alternative.
Perchè ?
Si riducono drasticamente la necessità di selezioni molto complesse e costose.
Si mitigano i rischi derivanti dall’utilizzo del modello errato (in termini di performance, Bias etici, Disponibilità futura del modello).
C’è qualcuno che continuerà a lavorare per voi nelle nuove release (Esistono già progetti non più supportati).
Non c’è la necessità di fare fine-tuning con dati aggiuntivi.
C’è maggior versatilità con l’utilizzo di modelli già disponibili a svolgere compiti diversi.
Offrono maggior interoperabilità con le vostre applicazioni, e lo faranno sempre di più.
É più interessante comprendere il maggior numero di possibilità offerte.
Il tutto, rimanendo “Model Agnostic”, ovvero progettando soluzioni che pur sfruttando i modelli più famosi, possano nel tempo essere adattate, anche solo per alcuni casi d’uso, a modelli che nel tempo emergeranno e si mostreranno migliori su tutti i fronti.
Come sempre, vi invito a riflettere, a commentare, a far girare le idee diffondendo questo post con le persone cui pensate possa interessare.
Per rimanere aggiornato sui miei contenuti:
Leggi Glimpse, il mio romanzo sull'AI.
Oppure contattatami qui.
Alla prossima!
Massimiliano Turazzini




Commenti