Per comprendere il problema, esegui le seguenti attività:
- Indica lo scopo del prodotto che stai sviluppando o refactoring.
- Determina se l'obiettivo è risolto meglio utilizzando il machine learning predittivo, l'IA generativa o una soluzione non ML.
- Verifica di disporre dei dati necessari per addestrare un modello se utilizzi un approccio di ML predittivo.
Indica l'obiettivo
Inizia dichiarando il tuo obiettivo in termini non ML. L'obiettivo è la risposta alla domanda "Cosa sto cercando di ottenere?"
La tabella seguente indica chiaramente gli obiettivi per le app ipotetiche:
App | Obiettivo |
---|---|
App meteo | Calcolare le precipitazioni in incrementi di sei ore per una regione geografica. |
App Moda | Genera una serie di design di camicie. |
App video | Consiglia video utili. |
App di posta | Rilevare lo spam. |
App finanziaria | Riassumere le informazioni finanziarie provenienti da più fonti di notizie. |
App di mappe | Calcolare il tempo di percorrenza. |
App bancaria | Identificare le transazioni fraudolente. |
App per ristoranti | Identificare la cucina dal menu di un ristorante. |
App e-commerce | Rispondi alle recensioni con risposte utili. |
Caso d'uso chiaro per l'ML
Alcuni considerano l'ML uno strumento universale che può essere applicato a tutti i problemi. In realtà, l'ML è uno strumento specializzato adatto solo a problemi specifici. Non vuoi implementare una soluzione ML complessa quando è sufficiente una soluzione non ML più semplice.
I sistemi di ML possono essere suddivisi in due ampie categorie: ML predittivo e IA generativa. La tabella seguente elenca le loro caratteristiche distintive:
Ingresso | Output | Tecnica di allenamento | |
---|---|---|---|
ML predittivo |
Testo Immagine Audio Video Valore numerico |
Consente di fare una previsione, ad esempio classificando le email come spam o non spam, indovinare la pioggia di domani o prevedendo il prezzo di un'azione. In genere, l'output può essere verificato in base alla realtà. | In genere utilizza molti dati per addestrare un modello di apprendimento supervisionato, non supervisionato o di rinforzo per eseguire un'attività specifica. |
Generative AI |
Testo Immagine Audio Video Numerica |
Genera output in base all'intenzione dell'utente, ad esempio riassumendo un articolo o producendo un clip audio o un breve video. | In genere utilizza molti dati non etichettati per addestrare un grande modello linguistico o un generatore di immagini per completare i dati mancanti. Il modello può quindi essere utilizzato per attività che possono essere incorniciate come attività da compilare oppure perfezionati addestrandolo su dati etichettati per un'attività specifica, come per la classificazione. |
Per verificare che l'approccio di ML sia quello giusto, verifica innanzitutto che la tua attuale soluzione non basata sull'IA sia ottimizzata. Se non hai implementato una soluzione non ML, prova di risolvere il problema manualmente utilizzando euristiche.
La soluzione non ML è il benchmark che utilizzerai per determinare se l'ML è un buon caso d'uso per il tuo problema. Prendi in considerazione le seguenti domande quando confronti un approccio non ML con uno ML:
Qualità. Quanto ritieni che possa essere migliore una soluzione di ML? Se pensi che una soluzione di ML possa rappresentare solo un piccolo miglioramento, potrebbe indicare che la soluzione attuale è la migliore.
Costi e manutenzione. Quanto costa la soluzione di ML sia a breve che a lungo termine? In alcuni casi, costa molto di più in termini di le risorse di calcolo e i tempi per implementare l'ML. Considera quanto segue. domande:
- La soluzione ML è in grado di giustificare l'aumento dei costi? Tieni presente che piccoli miglioramenti in sistemi di grandi dimensioni possono giustificare facilmente il costo e la manutenzione dell'implementazione di una soluzione di ML.
- Quanta manutenzione richiederà la soluzione? In molti casi, l'ML le implementazioni richiedono una manutenzione dedicata a lungo termine.
- Il tuo prodotto dispone delle risorse necessarie per supportare la formazione o l'assunzione a chi ha esperienza nel machine learning?
Verifica le tue conoscenze
Dati e ML predittivi
I dati sono la forza trainante dell'ML predittivo. Per rimediare previsioni, sono necessari dati che contiene caratteristiche con funzionalità predittive corrente. I dati devono avere le seguenti caratteristiche:
Abbondante. Maggiore è il numero di esempi pertinenti e utili nel set di dati, migliore sarà il tuo modello.
Coerenza e affidabilità. Avere dati coerenti e affidabili raccolti produrranno un modello migliore. Ad esempio, un modello meteorologico basato su ML trarrà vantaggio dai dati raccolti nel corso degli anni dalla stessa i modelli di machine learning.
Attendibile. Comprendi la provenienza dei dati. I dati provengono da fonti attendibili che controlli, come i log del tuo prodotto, o da fonti di cui non hai molte informazioni, come l'output di un altro sistema di ML?
Disponibile. Assicurati che tutti gli input siano disponibili al momento della previsione nel è nel formato corretto. Se sarà difficile ottenere determinati valori delle caratteristiche in per la previsione, ometti queste caratteristiche dai tuoi set di dati.
Risposta esatta. In set di dati di grandi dimensioni, è inevitabile che alcune etichette abbiano valori errati, ma se più di una piccola percentuale di etichette è errata, il modello produrrà previsioni scadenti.
Rappresentante. I set di dati devono essere rappresentativi del il più possibile. In altre parole, i set di dati devono riflettere accuratamente gli eventi, i comportamenti degli utenti e/o i fenomeni reali modellato. L'addestramento su set di dati non rappresentativi può causare prestazioni scarse. quando al modello viene chiesto di fare previsioni reali.
Se non riesci a ottenere i dati di cui hai bisogno nel formato richiesto, il tuo modello farà cattive previsioni.
Efficacia predittiva
Affinché un modello possa fare previsioni accurate, le caratteristiche del set di dati devono avere capacità predittiva. Più una caratteristica è correlata a un'etichetta, più è probabile che la preveda.
Alcune funzionalità avranno una capacità predittiva maggiore rispetto ad altre. Ad esempio, in un set di dati meteo, caratteristiche come cloud_coverage
, temperature
e
dew_point
sarebbero predittori migliori della pioggia rispetto a moon_phase
o
day_of_week
. Nell'esempio dell'app video, potresti ipotizzare che funzionalità come video_description
, length
e views
potrebbero essere buoni indicatori dei video che un utente vorrebbe guardare.
Tieni presente che la capacità predittiva di una funzionalità può cambiare a causa della variazione del contesto o del dominio. Ad esempio, nell'app video, una funzionalità come upload_date
potrebbero, in generale, essere debolmente correlati con l'etichetta. Tuttavia,
il sottodominio dei video di giochi, upload_date
potrebbe essere strettamente correlato
l'etichetta.
Determinare quali funzionalità hanno un potere predittivo può essere un processo laborioso. Puoi esplorare manualmente la capacità predittiva di una caratteristica rimuovendo e durante l'addestramento di un modello. Puoi automatizzare la ricerca la capacità predittiva mediante algoritmi come Correlazione Pearson, Regolazione delle informazioni reciproche (AMI), e Valore di Shapley, che forniscono una valutazione numerica per analizzare la capacità predittiva di un feature.
Verifica le tue conoscenze
Per ulteriori indicazioni sull'analisi e sulla preparazione dei set di dati, consulta Preparazione dei dati e feature engineering per il machine learning.
Previsioni e azioni
Non ha valore nel prevedere qualcosa se non puoi trasformare la previsione in un'azione che aiuta gli utenti. In altre parole, il tuo prodotto deve eseguire un'azione in base all'output del modello.
Ad esempio, un modello che prevede se un utente troverà utile un video dovrebbe essere inserito in un'app che consiglia video utili. Un modello che prevede l'eventuale pioggia dovrebbe essere collegata a un'app meteo.
Verifica le tue conoscenze
In base allo scenario seguente, determina se l'utilizzo dell'IA è l'approccio migliore per risolvere il problema.
Un team di ingegneri di una grande organizzazione è responsabile telefonate in arrivo.
Obiettivo: comunicare ai chiamanti per quanto tempo rimarranno in attesa una volta stabilito il volume attuale delle chiamate.
Non hanno soluzioni in atto, ma pensano che una soluzione euristica dividere la corrente numero di clienti in attesa rispetto al numero di dipendenti che rispondono al telefono, e poi moltiplica per 10 minuti. Tuttavia, sa che alcuni clienti riescono a risolvere i problemi in due minuti, mentre altre possono richiedere fino a 45 minuti o più.
La loro euristica probabilmente non otterrà un numero abbastanza preciso. Possono
creare un set di dati con le seguenti colonne:
number_of_callcenter_phones
, user_issue
,
time_to_resolve
, call_time
,
time_on_hold
.
time_on_hold
.