Condividi tramite


CI/CD per il riconoscimento vocale personalizzato

Implementare la gestione automatizzata di training, test e rilascio per consentire un miglioramento continuo dei modelli di riconoscimento vocale personalizzati quando si applicano aggiornamenti ai dati di training e test. Grazie all'implementazione efficace dei flussi di lavoro CI/CD, è possibile assicurarsi che l'endpoint per il modello di riconoscimento vocale personalizzato con prestazioni ottimali sia sempre disponibile.

L'integrazione continua (CI) è la pratica di progettazione del commit frequente degli aggiornamenti in un repository condiviso e l'esecuzione di una compilazione automatizzata su di essa. Flussi di lavoro CI per il training vocale personalizzato di un nuovo modello dalle origini dati ed eseguire test automatizzati sul nuovo modello per garantire prestazioni migliori rispetto al modello precedente.

Il recapito continuo (CD) accetta modelli dal processo di integrazione continua e crea un endpoint per ogni modello di riconoscimento vocale personalizzato migliorato. La distribuzione continua rende facilmente disponibili gli endpoint per l'integrazione nelle soluzioni.

Le soluzioni CI/CD personalizzate sono possibili, ma per una soluzione affidabile predefinita, usare il repository di modelli Speech DevOps, che esegue flussi di lavoro CI/CD usando GitHub Actions.

Flussi di lavoro CI/CD per il riconoscimento vocale personalizzato

Lo scopo di questi flussi di lavoro è garantire che ogni modello di riconoscimento vocale personalizzato abbia una migliore accuratezza del riconoscimento rispetto alla build precedente. Se gli aggiornamenti ai dati di test e/o training migliorano l'accuratezza, questi flussi di lavoro creano un nuovo endpoint di riconoscimento vocale personalizzato.

I server Git, ad esempio GitHub e Azure DevOps, possono eseguire flussi di lavoro automatizzati quando si verificano eventi Git specifici, ad esempio merge o richieste pull. Ad esempio, un flusso di lavoro CI può essere attivato quando vengono inseriti aggiornamenti ai dati di test nel ramo principale . Server Git diversi hanno strumenti diversi, ma consentono l'esecuzione di script di comandi dell'interfaccia della riga di comando (CLI) in modo che possano essere eseguiti in un server di compilazione.

Lungo il percorso, i flussi di lavoro devono denominare e archiviare dati, test, file di test, modelli ed endpoint in modo che possano essere ricontracciati al commit o alla versione da cui provengono. È anche utile denominare questi asset in modo che sia facile vedere quali sono stati creati dopo l'aggiornamento dei dati di test rispetto ai dati di training.

Flusso di lavoro CI per il test degli aggiornamenti dei dati

Lo scopo principale dei flussi di lavoro CI/CD è quello di creare un nuovo modello usando i dati di training e di testare tale modello usando i dati di test per stabilire se la frequenza degli errori di Word (WER) è stata migliorata rispetto al modello con prestazioni migliori precedenti (il "modello di benchmark"). Se il nuovo modello offre prestazioni migliori, diventa il nuovo modello di benchmark rispetto al quale vengono confrontati i modelli futuri.

Il flusso di lavoro ci per testare gli aggiornamenti dei dati deve ripetere il modello di benchmark corrente con i dati di test aggiornati per calcolare l'analisi dei dati revisionata. In questo modo si garantisce che, quando l'analisi dei dati dei criteri di verifica di un nuovo modello viene confrontata con il wer del benchmark, entrambi i modelli sono stati testati con gli stessi dati di test e si esegue il confronto con simili.

Questo flusso di lavoro deve attivare gli aggiornamenti ai dati di test e:

  • Testare il modello di benchmark sui dati di test aggiornati.
  • Archiviare l'output del test, che contiene l'analisi dei dati del modello di benchmark, usando i dati aggiornati.
  • Il wer di questi test diventerà il nuovo benchmark WER che i modelli futuri devono superare.
  • Il flusso di lavoro cd non viene eseguito per gli aggiornamenti ai dati di test.

Flusso di lavoro CI per gli aggiornamenti dei dati di training

Gli aggiornamenti ai dati di training indicano gli aggiornamenti al modello personalizzato.

Questo flusso di lavoro deve essere attivato sugli aggiornamenti ai dati di training e:

  • Eseguire il training di un nuovo modello con i dati di training aggiornati.
  • Testare il nuovo modello sui dati di test.
  • Archiviare l'output del test, che contiene il wer.
  • Confrontare il wer dal nuovo modello con il modello di analisi dei dati di riferimento dal modello di benchmark.
  • Se il wer non migliora, arrestare il flusso di lavoro.
  • Se il wer migliora, eseguire il flusso di lavoro cd per creare un endpoint di riconoscimento vocale personalizzato.

Flusso di lavoro cd

Dopo un aggiornamento ai dati di training migliora il riconoscimento di un modello, il flusso di lavoro cd deve essere eseguito automaticamente per creare un nuovo endpoint per tale modello e rendere disponibile tale endpoint in modo che possa essere usato in una soluzione.

Gestione del rilascio

La maggior parte dei team richiede un processo di revisione e approvazione manuale per la distribuzione in un ambiente di produzione. Per una distribuzione di produzione, è consigliabile assicurarsi che essa si verifichi quando le figure chiave del team di sviluppo sono disponibili per fornire supporto o durante periodi di traffico ridotto.

Strumenti per flussi di lavoro vocali personalizzati

Usare gli strumenti seguenti per i flussi di lavoro di automazione CI/CD per il riconoscimento vocale personalizzato:

  • Interfaccia della riga di comando di Azure per creare un'autenticazione dell'entità servizio di Azure, eseguire query sulle sottoscrizioni di Azure e archiviare i risultati dei test nel BLOB di Azure.
  • Interfaccia della riga di comando di Riconoscimento vocale di Azure per interagire con il servizio Voce dalla riga di comando o con un flusso di lavoro automatizzato.

Soluzione DevOps per il riconoscimento vocale personalizzato con GitHub Actions

Per una soluzione DevOps già implementata per il riconoscimento vocale personalizzato, passare al repository del modello Speech DevOps. Creare una copia del modello e iniziare lo sviluppo di modelli personalizzati con un sistema DevOps affidabile che include test, training e controllo delle versioni usando GitHub Actions. Il repository fornisce dati di test e training di esempio per facilitare la configurazione e spiegare il flusso di lavoro. Dopo l'installazione iniziale, sostituire i dati di esempio con i dati del progetto.

Il repository del modello Speech DevOps fornisce l'infrastruttura e indicazioni dettagliate su:

  • Copiare il repository di modelli nell'account GitHub, quindi creare risorse di Azure e un'entità servizio per i flussi di lavoro CI/CD di GitHub Actions.
  • Esaminare il "ciclo interno di sviluppo". Aggiornare i dati di training e test da un ramo di funzionalità, testare le modifiche con un modello di sviluppo temporaneo e generare una richiesta pull per proporre ed esaminare le modifiche.
  • Quando i dati di training vengono aggiornati in una richiesta pull a main, eseguire il training dei modelli con il flusso di lavoro ci di GitHub Actions.
  • Eseguire test automatizzati di accuratezza per stabilire la frequenza degli errori di word (WER) di un modello. Archiviare i risultati del test nel BLOB di Azure.
  • Eseguire il flusso di lavoro cd per creare un endpoint quando l'analisi del flusso di sicurezza migliora.

Passaggi successivi

  • Usare il repository del modello Speech DevOps per implementare DevOps per il riconoscimento vocale personalizzato con GitHub Actions.