Stima del tempo, dei costi e dei risultati finali di un progetto di app ML
Pubblicato: 2019-11-20Immagina di andare a comprare un portafoglio personalizzato in un negozio.
Anche se sei consapevole del tipo di portafoglio di cui hai bisogno, ma non conosci il costo o il tempo impiegato per ottenere la versione personalizzata.
Lo stesso vale per i progetti di apprendimento automatico. E per aiutarti con questo dilemma, abbiamo fornito informazioni dettagliate per farti avere un progetto di successo.
Il Machine Learning è come una moneta con due facce .
Da un lato, aiuta ad eliminare le incertezze dai processi. Ma d'altra parte , il suo sviluppo è pieno di incertezze.
Mentre il risultato finale di quasi tutti i progetti di Machine Learning (ML) è una soluzione che migliora le aziende e semplifica i processi ; la parte di sviluppo ha una storia completamente diversa da condividere.
Anche se ML ha svolto un ruolo enorme nel cambiare la storia di profitto e il modello di business di diversi marchi affermati di app mobili, opera ancora in fase nascente. Questa novità, a sua volta, rende ancora più difficile per gli sviluppatori di applicazioni mobili gestire un piano di progetto ML e renderlo pronto per la produzione, tenendo presente i vincoli di tempo e costi.
Una soluzione ( probabilmente l'unica soluzione ) a questa difficoltà è la stima in bianco e nero del progetto di app di Machine Learning del tempo, dei costi e dei risultati finali.
Ma prima di passare a quelle sezioni, diamo un'occhiata a ciò che vale la difficoltà e l'accensione delle candele notturne.
Perché la tua app ha bisogno di un framework di apprendimento automatico?
Potresti pensare come mai stiamo parlando di framework nel bel mezzo di stime di tempi, costi e risultati finali.
Ma la vera ragione dietro il tempo e il costo sta qui, che ci informa sul motivo alla base dello sviluppo di app. Se hai bisogno dell'apprendimento automatico per:
Per offrire un'esperienza personalizzata
Per incorporare la ricerca avanzata m
Per la previsione del comportamento dell'utente
Per una migliore sicurezza
Per il coinvolgimento profondo degli utenti
Sulla base di questi motivi, il tempo, il costo e la consegna dipenderanno di conseguenza.
Tipi di modelli di apprendimento automatico
Che tipo di modello prenderesti in considerazione per regolare tempi e costi? Se non lo sai, ti abbiamo fornito informazioni per capire e scegliere i modelli, a seconda delle tue esigenze e del tuo budget.
L'apprendimento automatico tra i suoi diversi casi d'uso può essere classificato in tre tipi di modelli, che svolgono un ruolo nel trasformare le app rudimentali in app mobili intelligenti : supervisionate, non supervisionate e rinforzate. La conoscenza di ciò che rappresentano questi modelli di Machine Learning è ciò che aiuta a definire come sviluppare un'app abilitata ML.
Apprendimento supervisionato
È il processo in cui al sistema vengono forniti dati in cui gli input dell'algoritmo e i relativi output sono etichettati correttamente. Poiché le informazioni di input e output sono etichettate, il sistema viene addestrato per identificare i modelli nei dati all'interno dell'algoritmo.
Diventa tanto più vantaggioso in quanto viene utilizzato per prevedere il risultato sulla base di dati di input futuri. Un esempio di ciò può essere visto quando i social media riconoscono il volto di qualcuno quando viene taggato in una fotografia.
Apprendimento senza supervisione
Nel caso dell'apprendimento non supervisionato, i dati vengono inseriti nel sistema ma i suoi output non sono etichettati come nel caso del modello supervisionato. Consente al sistema di identificare i dati e determinare i modelli dalle informazioni. Una volta che i modelli sono stati memorizzati, tutti gli ingressi futuri vengono assegnati al modello per produrre un'uscita.
Un esempio di questo modello può essere visto nei casi in cui i social media danno suggerimenti agli amici sulla base di diversi dati noti come demografia, background scolastico, ecc.
Insegnamento rafforzativo
Come nel caso dell'apprendimento non supervisionato, anche i dati forniti al sistema nell'apprendimento per rinforzo non sono etichettati. Entrambi i tipi di apprendimento automatico differiscono in quanto quando viene prodotto un output corretto, al sistema viene detto che l'output è corretto. Questo tipo di apprendimento consente al sistema di apprendere dall'ambiente e dalle esperienze.
Un esempio di questo può essere visto in Spotify. L'app Spotify fornisce una raccomandazione per i brani a cui gli utenti devono quindi dare un pollice in su o un pollice in giù. Sulla base della selezione, l'app Spotify apprende i gusti musicali degli utenti.
Ciclo di vita di un progetto di apprendimento automatico
Il ciclo di vita di una sequenza temporale dei risultati di un progetto di Machine Learning di solito appare così:
Configurazione del piano di progetto ML
- Definire il compito e i requisiti
- Identificare la fattibilità del progetto
- Discutere i compromessi generali del modello
- Crea una base di codice del progetto
Raccolta ed etichettatura dei dati
- Creare la documentazione di etichettatura
- Costruisci la pipeline di importazione dei dati
- Convalida della qualità dei dati
Esplorazione del modello
- Stabilire la linea di base per le prestazioni del modello
- Crea un modello semplice con una pipeline di dati iniziale
- Prova idee parallele durante le prime fasi
- Trova il modello SoTA per il dominio del problema, se presente, e riproduci i risultati.
Affinamento del modello
- Esegui ottimizzazioni incentrate sul modello
- Eseguire il debug dei modelli man mano che viene aggiunta la complessità
- Condurre l'analisi degli errori per scoprire le modalità di errore.
Testare e valutare
- Valutare il modello sulla distribuzione dei test
- Rivedi la metrica di valutazione del modello, assicurandoti che guidi il comportamento desiderabile degli utenti
- Scrivi test per – funzione di inferenza del modello, pipeline di dati di input, scenari espliciti previsti nella produzione.
Implementazione del modello
- Esponi il modello tramite l'API REST
- Distribuisci il nuovo modello a un sottoinsieme di utenti per assicurarti che tutto sia fluido prima dell'implementazione finale.
- Avere la possibilità di ripristinare i modelli alla versione precedente
- Monitora i dati in tempo reale.
Manutenzione del modello
- Reimpostare il modello per prevenire l'obsolescenza del modello
- Educare il team in caso di trasferimento della proprietà del modello
Come stimare l'ambito di un progetto di apprendimento automatico?
Il team di Appinventiv Machine Learning dopo aver esaminato il tipo di Machine Learning e il ciclo di vita dello sviluppo continua a definire la stima del progetto dell'app Machine Learning del progetto seguendo queste fasi:
Fase 1 – Scoperta (da 7 a 14 giorni)
La roadmap del piano di progetto ML inizia con la definizione di un problema. Esamina i problemi e le inefficienze operative che dovrebbero essere affrontate.
L'obiettivo qui è identificare i requisiti e vedere se Machine Learning soddisfa gli obiettivi di business . La fase richiede ai nostri ingegneri di incontrare gli uomini d'affari dal lato del cliente per comprendere la loro visione in termini di problemi che stanno cercando di risolvere.
In secondo luogo, il team di sviluppo dovrebbe identificare il tipo di dati di cui dispone e se è necessario recuperarli da un servizio esterno.
Successivamente, gli sviluppatori devono valutare se sono in grado di supervisionare gli algoritmi, se restituisce la risposta corretta ogni volta che viene effettuata una previsione.
Deliverable : una dichiarazione del problema che definirebbe se un progetto è banale o complesso.
Fase 2 – Esplorazione (da 6 a 8 settimane)
L'obiettivo di questa fase è costruire su una Proof of Concept che può quindi essere installata come API. Una volta addestrato un modello di base, il nostro team di esperti di ML stima le prestazioni della soluzione pronta per la produzione.
Questa fase ci dà la chiarezza su quali prestazioni ci si dovrebbe aspettare con le metriche pianificate nella fase di scoperta.
Deliverable : una prova di concetto
Fase 3 – Sviluppo (4+ mesi)
Questa è la fase in cui il team lavora in modo iterativo fino a raggiungere una risposta pronta per la produzione. Poiché ci sono molte meno incertezze nel momento in cui il progetto raggiunge questa fase, la stima diventa molto precisa.
Ma nel caso in cui il risultato non fosse migliorato, gli sviluppatori dovrebbero applicare un modello diverso o rielaborare i dati o addirittura modificare il metodo, se necessario.
In questa fase, i nostri sviluppatori lavorano in sprint e decidono cosa fare dopo ogni singola iterazione. I risultati di ogni sprint possono essere previsti in modo efficace.
Sebbene l'esito dello sprint possa essere previsto in modo efficace, pianificare gli sprint in anticipo può essere un errore in caso di Machine Learning, poiché lavorerai su acque inesplorate.
Deliverable : una soluzione ML pronta per la produzione
Fase 4 – Miglioramento (continuo)
Una volta implementato, i responsabili delle decisioni hanno quasi sempre fretta di terminare il progetto per risparmiare sui costi. Sebbene la formula funzioni nell'80% dei progetti, lo stesso non si applica nelle app di Machine Learning.
Quello che succede è che i dati cambiano durante la sequenza temporale del progetto Machine Learning. Questo è il motivo per cui un modello di intelligenza artificiale deve essere costantemente monitorato e rivisto, per salvarlo dal degrado e fornire un'intelligenza artificiale sicura che consenta lo sviluppo di app mobili .
I progetti centrati sull'apprendimento automatico richiedono tempo per ottenere risultati soddisfacenti. Anche quando trovi che i tuoi algoritmi battono i benchmark fin dall'inizio, è probabile che siano uno strike e il programma potrebbe perdersi se utilizzato su un set di dati diverso.
Fattori che influiscono sul costo complessivo
Il modo per sviluppare un sistema di apprendimento automatico ha alcune caratteristiche distintive come problemi relativi ai dati e fattori relativi alle prestazioni che decidono l'ultima spesa.
Problemi relativi ai dati
Lo sviluppo di un apprendimento automatico affidabile non dipende solo da una codifica fenomenale, ma anche la qualità e la quantità delle informazioni di formazione svolgono un ruolo cruciale.
- Mancanza di dati adeguati
- Procedure complesse di estrazione, trasformazione e caricamento
- Elaborazione dati non strutturata
Problemi relativi alle prestazioni
Le prestazioni adeguate dell'algoritmo sono un altro importante fattore di costo, poiché un algoritmo di alta qualità richiede diversi round di sessioni di ottimizzazione.
- Il tasso di precisione varia
- Prestazioni di algoritmi di elaborazione
Come stimiamo il costo di un progetto di machine learning?
Quando si parla di stima del costo di un progetto di machine learning, è importante prima identificare di quale tipo di progetto si parla.
Esistono principalmente tre tipi di progetti di Machine Learning , che svolgono un ruolo nel rispondere a Quanto costa Machine Learning:
Primo: questo tipo ha già una soluzione: entrambi: l'architettura del modello e il set di dati esistono già. Questi tipi di progetti sono praticamente gratuiti, quindi non ne parleremo.
Secondo – Questi progetti richiedono una ricerca fondamentale – applicazione del ML in un dominio completamente nuovo o su strutture di dati diverse rispetto ai modelli tradizionali. Il costo di questi tipi di progetti è solitamente uno che la maggior parte delle startup non può permettersi.
Terzo – Questi sono quelli su cui ci concentreremo nella nostra stima dei costi. Qui prendi l'architettura del modello e gli algoritmi già esistenti e poi li modifichi per adattarli ai dati su cui stai lavorando.
Passiamo ora alla parte in cui stimiamo il costo del progetto ML.
Il costo dei dati
I dati sono la valuta principale di un progetto di Machine Learning. Massimo delle soluzioni e la ricerca si concentra sulle variazioni del modello di apprendimento supervisionato. È risaputo che più profondo è l'apprendimento supervisionato, maggiore è la necessità di dati annotati e, a sua volta, maggiore è il costo di sviluppo dell'app Machine Learning .
Ora, mentre servizi come Scale e Mechanical Turk di Amazon possono aiutarti con la raccolta e l'annotazione dei dati, che dire della qualità?
Controllare e quindi correggere i campioni di dati può richiedere molto tempo. La soluzione al problema è duplice: esternalizzare la raccolta dei dati o perfezionarla internamente.
È necessario esternalizzare la maggior parte del lavoro di convalida e perfezionamento dei dati e quindi nominare una o due persone internamente per la pulizia dei campioni di dati e l'etichettatura.
Il costo della ricerca
La parte di ricerca del progetto, come abbiamo condiviso sopra, si occupa dello studio di fattibilità entry level, della ricerca dell'algoritmo e della fase di sperimentazione. Le informazioni che di solito emergono da un'officina di consegna del prodotto . Fondamentalmente, la fase esplorativa è quella che ogni progetto attraversa prima della sua produzione.
Il completamento della fase con la massima perfezione è un processo che viene fornito con un numero allegato nel costo dell'implementazione della discussione ML.
Il costo di produzione
La parte di produzione del costo del progetto di Machine Learning è costituita da costi di infrastruttura, costi di integrazione e costi di manutenzione. Di questi costi, dovrai sostenere le spese minori con il calcolo del cloud. Ma anche questo varierà dalla complessità di un algoritmo all'altro.
Il costo dell'integrazione varia da un caso d'uso all'altro. Di solito è sufficiente inserire un endpoint API nel cloud e documentarlo per essere poi utilizzato dal resto del sistema.
Un fattore chiave che le persone tendono a trascurare durante lo sviluppo di un progetto di machine learning è la necessità di passare un supporto continuo durante l'intero ciclo di vita del progetto. I dati che arrivano dalle API devono essere puliti e annotati correttamente. Quindi, i modelli devono essere addestrati su nuovi dati e testati, implementati.
Oltre ai punti sopra menzionati, ci sono altri due fattori che hanno un'importanza nella stima del costo per sviluppare un'app AI/app ML .
Sfide nello sviluppo di app di machine learning
Di solito, quando viene tracciata una stima del progetto di un'app Machine Learning, vengono prese in considerazione anche le sfide di sviluppo ad essa associate . Ma possono esserci casi in cui le sfide si trovano a metà del processo di sviluppo di app basato su ML. In casi come questi, la stima complessiva di tempi e costi aumenta automaticamente.
Le sfide per i progetti di Machine Learning possono variare da:
- Decidere quale insieme di funzionalità sarebbe diventato funzionalità di apprendimento automatico
- Deficit di talenti nel dominio dell'IA e dell'apprendimento automatico
- L'acquisizione di set di dati è costosa
- Ci vuole tempo per ottenere risultati soddisfacenti
Conclusione
La stima della manodopera e del tempo necessari per completare un progetto software è relativamente facile quando è sviluppato sulla base di progetti modulari ed è gestito da un team esperto che segue un approccio Agile . Lo stesso, tuttavia, diventa ancora più difficile quando si lavora sulla creazione della stima del progetto dell'app Machine Learning in base al tempo e agli sforzi.
Anche se gli obiettivi potrebbero essere ben definiti, la garanzia se un modello raggiungerà o meno il risultato desiderato non esiste. Di solito non è possibile ridurre l'ambito e quindi eseguire il progetto in un'impostazione time boxed attraverso una data di consegna predefinita.
È di primaria importanza che tu identifichi che ci saranno delle incertezze. Un approccio che può aiutare a mitigare i ritardi è garantire che i dati di input siano nel formato giusto per Machine Learning.
Ma alla fine, indipendentemente dall'approccio che prevedi di seguire, sarà considerato efficace solo quando collaborerai con un'agenzia di sviluppo di app di Machine Learning che sa come sviluppare e distribuire le complessità nella loro forma più semplice.
Domande frequenti sulla stima del progetto dell'app Machine Learning
D. Perché utilizzare Machine Learning nello sviluppo di un'app?
Ci sono una serie di vantaggi che le aziende possono sfruttare con l'incorporazione di Machine Learning nelle loro app mobili. Alcuni dei più diffusi sono sul fronte del marketing delle app:
- Offrire un'esperienza personalizzata
- Ricerca Avanzata
- Prevedere il comportamento degli utenti
- Coinvolgimento degli utenti più profondo
D. In che modo il machine learning può aiutare la tua azienda?
I vantaggi di Machine Learning per le aziende vanno oltre il contrassegno come marchio dirompente. Si riduce al fatto che le loro offerte diventano più personalizzate e in tempo reale.
Il machine learning può essere la formula segreta che avvicina le aziende ai propri clienti, proprio come vogliono essere avvicinate.
D. Come stimare il ROI sullo sviluppo di un progetto di Machine learning?
Mentre l'articolo ti avrebbe aiutato a stabilire la stima del progetto dell'app Machine Learning, il calcolo del ROI è un gioco diverso. Dovrai anche tenere in considerazione il costo opportunità nel mix. Inoltre, dovrai esaminare le aspettative che la tua azienda ha dal progetto.
D. Quale piattaforma è migliore per un progetto ML?
La tua scelta se connetterti con una società di sviluppo di app Android o con sviluppatori iOS dipenderà interamente dalla tua base di utenti e dall'intento, sia che si tratti di profitto o incentrato sul valore.