Gli esperimenti guidano un progetto verso l'attuabilità. Sono ipotesi verificabili e riproducibili. Quando si eseguono esperimenti, l'obiettivo è apportare miglioramenti continui e incrementali valutando una varietà di architetture e funzionalità dei modelli. Durante la sperimentazione, è consigliabile fare quanto segue:
Determina il rendimento di riferimento. Per iniziare, stabilisci una metrica di base di riferimento. La base di riferimento funge come misura di riferimento per il confronto degli esperimenti.
In alcuni casi, l'attuale soluzione non ML può fornire la prima metrica di riferimento. Se al momento non esiste alcuna soluzione, crea un modello ML con un'architettura semplice e alcune caratteristiche e utilizza le relative metriche come riferimento.
Apporta singole, piccole modifiche. Apporta una sola piccola modifica alla volta, ad es. gli iperparametri, l'architettura o le caratteristiche. Se la modifica migliora il modello, le metriche di quel modello diventano la nuova base di riferimento con cui confrontare gli esperimenti futuri.
Di seguito sono riportati alcuni esempi di esperimenti che apportano una singola piccola modifica:
- includi la funzionalità X.
- un dropout di 0,5 sul primo strato nascosto.
- esegui la trasformazione logaritmica della funzionalità Y.
- cambia il tasso di apprendimento in 0,001.
Registrare lo stato di avanzamento degli esperimenti. Molto probabilmente dovrai fare molti esperimenti. Gli esperimenti con una qualità di previsione scadente (o neutra) rispetto alla base di riferimento sono comunque utili da monitorare. Indicano quali approcci non funzionano. Dato che il progresso in genere non è lineare, è importante dimostrare che stai lavorando al problema evidenziando tutti i modi in cui hai riscontrato problemi che non funzionano, oltre ai progressi nell'aumentare la qualità di base.
Poiché ogni addestramento completo su un set di dati reale può richiedere ore (o giorni), valuta la possibilità di eseguire più esperimenti indipendenti contemporaneamente per esplorare rapidamente lo spazio. Man mano che procedi nell'iterazione, speriamo che ti avvicinerai sempre al livello di qualità di cui avrai bisogno per la produzione.
Rumore nei risultati sperimentali
Tieni presente che potresti riscontrare rumore nei risultati sperimentali che non derivano da modifiche al modello o ai dati, il che rende difficile determinare se una modifica apportata ha effettivamente migliorato il modello. Di seguito sono riportati alcuni esempi di elementi che possono generare rumore nei risultati sperimentali:
Scambio di dati: l'ordine in cui i dati vengono presentati al modello può influire sulle prestazioni del modello.
Inizializzazione delle variabili: il modo in cui vengono inizializzate le variabili del modello può influire sulle sue prestazioni.
Parallelismo asincrono: se il modello viene addestrato utilizzando il parallelismo asincrono, l'ordine in cui le diverse parti del modello vengono aggiornate può influire anche sulle sue prestazioni.
Set di valutazioni piccoli: se il set di valutazione è troppo piccolo, potrebbe non essere rappresentativo delle prestazioni complessive del modello, producendo variazioni non uniformi nella qualità del modello.
L'esecuzione di un esperimento più volte contribuisce a confermare i risultati dell'esperimento.
Allineati alle pratiche di sperimentazione
Il tuo team deve avere una chiara comprensione di cosa sia esattamente un "esperimento", con un insieme definito di pratiche e artefatti. Ti consigliamo di consultare la documentazione che illustri quanto segue:
Artefatti. Quali sono gli artefatti di un esperimento? Nella maggior parte dei casi, un esperimento è un'ipotesi testata che può essere riprodotta, in genere mediante il logging dei metadati (come le caratteristiche e gli iperparametri) che indicano le modifiche tra gli esperimenti e il modo in cui influiscono sulla qualità del modello.
Pratiche di programmazione. Tutti utilizzeranno i propri ambienti sperimentali? Quanto sarà possibile (o facile) unificare il lavoro di tutti in raccolte condivise?
Riproducibilità e monitoraggio. Quali sono gli standard per la riproducibilità? Ad esempio, il team deve usare la stessa pipeline dei dati e le stesse pratiche di controllo delle versioni? Come verranno salvati i dati sperimentali: come query SQL o come snapshot dei modelli? Dove verranno documentati i log di ogni esperimento: in un documento, in un foglio di lavoro o in una piattaforma CMS per la gestione degli esperimenti?
Previsioni errate
Nessun modello reale è perfetto. In che modo il sistema gestisce le previsioni errate? Inizia a pensare rapidamente a come affrontarli.
Una strategia di best practice incoraggia gli utenti a etichettare correttamente le previsioni errate. Ad esempio, le app di posta acquisiscono le email classificate in modo errato registrando gli utenti spostati nella cartella Spam e viceversa. Acquisisci le etichette basate su dati empirici reali degli utenti, puoi progettare cicli di feedback automatizzati per la raccolta dei dati e il riaddestramento del modello.
Tieni presente che, anche se i sondaggi incorporati nell'interfaccia utente acquisiscono il feedback degli utenti, in genere i dati sono qualitativi e non possono essere incorporati nei dati di riaddestramento.
Implementare una soluzione end-to-end
Mentre il tuo team sperimenta sul modello, ti consigliamo di iniziare a creare parti della pipeline finale (se disponi delle risorse per farlo).
La creazione di diversi pezzi della pipeline, come l'acquisizione dei dati e il riaddestramento del modello, semplifica il passaggio del modello finale in produzione. Ad esempio, avere una pipeline end-to-end per l'importazione dei dati e la pubblicazione di previsioni può aiutare il team a iniziare a integrare il modello nel prodotto e a condurre test sugli utenti nella fase iniziale.
Risoluzione dei problemi relativi ai progetti bloccati
Potresti trovarti in scenari in cui l'avanzamento di un progetto si blocca. Magari il tuo team sta lavorando a un esperimento promettente, ma non è riuscito a migliorare il modello da settimane. Cosa dovreste fare? Ecco alcuni possibili approcci:
Strategica. Potresti dover inquadrare di nuovo il problema. Dopo aver trascorso del tempo nella fase di sperimentazione, probabilmente comprenderai meglio il problema, i dati e le possibili soluzioni. Con una conoscenza più approfondita del dominio, probabilmente puoi inquadrare il problema in modo più preciso.
Ad esempio, all'inizio potresti voler usare la regressione lineare per prevedere un valore numerico. Sfortunatamente, i dati non erano abbastanza buoni per addestrare un modello di regressione lineare attuabile. Un'ulteriore analisi rivela che il problema può essere risolto prevedendo se un esempio è al di sopra o al di sotto di un determinato valore. Ciò consente di riformulare il problema come se fosse una classificazione binaria.
Se l'avanzamento è più lento del previsto, non arrenderti. I miglioramenti incrementali nel tempo potrebbero essere l'unico modo per risolvere il problema. Come indicato in precedenza, non aspettarti la stessa quantità di progressi settimana dopo settimana. Spesso, ottenere una versione di un modello pronta per la produzione richiede molto tempo. Il miglioramento del modello può essere irregolare e imprevedibile. Periodi di avanzamento lento possono essere seguiti da picchi di miglioramento o viceversa.
Ambito tecnico. Dedica del tempo alla diagnosi e all'analisi delle previsioni errate. In alcuni casi, puoi individuare il problema isolando alcune previsioni errate e diagnosticando il comportamento del modello in queste istanze. Ad esempio, potresti scoprire problemi con l'architettura o con i dati. in altri casi, ottenere più dati può essere d'aiuto. Potresti ricevere un segnale più chiaro che indica che sei sulla strada giusta oppure potrebbe produrre più rumore, a indicare la presenza di altri problemi nell'approccio.
Se stai lavorando a un problema che richiede set di dati etichettati da persone fisiche, potrebbe essere difficile ottenere un set di dati etichettato per la valutazione del modello. Trova le risorse per ottenere i set di dati necessari per la valutazione.
Forse non è possibile trovare una soluzione. Stabilisci il tempo necessario per il tuo approccio, fermandoti se non hai fatto progressi nel periodo di tempo. Tuttavia, se hai una chiara indicazione del problema, probabilmente giustifica la soluzione.