Share via


CI/CD voor aangepaste spraak

Implementeer geautomatiseerd trainings-, test- en releasebeheer om continue verbetering van aangepaste spraakmodellen mogelijk te maken wanneer u updates toepast op trainings- en testgegevens. Door effectieve implementatie van CI/CD-werkstromen kunt u ervoor zorgen dat het eindpunt voor het best presterende aangepaste spraakmodel altijd beschikbaar is.

Continue integratie (CI) is de technische praktijk van het regelmatig doorvoeren van updates in een gedeelde opslagplaats en het uitvoeren van een geautomatiseerde build erop. CI-werkstromen voor aangepaste spraak trainen een nieuw model uit de gegevensbronnen en voeren geautomatiseerde tests uit op het nieuwe model om ervoor te zorgen dat het beter presteert dan het vorige model.

Continue levering (CD) neemt modellen van het CI-proces en maakt een eindpunt voor elk verbeterd aangepast spraakmodel. CD maakt eindpunten eenvoudig beschikbaar om te worden geïntegreerd in oplossingen.

Aangepaste CI/CD-oplossingen zijn mogelijk, maar voor een robuuste, vooraf gebouwde oplossing gebruikt u de opslagplaats van de Speech DevOps-sjabloon, waarmee CI/CD-werkstromen worden uitgevoerd met behulp van GitHub Actions.

CI/CD-werkstromen voor aangepaste spraak

Het doel van deze werkstromen is ervoor te zorgen dat elk aangepast spraakmodel een betere herkenningsnauwkeurigheid heeft dan de vorige build. Als de updates voor de test- en/of trainingsgegevens de nauwkeurigheid verbeteren, maken deze werkstromen een nieuw aangepast spraakeindpunt.

Git-servers zoals GitHub en Azure DevOps kunnen geautomatiseerde werkstromen uitvoeren wanneer specifieke Git-gebeurtenissen plaatsvinden, zoals samenvoegingen of pull-aanvragen. Een CI-werkstroom kan bijvoorbeeld worden geactiveerd wanneer updates voor het testen van gegevens naar de hoofdbranch worden gepusht. Verschillende Git-servers hebben verschillende hulpprogramma's, maar maken het uitvoeren van opdrachtregelinterfaceopdrachten (CLI) voor scripts mogelijk, zodat ze op een buildserver kunnen worden uitgevoerd.

Onderweg moeten de werkstromen gegevens, tests, testbestanden, modellen en eindpunten een naam geven en opslaan, zodat ze kunnen worden teruggezet naar de doorvoer of versie waaruit ze afkomstig zijn. Het is ook handig om deze assets een naam te geven, zodat u gemakkelijk kunt zien welke zijn gemaakt na het bijwerken van testgegevens versus trainingsgegevens.

CI-werkstroom voor het testen van gegevensupdates

Het belangrijkste doel van de CI/CD-werkstromen is het bouwen van een nieuw model met behulp van de trainingsgegevens en het testen van dat model met behulp van de testgegevens om vast te stellen of de Word Error Rate (WER) is verbeterd ten opzichte van het vorige best presterende model (het 'benchmarkmodel'). Als het nieuwe model beter presteert, wordt het het nieuwe benchmarkmodel waarmee toekomstige modellen worden vergeleken.

De CI-werkstroom voor het testen van gegevensupdates moet het huidige benchmarkmodel opnieuw testen met de bijgewerkte testgegevens om de herziene WER te berekenen. Dit zorgt ervoor dat wanneer de WER van een nieuw model wordt vergeleken met de WER van de benchmark, beide modellen zijn getest op basis van dezelfde testgegevens en u vergelijkt zoals met dergelijke.

Deze werkstroom moet worden geactiveerd bij updates voor het testen van gegevens en:

  • Test het benchmarkmodel op basis van de bijgewerkte testgegevens.
  • Sla de testuitvoer, die de WER van het benchmarkmodel bevat, op met behulp van de bijgewerkte gegevens.
  • De WER van deze tests wordt de nieuwe benchmark WER die toekomstige modellen moeten verslaan.
  • De CD-werkstroom wordt niet uitgevoerd voor updates voor het testen van gegevens.

CI-werkstroom voor updates van trainingsgegevens

Updates voor trainingsgegevens geven updates aan voor het aangepaste model.

Deze werkstroom moet worden geactiveerd bij updates voor trainingsgegevens en:

  • Train een nieuw model met de bijgewerkte trainingsgegevens.
  • Test het nieuwe model op basis van de testgegevens.
  • Sla de testuitvoer op, die de WER bevat.
  • Vergelijk de WER van het nieuwe model met de WER van het benchmarkmodel.
  • Als de WER niet wordt verbeterd, stopt u de werkstroom.
  • Als de WER verbetert, voert u de CD-werkstroom uit om een aangepast spraakeindpunt te maken.

CD-werkstroom

Nadat een update van de trainingsgegevens de herkenning van een model heeft verbeterd, moet de CD-werkstroom automatisch worden uitgevoerd om een nieuw eindpunt voor dat model te maken en dat eindpunt beschikbaar te maken, zodat het in een oplossing kan worden gebruikt.

Releasebeheer

De meeste teams vereisen een handmatig beoordelings- en goedkeuringsproces voor implementatie in een productieomgeving. Voor een productie-implementatie wilt u er mogelijk voor zorgen dat dit gebeurt wanneer belangrijke personen in het ontwikkelteam beschikbaar zijn voor ondersteuning of tijdens perioden met weinig verkeer.

Hulpprogramma's voor aangepaste spraakwerkstromen

Gebruik de volgende hulpprogramma's voor CI/CD-automatiseringswerkstromen voor aangepaste spraak:

  • Azure CLI voor het maken van verificatie van een Azure-service-principal, het uitvoeren van query's op Azure-abonnementen en het opslaan van testresultaten in Azure Blob.
  • Azure AI Speech CLI om te communiceren met de Speech-service vanaf de opdrachtregel of een geautomatiseerde werkstroom.

DevOps-oplossing voor aangepaste spraak met behulp van GitHub Actions

Ga naar de speech DevOps-sjabloonopslagplaats voor een al geïmplementeerde DevOps-oplossing voor aangepaste spraak. Maak een kopie van de sjabloon en begin met het ontwikkelen van aangepaste modellen met een robuust DevOps-systeem dat test-, training- en versiebeheer omvat met behulp van GitHub Actions. De opslagplaats biedt voorbeeldtests en trainingsgegevens voor hulp bij het instellen en uitleggen van de werkstroom. Vervang na de eerste installatie de voorbeeldgegevens door uw projectgegevens.

De Speech DevOps-sjabloonopslagplaats biedt de infrastructuur en gedetailleerde richtlijnen voor:

  • Kopieer de sjabloonopslagplaats naar uw GitHub-account en maak vervolgens Azure-resources en een service-principal voor de CI/CD-werkstromen van GitHub Actions.
  • Loop door de 'dev inner loop'. Werk trainings- en testgegevens van een functiebranch bij, test de wijzigingen met een tijdelijk ontwikkelingsmodel en dien een pull-aanvraag in om de wijzigingen voor te stellen en te controleren.
  • Wanneer trainingsgegevens worden bijgewerkt in een pull-aanvraag naar het hoofd, traint u modellen met de CI-werkstroom van GitHub Actions.
  • Voer geautomatiseerde nauwkeurigheidstests uit om de Word Error Rate (WER) van een model vast te stellen. Sla de testresultaten op in Azure Blob.
  • Voer de CD-werkstroom uit om een eindpunt te maken wanneer de WER wordt verbeterd.

Volgende stappen