Machine learning: sviluppatori e fornitori devono essere chiari e trasparenti

Con l'esperienza fatta da 200 applicazioni IA pronte all'uso, SAP sa che il machine learning impone a sviluppatori e fornitori IT di cambiare approccio nel valutare gli obiettivi dei progetti software, le risorse e i preventivi di spesa

Sviluppo software lavagna metodi sviluppo preventivi
Credit immagine: Depositphotos

I progetti software che includono elementi di intelligenza artificiale e machine learning sono ormai passati da una fase sperimentale a quella di messa in produzione, con precisi intenti e obiettivi di miglioramento dei processi di business.

Per esempio, al TechEd 2019 di Barcellona SAP ha annunciato di avere ormai un portfolio di 200 casi applicativi di machine learning pronti all’uso, che possono essere facilmente integrati dai clienti nei propri progetti. L’efficacia di queste applicazioni è abbastanza prevedibile e in alcuni casi anche sorprendente, perfino per uno specialista come Ulf Brackmann, Vice President e Head of Machine Learning Applications di SAP, che abbiamo incontrato a margine dell’evento: “Per fare un esempio, la nostra applicazione che utilizza il machine learning per riconciliare le fatture emesse e i pagamenti ricevuti ha permesso di ridurre dal 20-30 percento al 10-15 percento il numero di documenti non riconosciuti automaticamente e che richiedono quindi un lungo e costoso intervento manuale. Sono particolarmente orgoglioso di come il sistema sia in grado di leggere una fattura basata su un modello grafico mai visto prima ed estrarne correttamente le informazioni rilevanti”.

Malgrado ciò, Brackmann mette in guardia gli sviluppatori: “Il machine learning impone di cambiare radicalmente alcuni dei presupposti con con le aziende sviluppano, acquistano e vendono software. Tutti devono comprendere la natura probabilistica e non completamente prevedibile del machine learning”.

Non fare promesse che non si possono mantenere

Che si tratti di un committente interno o del cliente di una software house, gli sviluppatori devono mettere in chiaro che – anche nel migliore dei casi – il machine learning darà risultati che prevedono una probabilità di errore. Se il cliente pensa di usare il software senza supervisione umana, può permettersi di affrontare quegli errori?

Ulf Brackmann, Vice President e Head of Machine Learning Applications di SAP

Il tutto non può essere esaminato in astratto, o sotto l’aspetto delle specifiche tecnologiche, ma confrontato con il vero valore che il processo automatizzato può offrire a quella linea di business.

L’azienda deve chiedersi “cosa ci guadagno dall’intelligenza artificiale”? Se permette di liberare tempo ed energia dei dipendenti in modo che possano occuparsi di compiti più specialistici e meno ripetitivi che apportano più valore, allora ha senso. Se rincorrere e rimediare agli errori porta via più tempo o denaro rispetto al processo manuale, probabilmente no.

Machine learning: il ruolo cruciale dei dati nello sviluppo software

Nel machine learning, il lavoro degli sviluppatori ha una incidenza solo parziale sul successo e sul corretto funzionamento del software. L’altro fattore determinante è rappresentato dalla quantità di dati da analizzare e dalla loro qualità. Un algoritmo provato e testato sul campo, può funzionare in modo molto diverso se i dati con cui viene addestrato e che sarà chiamato ad analizzare non sono in numero sufficiente, o sono qualitativamente inferiori. “Comprendere i dati è la parte cruciale – afferma Brackmann – e per questo in molte aziende si sta accentrando la gestione dei dati e definendo la figura del Chief Data Officer, che oltre a raccogliere, organizzare e validare qualitativamente i dati, deve anche garantire un utilizzo corretto dal punto di vista della compliance normativa”. Una figura di questo tipo va coinvolta prima ancora di cominciare il progetto, per evitare di dover scoprire solo in fase di go-live che non si aveva l’autorizzazione per trattare certi dati, in fase di training o di utilizzo.

Se questo vale per gli algoritmi già noti e testati su problematiche standard, le cose si complicano se l’azienda o il cliente vogliono sviluppare un sistema di machine learning da zero, per indirizzare un’applicazione di business specifica.

Metodi di sviluppo per la IA: gestione delle risorse e preventivi

Considerata la natura probabilistica e l’incertezza sui dati, il modello di sviluppo software tradizionale a cascata in cui, dato un task di sviluppo e una data di consegna, il responsabile individua le risorse e traccia il suo bel diagramma di Gantt in base a cui calcolare i costi del progetto, non è più applicabile.

“In un progetto tradizionale, se a metà dello sviluppo, il capo progetto si accorge di essere in ritardo, può decidere se assegnare più risorse o comunicare un ritardo nella consegna. Quando si ha a che fare con il machine learning, non è possibile fare questo tipo di previsione. Anzi, non si può nemmeno essere sicuri a priori che l’algoritmo funzionerà con i dati effettivi utilizzati dal business, né se il risultato sarà accettabile in base agli obiettivi prefissati”, afferma Brackmann.

Credit immagine: Depositphotos

È necessario adottare una metodologia più simile all’Agile, con una continua collaborazione con il cliente, cominciando fin dall’inizio a validare gli algoritmi usando dati reali con quesiti molto semplici. Periodicamente, andranno valutati i risultati con il cliente per verificare se il progetto sta andando nella direzione giusta, o se è destinato al fallimento. Che è una cosa che può capitare. “L’importante è agire sempre con la massima trasparenza, comunicando in modo chiaro tra partner in un lavoro che è di co-innovazione”, dice Brackman.

E se dopo qualche mese si capisce che il progetto non è realizzabile, chi paga il conto? “Noi facciamo molto sviluppo software standard, in cui il cliente paga per il prodotto finito. Con questo modello, se dopo un periodo di sviluppo iniziale si valuta che il progetto dovrà essere dismesso, il problema è nostro. Nel caso invece di richieste di sviluppo customizzato e sperimentale su richiesta del cliente, questa responsabilità potrebbe essere condivisa. Tutto deve essere basato sulla trasparenza. Non si tratta più di qualcosa che abbiamo inventato noi, specifico dei nostri prodotti, ma che è specifico del machine learning ed è vincolato ai limiti della tecnologia. Solitamente però, non capita di dover fermare grossi progetti in fase avanzata. Facendo test preliminari, con problemi semplici, si può capire fin dagli stadi iniziali se il progetto ha possibilità di successo oppure no.

Previsioni sul futuro del machine learning in azienda

Come evolverà l’utilizzo del machine learning in azienda nei prossimi anni? “Come ogni tecnologia, diventerà prima o poi una commodity. Se ora è possibile differenziarsi e riscuotere interesse in quanto sviluppatori di machine learning, presto la IA sarà solo una delle caratteristiche che ci si aspetta di trovare nel software”, dice Brackmann, che prosegue: “Questo in parte sta già accadendo: con il nostro portfolio di casi d’uso preimpostati e un crescente set di strumenti di sviluppo, dal punto di vista tecnico il machine learning è alla portata di un numero di sviluppatori sempre maggiore. Il punto problematico non è più tecnico, ma si tratta di definire il valore del software per il business, i suoi obiettivi e chiarire le potenzialità, ma anche i limiti attuali, del machine learning”.