Fattibilità

Durante la fase di ideazione e pianificazione, analizzi gli elementi di una soluzione ML. Durante l'attività di inquadratura, definisci un problema in termini di soluzione ML. Il corso Introduzione all'inquadratura dei problemi di machine learning illustra in dettaglio questi passaggi. Durante l'attività di pianificazione, stimi la fattibilità di una soluzione, pianifichi gli approcci e imposti le metriche di successo.

Sebbene il ML possa essere una soluzione in teoria valida, è comunque necessario stimare la sua fattibilità nel mondo reale. Ad esempio, una soluzione potrebbe funzionare tecnicamente, ma non essere attuabile o impossibile da implementare. I seguenti fattori influenzano la fattibilità di un progetto:

  • Disponibilità dei dati
  • Difficoltà del problema
  • Qualità della previsione
  • Requisiti tecnici
  • Costo

Disponibilità dei dati

L'efficacia dei modelli di ML dipende direttamente dai dati su cui vengono addestrati. Hanno bisogno di molti dati di alta qualità per fare previsioni di alta qualità. Rispondi alle seguenti domande per stabilire se disponi dei dati necessari per addestrare un modello:

  • Quantità. Riesci a ottenere abbastanza dati di alta qualità per addestrare un modello? Gli esempi etichettati sono scarsi, difficili da ottenere o troppo costosi? Ad esempio, è notoriamente difficile ottenere immagini medice etichettate o traduzioni di lingue rare. Per fare previsioni efficaci, i modelli di classificazione richiedono numerosi esempi per ogni etichetta. Se il set di dati di addestramento contiene esempi limitati per alcune etichette, il modello non può fare previsioni corrette.

  • Disponibilità della funzionalità al momento della pubblicazione. Tutte le funzionalità utilizzate per l'addestramento saranno disponibili al momento della pubblicazione? I team hanno dedicato una notevole quantità di tempo all'addestramento dei modelli per poi rendersi conto che alcune funzionalità sono diventate disponibili solo alcuni giorni dopo che il modello le ha richieste.

    Ad esempio, supponiamo che un modello preveda se un cliente farà clic su un URL e che una delle funzionalità utilizzate per l'addestramento includa user_age. Tuttavia, quando il modello fornisce una previsione, user_age non è disponibile, forse perché l'utente non ha ancora creato un account.

  • normative. Quali sono le normative e i requisiti legali per l'acquisizione e l'utilizzo dei dati? Ad esempio, alcuni requisiti impostano limiti per l'archiviazione e l'utilizzo di determinati tipi di dati.

IA generativa

I modelli di IA generativa preaddestrati spesso richiedono set di dati selezionati per eccellere in attività specifiche del dominio. Potenzialmente avrai bisogno di set di dati per i seguenti casi d'uso:

  • Progettazione del prompt, ottimizzazione efficiente dei parametri e ottimizzazione. A seconda del caso d'uso, potrebbero essere necessari da 10 a 10.000 esempi di alta qualità per perfezionare ulteriormente l'output di un modello. Ad esempio, se un modello deve essere perfezionato per eccellere in una determinata attività, come rispondere a domande mediche, avrai bisogno di un set di dati di alta qualità che sia rappresentativo del tipo di domande che gli verranno poste e dei tipi di risposte a cui dovrebbe rispondere.

    La seguente tabella fornisce le stime per il numero di esempi necessari per perfezionare l'output di un modello di IA generativa per una determinata tecnica:

  • Tecnica Numero di esempi richiesti
    Prompt zero-shot 0
    Prompt few-shot ~10 s-100 s
    Ottimizzazione efficiente dei parametri1 ~100 s - 10.000 s
    Ottimizzazione ~1000s-10.000s (o più)
    1 Adattamento a basso ranking (LoRA) e ottimizzazione dei prompt.
  • Informazioni aggiornate. Una volta preaddestrati, i modelli di IA generativa hanno una knowledge base fissa. Se i contenuti del dominio del modello cambiano spesso, ti servirà una strategia per mantenere il modello aggiornato, ad esempio:

Difficoltà del problema

