Pubblicato il

Quanto costa il machine learning?

L’esplosione di dati e potenza di calcolo a cui stiamo assistendo apre opportunità imprenditoriali. Molti hanno compreso la possibilità di condurre le proprie attività con decisioni basate sui dati, ma al momento di passare alla pratica è difficile capire cosa vuol dire “big data”, “machine learning”, “deep learning” e “data science”. Qual è l’utilità di queste tecnologie e quanto costano?

Se non hai ancora un’idea chiara di cosa è il Machine Learning  leggi qui. La figura che segue esprime i concetti di base: una quantità di dati viene trattata con un algoritmo, che con questi è in grado di addestrare un modello. Il modello è un piccolo programma che contiene le invarianze statistiche (o pattern) estratte dai dati, ed è in grado di generalizzare e rispondere a domande sui dati stessi (e sul mondo che questi rappresentano).

data2model

Vediamo le fasi coinvolte nella costruzione di un modello di machine learning, cercando di stimare i costi di ogni passaggio. Chi è familiare con lo sviluppo di software troverà delle similarità con le pratiche AGILE, poichè da un punto di vista industriale l’intelligenza artificiale non è altro che un tipo avanzato di software. Come per il software appunto, le soluzioni preconfezionate hanno un costo basso ma non soddisfano esigenze specifiche, mentre vale il contrario per le soluzioni custom.

Le principali fasi per lo sviluppo di un modello di machine learning sono:

  1. requisiti
  2. dati
  3. modello
  4. produzione

Si noti che per problemi difficili o cambi dei requisiti in corsa, l’intero processo può essere ripetuto più volte.

1 – Requisiti

La raccolta dei requisisti serve a capire cosa si vuole ottenere dal modello. Più le idee sono chiare su cosa si vuole, più ci si allinea velocemente e si passa all’azione. Esempi di richieste chiare sono:

  • classificare recensioni in positive o negative
  • dire se nelle immagini ci sono o meno dei gatti
  • raccomandare libri in un e-commerce

Più dettagliata è la richiesta, più il preventivo del consulente/agenzia sarà accurato. Il costo di questa fase va da 0 (per chi ha le idee chiare e le ha già documentate) a qualche centinaio di euro. In caso sia necessario integrare l’algoritmo in un setup tecnologico complesso il costo può salire alle migliaia.

Da un punto di vista strategico questo passaggio è il più importante, perchè più energie si dedicano alla comunicazione e mutua comprensione tra le parti, più il progetto ha possibilità di riuscire. A partire da una chiara definizione del problema da risolvere e delle esigenze a cui rispondere, si può passare al trattamento dei dati.

2 – Dati

I dati possono essere visti come l’ “esperienza” del modello. Se addestriamo il modello con tanta esperienza di qualità, questo risponderà meglio alle domande che faremo. Il motto “garbage in, garbage out” si presta bene al concetto. In tutti i casi in cui i dati non sono abbastanza in quantità o pulizia, è necessaria un’attività di preparazione dei dati. Potrebbe essere il caso di raccogliere più dati, comprarli da terze parti o integrare con open data. In ogni caso i dati devono essere ben puliti e strutturati.

E’ possibile che non sia veramente necessario il machine learning, quanto un audit sull’utilizzo ottimale dei propri dati. Ciò è legittimo e ha il grosso valore di offrire un inventario dei dati disponibili in azienda e delle loro possibili applicazioni (solo una di queste è il machine learning).

Il costo di questo passaggio è 0 per dati già pertinenti e puliti, altrimenti si va sulle centinaia di euro. Se la quantità dei dati è tale da necessitare l’utilizzo di un cluster (i famosi big data) il costo può andare sulle migliaia.

3 – Modello

Nonostante la copertura mediatica sul deep learning, i professionisti del settore sanno quanto sia rischioso affidarsi a soluzioni appena arrivate dalla ricerca. Giocare con le nuove tecniche è divertentissimo ma un cliente ha bisogno di risolvere il suo problema in tempi e costi ragionevoli. Dato che io non sono Geoffry Hinton e tu non sei Larry Page, non complichiamoci la vita e seguiamo un percorso lineare! I vecchi algoritmi si prestano a risolvere gran parte dei problemi perchè sono ben compresi e testati nel mondo reale.

Come punto di partenza è importante concordare su una misura di accuratezza del modello, per monitorare i progressi in modo oggettivo. Servono diversi giorni di lavoro per scegliere un algoritmo, addestrare il modello, testarlo e ripetere il ciclo. Il costo può essere dai 1000 euro in su, non è facile generalizzare più di questo. E’ però utile comprendere a fondo questo grafico:

model_improving

In breve, dice: “è facile raggiungere una buona accuratezza, ma dovremo lavorare sempre più duramente per migliorare. Il 100% di accuratezza è quasi impossibile”. Il grafico è derivato da una competizione su kaggle.com proposta da Crowdflower, a prova del fatto che a soffrire di questo plateau sono anche gli esperti di classe mondiale.

4 – Produzione

Una volta che l’algoritmo è testato e pronto per entrare in produzione, ci sono da gestire due attività:

  1. integrazione con il setup esistente. Il modello va inserito in un’architettura, ad esempio un CMS come WordPress, una app Android o un software Intranet. E’ possibile tenere il modello su un server e farlo rispondere alle richieste via REST API. In generale è una buona pratica disaccoppiare il più possibile, di modo che sia possibile il riutilizzo per altre piattaforme e un facile aggiornamento. Le architetture a Microservizi sono in questo senso un trend da seguire.
  2. aggiornare il modello. Potrebbe essere utile un riaddestramento, per imparare da nuovi dati e dare risposte più articolate.

Entrambi non sono obbligatori, quindi anche per questo passaggio il costo varia da 0 a qualche centinaio di euro, più gli update che possono avvenire a intervalli di tempo. L’importante è tenere conto di questi aspetti fin dalla fase di raccolta dei requisiti.

Conclusione

Quanto costa il machine learning? Tra 1000 e diverse migliaia di euro. Questa generalizzazione si presta a tante eccezioni e critiche, ma pone una base per discutere.

Il costo può diminuire drasticamente per i servizi cloud, che offrono algoritmi a tariffa mensile o in base all’utilizzo. Tale risparmio riflette comunque il fatto che gli algoritmi non sono personalizzati. Si trova una via di mezzo in marketplace emergenti come Algorithmia.

Il mercato di dati e algoritmi ha basse barriere all’ingresso e non è ancora strettamente regolato. Ci sono soldi da fare sia per chi capisce il valore di comprare intelligenza artificiale, sia per chi riesce a offrire loro delle soluzioni custom a prezzi ragionevoli.

Sono curioso di conoscere la tua opinione su questo tema, tramite un commento qui sotto, un tweet o un post.
In caso hai bisogno di aiuto su una o tutte le fasi descritte, contattami. Scrivo codice di intelligenza artificiale da più di 10 anni e ho tanta esperienza da condividere.

Un pensiero su “Quanto costa il machine learning?

  1. […] Come rientra l’investimento nel machine learning? E’ la stessa cosa che chiedere il ritorno di investimento della ricerca e sviluppo. Ci si può aspettare un grande ritorno sul lungo termine, i costi possono variare. […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *