Dopo aver verificato che il problema può essere risolto al meglio utilizzando un ML predittivo o un approccio all'AI generativa, puoi strutturare il problema in termini di ML. Per inquadrare un problema in termini di ML, completa le seguenti attività:
- Definisci il risultato ideale e l'obiettivo del modello.
- Identificare l'output del modello.
- Definisci le metriche più efficaci.
Definire il risultato ideale e l'obiettivo del modello
Indipendentemente dal modello di ML, qual è il risultato ideale? In altre parole, qual è l'attività esatta che vuoi che venga eseguita dal tuo prodotto o dalla tua funzionalità? Si tratta della stessa affermazione che hai definito in precedenza nella sezione Indica l'obiettivo.
Collega l'obiettivo del modello al risultato ideale definendo esplicitamente cosa vuoi che faccia il modello. La seguente tabella indica i risultati ideali e l'obiettivo del modello per le app ipotetiche:
App | Risultato ideale | Obiettivo del modello |
---|---|---|
App Meteo | Calcola le precipitazioni per una regione geografica in incrementi di sei ore. | Prevedere la quantità di precipitazioni di sei ore per regioni geografiche specifiche. |
App di moda | Genera vari modelli di magliette. | Genera tre tipi di design di una camicia da un testo e un'immagine, in cui il testo indica lo stile e il colore e l'immagine indica il tipo di maglietta (t-shirt, bottone, polo). |
App di video | Consiglia video utili. | Prevedere se un utente farà clic su un video. |
App di posta | Rileva lo spam. | Prevedere se un'email è spam o meno. |
App finanziaria | Riepilogare le informazioni finanziarie di diverse fonti di notizie. | Genera riepiloghi di 50 parole delle principali tendenze finanziarie dei sette giorni precedenti. |
App di mappe | Calcolare il tempo di percorrenza. | Prevedere il tempo che impiegherà per passare da un punto all'altro. |
App bancaria | Identifica le transazioni fraudolente. | Prevedere se una transazione è stata effettuata dal titolare della carta. |
App di ristoranti | Identifica i piatti in base al menù di un ristorante. | Prevedere il tipo di ristorante. |
App e-commerce | Generare risposte all'assistenza clienti relative ai prodotti dell'azienda. | Genera risposte utilizzando l'analisi del sentiment e la knowledge base dell'organizzazione. |
Identifica l'output di cui hai bisogno
La scelta del tipo di modello dipende dal contesto specifico e dai vincoli del problema. L'output del modello dovrebbe completare l'attività definita nel risultato ideale. Pertanto, la prima domanda a cui rispondere è "Di che tipo di output ho bisogno per risolvere il mio problema?"
Se devi classificare qualcosa o effettuare una previsione numerica, probabilmente utilizzerai il machine learning predittivo. Se devi generare nuovi contenuti o produrre output relativi alla comprensione del linguaggio naturale, probabilmente utilizzerai l'AI generativa.
Le seguenti tabelle elencano gli output di ML predittivo e di AI generativa:
Sistema ML | Output di esempio | |
---|---|---|
Classificazione | Programma binario | Classificare un'email come spam o non spam. |
Etichetta singola multiclasse | Classifica un animale in un'immagine. | |
Multiclasse multi-etichetta | Classifica tutti gli animali in un'immagine. | |
Numerico | Regressione unidimensionale | Prevedere il numero di visualizzazioni che un video riceverà. |
Regressione multidimensionale | Prevedere la pressione sanguigna, la frequenza cardiaca e i livelli di colesterolo di un individuo. |
Tipo di modello | Output di esempio |
---|---|
Testo |
Riassumi un articolo. Rispondere alle recensioni dei clienti. Traduci documenti dall'inglese al mandarino. Scrivi descrizioni dei prodotti. Analizzare i documenti legali.
|
Immagine |
Produci immagini di marketing. Applicare effetti visivi alle foto. Genera varianti del design del prodotto.
|
Audio |
Genera un dialogo con un accento specifico.
Generare una breve composizione musicale di un genere specifico, come il jazz.
|
Video |
Genera video realistici.
Analizza i filmati e applica effetti visivi.
|
Multimodale | Produci più tipi di output, ad esempio un video con sottotitoli codificati in formato testuale. |
Classificazione
Un modello di classificazione prevede a quale categoria appartengono i dati di input, ad esempio se un input deve essere classificato come A, B o C.
Figura 1. Un modello di classificazione che fa previsioni.
In base alla previsione del modello, la tua app potrebbe prendere una decisione. Ad esempio, se la previsione è di categoria A, esegui X; se la previsione è di categoria B, allora esegui Y; se la previsione è di categoria C, esegui Z. In alcuni casi, la previsione è l'output dell'app.
Figura 2. L'output di un modello di classificazione utilizzato nel codice prodotto per prendere una decisione.
Regressione
Un modello di regressione prevede un valore numerico.
Figura 3. Un modello di regressione che esegue una previsione numerica.
In base alla previsione del modello, la tua app potrebbe prendere una decisione. Ad esempio, se la previsione rientra nell'intervallo A, esegui X; se la previsione rientra nell'intervallo B, scegli Y; se la previsione rientra nell'intervallo C, esegui Z. In alcuni casi, la previsione è l'output dell'app.
Figura 4. Output di un modello di regressione utilizzato nel codice prodotto per prendere una decisione.
Considera il seguente scenario:
Vuoi memorizzare nella cache i video in base alla popolarità prevista. In altre parole, se il modello prevede che un video sarà popolare, vuoi pubblicarlo rapidamente per gli utenti. A questo scopo, utilizzerai la cache più efficace e costosa. Per gli altri video, userai una cache diversa. I criteri per la memorizzazione nella cache sono i seguenti:
- Se si prevede che un video riceva almeno 50 visualizzazioni, è necessario utilizzare la costosa cache.
- Se si prevede che un video avrà tra le 30 e le 50 visualizzazioni, puoi utilizzare la cache economica.
- Se si prevede che il video riceverà meno di 30 visualizzazioni, non verrà memorizzato nella cache.
Pensi che un modello di regressione sia l'approccio giusto perché prevederà un valore numerico, il numero di visualizzazioni. Tuttavia, quando addestra il modello di regressione, ti rendi conto che produce la stessa perdita per una previsione di 28 e 32 per i video con 30 visualizzazioni. In altre parole, anche se la tua app avrà un comportamento molto diverso se la previsione è 28 anziché 32, il modello considera entrambe le previsioni ugualmente valide.
Figura 5. Addestramento di un modello di regressione.
I modelli di regressione non sono a conoscenza delle soglie definite per il prodotto. Di conseguenza, se il comportamento dell'app cambia in modo significativo a causa di piccole differenze nelle previsioni di un modello di regressione, dovresti prendere in considerazione l'implementazione di un modello di classificazione.
In questo scenario, un modello di classificazione produrrebbe il comportamento corretto perché un modello di classificazione produrrebbe una perdita maggiore per una previsione di 28 rispetto a 32. In un certo senso, i modelli di classificazione producono soglie per impostazione predefinita.
Questo scenario mette in evidenza due punti importanti:
Prevedere la decisione. Se possibile, prevedete la decisione che prenderà l'app. Nell'esempio del video, un modello di classificazione prevederebbe la decisione se le categorie in cui ha classificato i video fossero "senza cache", "cache economica" e "cache costosa". Nascondere il comportamento della tua app al modello può causare il comportamento errato dell'app.
Comprendere i vincoli del problema. Se la tua app esegue azioni diverse in base a soglie diverse, determina se queste soglie sono fisse o dinamiche.
- Soglie dinamiche: se le soglie sono dinamiche, utilizza un modello di regressione e imposta i limiti delle soglie nel codice della tua app. In questo modo puoi aggiornare facilmente le soglie, mantenendo al contempo il modello di fare previsioni ragionevoli.
- Soglie fisse: se le soglie sono fisse, utilizza un modello di classificazione ed etichetta i set di dati in base ai limiti di soglia.
In generale, la maggior parte del provisioning della cache è dinamico e le soglie cambiano nel tempo. Di conseguenza, poiché si tratta in particolare di un problema di memorizzazione nella cache, un modello di regressione è la scelta migliore. Tuttavia, per molti problemi, le soglie verranno risolte, rendendo un modello di classificazione la soluzione migliore.
Diamo un'occhiata a un altro esempio. Se stai creando un'app meteo il cui risultato ideale è di comunicare agli utenti quanto pioverà nelle prossime sei ore, puoi utilizzare un modello di regressione che prevede l'etichetta precipitation_amount.
Risultato ideale | Etichetta ideale |
---|---|
Comunica agli utenti quanto pioverà nella loro zona nelle prossime sei ore. | precipitation_amount
|
Nell'esempio dell'app Meteo, l'etichetta indica direttamente il risultato ideale.
Tuttavia, in alcuni casi, non è chiara una relazione one-to-one tra il risultato ideale e l'etichetta. Ad esempio, nell'app di video il risultato ideale
è consigliare video utili. Tuttavia, non esiste alcuna etichetta nel set di dati denominato
useful_to_user.
Risultato ideale | Etichetta ideale |
---|---|
Consiglia video utili. | ? |
Pertanto, devi trovare un'etichetta proxy.
Etichette proxy
Le etichette proxy sostituiscono le etichette che non sono presenti nel set di dati. Le etichette proxy sono necessarie quando non puoi
misurare direttamente ciò che vuoi prevedere. Nell'app video non possiamo misurare direttamente
se un utente troverà utile un video. Sarebbe bello se il set di dati avesse una funzionalità useful
e gli utenti avessero contrassegnato tutti i video che hanno trovato utili, ma poiché il set di dati non lo ha, avremo bisogno di un'etichetta proxy che sostituisca l'utilità.
Un'etichetta proxy che indica l'utilità potrebbe indicare se l'utente condividerà o meno il video.
Risultato ideale | Etichetta proxy |
---|---|
Consiglia video utili. | shared OR liked |
Fai attenzione alle etichette proxy perché non misurano direttamente ciò che vuoi prevedere. Ad esempio, la seguente tabella evidenzia i problemi con le potenziali etichette proxy per Consigliare video utili:
Etichetta proxy | Problema |
---|---|
Prevedere se l'utente farà clic sul pulsante "Mi piace". | La maggior parte degli utenti non fa mai clic su "Mi piace". |
Prevedere se un video diventerà popolare. | Non personalizzato. Alcuni utenti potrebbero non apprezzare i video popolari. |
Prevedere se l'utente condividerà il video. | Alcuni utenti non condividono i video. A volte le persone condividono i video perché non li piacciono. |
Prevedere se l'utente farà clic sul pulsante di riproduzione. | Massimizza il clickbait. |
Prevedere per quanto tempo guarderà il video. | Predilige i video lunghi in maniera differenziata rispetto a quelli brevi. |
Prevedere quante volte l'utente guarderà il video. | Predilige i video "riguardabili" rispetto ai generi video che non sono riguardabili. |
Nessuna etichetta proxy può essere un sostituto perfetto del risultato ideale. Tutti avranno potenziali problemi. Scegli quello che presenta il minor numero di problemi per il tuo caso d'uso.
Verifica le tue conoscenze
Generazione
Nella maggior parte dei casi, non addestrerai il tuo modello generativo perché questa operazione richiede enormi quantità di dati di addestramento e risorse di calcolo. Puoi invece personalizzare un modello generativo preaddestrato. Per ottenere un modello generativo in modo da produrre l'output desiderato, potrebbe essere necessario utilizzare una o più delle seguenti tecniche:
Distillazione. Per creare una versione ridotta di un modello più grande, genera un set di dati con etichette sintetiche dal modello più grande che utilizzi per addestrare il modello più piccolo. I modelli generativi sono in genere enormi e consumano risorse considerevoli (come memoria ed elettricità). La distillazione consente al modello più piccolo e a un minor utilizzo di risorse di approssimare le prestazioni del modello più grande.
Ottimizzazione o ottimizzazione efficiente dei parametri. Per migliorare le prestazioni di un modello in un'attività specifica, devi addestrare ulteriormente il modello su un set di dati che contenga esempi del tipo di output che vuoi produrre.
Ingegneria del prompt. Per fare in modo che il modello esegua un'attività specifica o generi output in un formato specifico, devi indicare al modello l'attività che vuoi che esegua o spiegare in che modo vuoi che venga formattato l'output. In altre parole, la richiesta può includere istruzioni in linguaggio naturale su come eseguire l'attività o esempi illustrativi con gli output desiderati.
Ad esempio, se vuoi brevi riepiloghi degli articoli, puoi inserire quanto segue:
Produce 100-word summaries for each article.
Se vuoi che il modello generi testo per uno specifico livello di lettura, puoi inserire quanto segue:
All the output should be at a reading level for a 12-year-old.
Se vuoi che il modello fornisca l'output in un formato specifico, potresti spiegare come deve essere formattato l'output, ad esempio "formattare i risultati in una tabella", oppure puoi dimostrare l'attività fornendo degli esempi. Ad esempio, puoi inserire quanto segue:
Translate words from English to Spanish. English: Car Spanish: Auto English: Airplane Spanish: Avión English: Home Spanish:______
La distillazione e il perfezionamento aggiornano i parametri del modello. Il prompt engineering non aggiorna i parametri del modello. Invece, l'ingegneria del prompt aiuta il modello a imparare come produrre un output desiderato dal contesto del prompt.
In alcuni casi, avrai anche bisogno di un set di dati di test per valutare l'output di un modello generativo rispetto a valori noti, ad esempio verificando che i riepiloghi del modello siano simili a quelli generati da esseri umani o che gli esseri umani valutino come validi i riepiloghi del modello.
L'IA generativa può essere utilizzata anche per implementare una soluzione di ML predittiva, come la classificazione o la regressione. Ad esempio, grazie alla profonda conoscenza del linguaggio naturale, i modelli linguistici di grandi dimensioni (LLM) possono spesso eseguire attività di classificazione del testo meglio rispetto al machine learning predittivo addestrato per l'attività specifica.
Definisci le metriche più efficaci
Definisci le metriche che utilizzerai per determinare se l'implementazione del machine learning è riuscita o meno. Le metriche di successo definiscono ciò che ti interessa, come il coinvolgimento o l'aiutare gli utenti a intraprendere le azioni appropriate, ad esempio guardare video che troveranno utili. Le metriche di successo differiscono dalle metriche di valutazione del modello, come accuratezza, precisione, richiamo o AUC.
Ad esempio, le metriche di successo e di errore dell'app meteo potrebbero essere definite come segue:
Operazione riuscita | Gli utenti aprono la funzionalità "Pioverà?" il 50% in più rispetto al passato. |
---|---|
Errore | Gli utenti aprono la funzionalità "Pioverà?" non più spesso rispetto a prima. |
Le metriche delle app video possono essere definite come segue:
Operazione riuscita | Gli utenti trascorrono in media il 20% di tempo in più sul sito. |
---|---|
Errore | In media, gli utenti non trascorrono più tempo sul sito rispetto a prima. |
Consigliamo di definire metriche di successo ambiziose. Tuttavia, grandi ambizioni possono creare divari tra successo e fallimento. Ad esempio, gli utenti che trascorrono in media il 10% in più di tempo sul sito rispetto a prima non rappresentano né un successo né un fallimento. Il divario non definito non è ciò che è importante.
L'importante è la capacità del modello di avvicinarsi, o superare, alla definizione di successo. Ad esempio, quando analizzi le prestazioni del modello, poniti la seguente domanda: migliorare il modello ti avvicinerebbe ai criteri di successo definiti? Ad esempio, un modello potrebbe avere metriche di valutazione efficaci, ma non avvicinarti ai criteri di successo, il che indica che anche con un modello perfetto, non è possibile soddisfare i criteri di successo che hai definito. D'altra parte, un modello potrebbe avere metriche di valutazione scadenti, ma avvicinarti ai tuoi criteri di successo, indicando che migliorare il modello ti avvicinerebbe al successo.
Di seguito sono riportate le dimensioni da considerare per determinare se vale la pena migliorare il modello:
Non abbastanza bene, ma continua. Il modello non deve essere utilizzato in un ambiente di produzione, ma nel tempo potrebbe essere migliorato in modo significativo.
Sì, e continua. Il modello potrebbe essere utilizzato in un ambiente di produzione e potrebbe essere ulteriormente migliorato.
Abbastanza buono, ma non può essere migliorato. Il modello si trova in un ambiente di produzione, ma probabilmente è davvero bello.
Non abbastanza bene e non lo sarà mai. Il modello non dovrebbe essere utilizzato in un ambiente di produzione e nessuna quantità di addestramento sarà sufficiente.
Quando decidi di migliorare il modello, rivaluta se l'aumento delle risorse, ad esempio il tempo di progettazione e i costi di calcolo, giustifica il miglioramento previsto del modello.
Dopo aver definito le metriche di successo e fallimento, devi determinare la frequenza con cui verranno misurate. Ad esempio, puoi misurare le metriche di successo sei giorni, sei settimane o sei mesi dopo l'implementazione del sistema.
Quando analizzi le metriche relative agli errori, prova a determinare il motivo per cui il sistema ha generato un errore. Ad esempio, il modello potrebbe prevedere su quali video gli utenti faranno clic, ma potrebbe iniziare a consigliare titoli di clickbait che causano una diminuzione del coinvolgimento degli utenti. Nell'esempio dell'app meteo, il modello potrebbe prevedere con precisione quando pioverà, ma per una regione geografica troppo ampia.
Verifica le tue conoscenze
Un'azienda di moda vuole vendere più vestiti. Qualcuno suggerisce di usare il machine learning per determinare quali vestiti l'azienda dovrebbe produrre. Pensano di poter addestrare un modello per stabilire quale tipo di abbigliamento è di moda. Dopo aver addestrato il modello, vogliono applicarlo al proprio catalogo per decidere quali vestiti realizzare.
Come dovrebbero inquadrare il loro problema in termini di ML?
Risultato ideale: stabilisci quali prodotti realizzare.
Obiettivo del modello: prevedere quali capi di abbigliamento sono di moda.
Output del modello: classificazione binaria, in_fashion
,
not_in_fashion
Metriche del successo: vendi il settanta percento o più degli abiti realizzati.
Risultato ideale: determinare la quantità di tessuto e forniture da ordinare.
Obiettivo del modello: prevedere la quantità di ciascun articolo da produrre.
Output del modello: classificazione binaria, make
,
do_not_make
Metriche del successo: vendi il settanta percento o più degli abiti realizzati.