La difficoltà di un problema può essere difficile da stimare. Quello che inizialmente sembra un approccio plausibile potrebbe in realtà rivelarsi una domanda di ricerca aperta; ciò che sembra pratico e fattibile potrebbe rivelarsi irrealistico o imprevedibile. Rispondere alle seguenti domande può aiutare a valutare la difficoltà di un problema:

  • Un problema simile è già stato risolto? Ad esempio, ci sono team nella tua organizzazione che hanno utilizzato dati simili (o identici) per creare modelli? Persone o team esterni all'organizzazione hanno risolto problemi simili, ad esempio, in Kaggle o TensorFlow Hub? In tal caso, molto probabilmente potrai usare parti del modello per crearne uno.

  • La natura del problema è difficile? Conoscere i benchmark umani per l'attività può stabilire il livello di difficoltà del problema. Ad esempio:

    • Gli esseri umani possono classificare il tipo di animale in un'immagine con una precisione di circa il 95%.
    • Gli esseri umani possono classificare le cifre scritte a mano con una precisione di circa il 99%.

    I dati precedenti suggeriscono che creare un modello per classificare gli animali è più difficile rispetto a un modello per classificare le cifre scritte a mano.

  • Esistono potenzialmente malintenzionati? Le persone cercheranno attivamente di sfruttare il tuo modello? In tal caso, sarà necessario aggiornare costantemente il modello prima che possa essere utilizzato in modo improprio. Ad esempio, i filtri antispam non sono in grado di rilevare nuovi tipi di spam quando qualcuno sfrutta il modello per creare email che sembrano legittime.

IA generativa

I modelli di IA generativa hanno potenziali vulnerabilità che possono aumentare la difficoltà di un problema:

  • Origine input. Da dove proviene l'input? I prompt antagonistici possono far trapelare dati di addestramento, materiali di preambolo, contenuti di database o informazioni sugli strumenti?
  • Utilizzo dell'output. Come verranno utilizzati gli output? Il modello restituirà contenuti non elaborati o saranno necessari passaggi intermedi per testare e verificare che sia appropriato? Ad esempio, fornire output non elaborati ai plug-in può causare una serie di problemi di sicurezza.
  • Perfezionamento. Il perfezionamento con un set di dati danneggiato può influire negativamente sulle ponderazioni del modello. Questo danneggiamento potrebbe causare l'output del modello di contenuti errati, tossici o di parte. Come indicato in precedenza, l'ottimizzazione richiede un set di dati verificato per contenere esempi di alta qualità.

Qualità della previsione

Dovrai valutare attentamente l'impatto che le previsioni di un modello avranno sugli utenti e determinare la qualità di previsione necessaria per il modello.

La qualità richiesta per la previsione dipende dal tipo di previsione. Ad esempio, la qualità della previsione richiesta per un sistema di suggerimenti non sarà la stessa per un modello che segnala violazioni delle norme. Consigliare il video sbagliato potrebbe creare un'esperienza utente negativa. Tuttavia, segnalare erroneamente un video come violazione delle norme di una piattaforma potrebbe generare costi per l'assistenza o, peggio, costi legali.

Il modello dovrà avere una qualità di previsione molto elevata perché le previsioni errate sono estremamente costose? In genere, maggiore è la qualità richiesta per la previsione, più difficile è il problema. Sfortunatamente, quando cerchi di migliorare la qualità, i progetti generano ritorni in calo. Ad esempio, l'aumento della precisione di un modello dal 99,9% al 99,99% potrebbe significare un aumento di dieci volte del costo del progetto (se non di più).

Con l'aumento della qualità della previsione, aumentano anche i costi del progetto.

Figura 2. Un progetto ML in genere richiede un numero maggiore di risorse con l'aumento della qualità richiesta.

IA generativa

Quando analizzi l'output dell'IA generativa, considera quanto segue:

  • Accuratezza fattuale. Anche se i modelli di IA generativa possono produrre contenuti fluenti e coerenti, non è garantito che siano oggettivi. Le false dichiarazioni dei modelli di IA generativa sono chiamate confabolazioni. Ad esempio, i modelli di IA generativa possono confabulare e produrre riepiloghi errati del testo, risposte sbagliate a domande matematiche o affermazioni false sul mondo. Molti casi d'uso richiedono ancora la verifica umana dell'output dell'IA generativa prima di essere utilizzato in un ambiente di produzione, ad esempio il codice generato tramite LLM.

    Come il ML tradizionale, maggiore è il requisito di accuratezza oggettiva, maggiore è il costo di sviluppo e manutenzione.

  • Qualità di output. Quali sono le conseguenze legali e finanziarie (o le implicazioni etiche) di output negativi, come contenuti di parte, plagio o tossici?

Requisiti tecnici

I modelli hanno una serie di requisiti tecnici che ne influenzano la fattibilità. Di seguito sono riportati i requisiti tecnici principali da soddisfare per determinare la fattibilità del tuo progetto:

  • Latenza. Quali sono i requisiti di latenza? Quanto velocemente devono essere fornite le previsioni?
  • Query al secondo (QPS). Quali sono i requisiti del QPS?
  • Utilizzo della RAM. Quali sono i requisiti della RAM per l'addestramento e la gestione?
  • Piattaforma. Dove verrà eseguito il modello: online (query inviate al server RPC), WebML (in un browser web), ODML (su uno smartphone o tablet) o offline (previsioni salvate in una tabella)?
  • Interpretabilità. Le previsioni dovranno essere interpretabili? Ad esempio, il tuo prodotto dovrà rispondere a domande quali "Perché un determinato contenuto è stato contrassegnato come spam?" oppure "Perché è stato stabilito che un video viola le norme della piattaforma?"

  • Frequenza di riaddestramento. Quando i dati sottostanti del modello cambiano rapidamente, potrebbe essere necessario un riaddestramento frequente o continuo. Tuttavia, un riaddestramento frequente può comportare costi significativi che possono superare i vantaggi dell'aggiornamento delle previsioni del modello.

Nella maggior parte dei casi, dovrai scendere a compromessi sulla qualità di un modello per rispettare le relative specifiche tecniche. In questi casi, dovrai stabilire se puoi comunque produrre un modello abbastanza adatto per andare in produzione.

IA generativa

Quando lavori con l'IA generativa, tieni presente i seguenti requisiti tecnici:

  • Piattaforma. Molti modelli preaddestrati sono disponibili in diverse dimensioni e possono quindi lavorare su una varietà di piattaforme con risorse di calcolo diverse. Ad esempio, i modelli preaddestrati possono variare, dalla scalabilità dei data center all'adattamento per lo smartphone. Quando scegli le dimensioni del modello, devi considerare i vincoli di latenza, privacy e qualità del tuo prodotto o servizio. Questi vincoli sono spesso in conflitto. Ad esempio, i vincoli relativi alla privacy potrebbero richiedere l'esecuzione delle inferenze sul dispositivo di un utente. Tuttavia, la qualità dell'output potrebbe essere scadente perché il dispositivo non dispone delle risorse di calcolo per produrre buoni risultati.
  • Latenza. Le dimensioni di input e output del modello influiscono sulla latenza. In particolare, la dimensione dell'output influisce sulla latenza più che sulla dimensione dell'input. Sebbene i modelli possano caricare in contemporanea gli input, possono solo generare output in sequenza. In altre parole, la latenza potrebbe essere la stessa per un input di 500 o 10 parole, mentre la generazione di un riepilogo di 500 parole richiede molto più tempo rispetto alla generazione di un riepilogo di 10 parole.
  • Utilizzo di strumenti e API. Il modello dovrà utilizzare strumenti e API, ad esempio per eseguire ricerche su internet, utilizzare una calcolatrice o accedere a un client di posta per completare un'attività? In genere, maggiore è il numero di strumenti necessari per completare un'attività, maggiori sono le probabilità di propagare gli errori e di aumentare le vulnerabilità del modello.

Costo

L'implementazione ML ne varrà i costi? La maggior parte dei progetti ML non verrà approvata se la soluzione ML è più costosa da implementare e gestire rispetto ai soldi che genera (o risparmia). I progetti ML comportano costi sia umani che delle macchine.

  • Costi umani. Quante persone impiegherà il progetto per passare dal proof of concept alla produzione? Con l'evoluzione dei progetti ML, le spese in genere aumentano. I progetti ML richiedono, ad esempio, più persone per il deployment e la manutenzione di un sistema pronto per la produzione, anziché per la creazione di un prototipo. Prova a stimare il numero e i tipi di ruoli necessari per il progetto in ogni fase.

  • Costi delle macchine. L'addestramento, il deployment e la gestione dei modelli richiedono molta memoria. Ad esempio, potresti aver bisogno di una quota TPU per l'addestramento di modelli e la gestione delle previsioni, oltre all'infrastruttura necessaria per la pipeline dei dati. Potresti dover pagare per ottenere l'etichettatura dei dati o pagare le tariffe per le licenze dei dati. Prima di addestrare un modello, valuta la possibilità di stimare i costi delle macchine per creare e mantenere caratteristiche ML a lungo termine.

  • Costo di inferenza. Il modello dovrà effettuare centinaia o migliaia di inferenze che costano di più delle entrate generate?

Aspetti da considerare

Affrontare problemi legati a uno degli argomenti trattati in precedenza può rendere l'implementazione di una soluzione ML complicata, ma scadenze strette possono amplificare le difficoltà. Prova a pianificare e a pianificare un budget per un tempo sufficiente in base alla difficoltà percepita del problema, quindi cerca di riservare più tempo di overhead rispetto a un progetto non ML.