CI/CD för anpassat tal

Implementera automatiserad träning, testning och versionshantering för att möjliggöra kontinuerlig förbättring av anpassade talmodeller när du tillämpar uppdateringar på tränings- och testdata. Genom effektiv implementering av CI/CD-arbetsflöden kan du se till att slutpunkten för den anpassade talmodellen med bäst prestanda alltid är tillgänglig.

Kontinuerlig integrering (CI) är den tekniska metoden att ofta genomföra uppdateringar på en delad lagringsplats och utföra en automatiserad version av den. CI-arbetsflöden för anpassat tal tränar en ny modell från sina datakällor och utför automatiserad testning av den nya modellen för att säkerställa att den presterar bättre än den tidigare modellen.

Kontinuerlig leverans (CD) tar modeller från CI-processen och skapar en slutpunkt för varje förbättrad anpassad talmodell. CD gör slutpunkter lättillgängliga för att integreras i lösningar.

Anpassade CI/CD-lösningar är möjliga, men för en robust, fördefinierad lösning använder du lagringsplatsen för Speech DevOps-mallen, som kör CI/CD-arbetsflöden med GitHub Actions.

CI/CD-arbetsflöden för anpassat tal

Syftet med dessa arbetsflöden är att säkerställa att varje anpassad talmodell har bättre igenkänningsprecision än den tidigare versionen. Om uppdateringarna av test- och/eller träningsdata förbättrar noggrannheten skapar dessa arbetsflöden en ny anpassad talslutpunkt.

Git-servrar som GitHub och Azure DevOps kan köra automatiserade arbetsflöden när specifika Git-händelser inträffar, till exempel sammanslagningar eller pull-begäranden. Ett CI-arbetsflöde kan till exempel utlösas när uppdateringar av testdata skickas till huvudgrenen. Olika Git-servrar har olika verktyg, men tillåter cli-kommandon (scripting command-line interface) så att de kan köras på en byggserver.

Under vägen bör arbetsflödena namnge och lagra data, tester, testfiler, modeller och slutpunkter så att de kan spåras tillbaka till incheckningen eller versionen som de kom från. Det är också bra att namnge dessa tillgångar så att det är lätt att se vilka som skapades efter uppdatering av testdata jämfört med träningsdata.

CI-arbetsflöde för att testa datauppdateringar

Huvudsyftet med CI/CD-arbetsflödena är att skapa en ny modell med hjälp av träningsdata och att testa modellen med hjälp av testdata för att fastställa om Word Error Rate (WER) förbättrades jämfört med den tidigare modellen med bäst prestanda ("benchmark-modellen"). Om den nya modellen presterar bättre blir den den nya benchmark-modellen som framtida modeller jämförs med.

CI-arbetsflödet för testning av datauppdateringar bör testa den aktuella benchmark-modellen igen med uppdaterade testdata för att beräkna den reviderade WER. Detta säkerställer att när WER för en ny modell jämförs med WER för riktmärket testades båda modellerna mot samma testdata och du jämför som med liknande.

Det här arbetsflödet bör utlösa uppdateringar av testdata och:

  • Testa benchmark-modellen mot uppdaterade testdata.
  • Lagra testutdata, som innehåller WER för benchmark-modellen, med hjälp av uppdaterade data.
  • WER från dessa tester kommer att bli det nya riktmärket WER som framtida modeller måste slå.
  • CD-arbetsflödet körs inte för uppdateringar av testdata.

CI-arbetsflöde för uppdateringar av träningsdata

Uppdateringar för att träna data innebär uppdateringar av den anpassade modellen.

Det här arbetsflödet bör utlösa uppdateringar av träningsdata och:

  • Träna en ny modell med uppdaterade träningsdata.
  • Testa den nya modellen mot testdata.
  • Lagra testutdata, som innehåller WER.
  • Jämför WER från den nya modellen med WER från benchmark-modellen.
  • Om WER inte förbättras stoppar du arbetsflödet.
  • Om WER förbättras kör du CD-arbetsflödet för att skapa en anpassad talslutpunkt.

CD-arbetsflöde

När en uppdatering av träningsdata förbättrar en modells igenkänning ska CD-arbetsflödet automatiskt köras för att skapa en ny slutpunkt för modellen och göra slutpunkten tillgänglig så att den kan användas i en lösning.

Versionshantering

De flesta team kräver en manuell gransknings- och godkännandeprocess för distribution till en produktionsmiljö. För en produktionsdistribution kanske du vill se till att det händer när viktiga personer i utvecklingsteamet är tillgängliga för support eller under perioder med låg trafik.

Verktyg för anpassade talarbetsflöden

Använd följande verktyg för CI/CD-automatiseringsarbetsflöden för anpassat tal:

  • Azure CLI för att skapa en azure-tjänsthuvudnamnsautentisering, köra frågor mot Azure-prenumerationer och lagra testresultat i Azure Blob.
  • Azure AI Speech CLI för att interagera med Speech-tjänsten från kommandoraden eller ett automatiserat arbetsflöde.

DevOps-lösning för anpassat tal med GitHub Actions

Om du vill ha en redan implementerad DevOps-lösning för anpassat tal går du till lagringsplatsen för Speech DevOps-mallen. Skapa en kopia av mallen och börja utveckla anpassade modeller med ett robust DevOps-system som innehåller testning, träning och versionshantering med GitHub Actions. Lagringsplatsen innehåller exempeltestnings- och träningsdata som hjälper dig att konfigurera och förklara arbetsflödet. Efter den första installationen ersätter du exempeldata med dina projektdata.

Lagringsplatsen för Speech DevOps-mallen innehåller infrastrukturen och detaljerad vägledning för att:

  • Kopiera malllagringsplatsen till ditt GitHub-konto och skapa sedan Azure-resurser och ett huvudnamn för tjänsten för GitHub Actions CI/CD-arbetsflöden.
  • Gå igenom den "dev inre loopen". Uppdatera tränings- och testdata från en funktionsgren, testa ändringarna med en tillfällig utvecklingsmodell och skapa en pull-begäran för att föreslå och granska ändringarna.
  • När träningsdata uppdateras i en pull-begäran till main tränar du modeller med GitHub Actions CI-arbetsflödet.
  • Utför automatiserad noggrannhetstestning för att upprätta en modells Word Error Rate (WER). Lagra testresultaten i Azure Blob.
  • Kör CD-arbetsflödet för att skapa en slutpunkt när WER förbättras.

Nästa steg

  • Använd lagringsplatsen för Speech DevOps-mallar för att implementera DevOps för anpassat tal med GitHub Actions.