Partilhar via


CI/CD para fala personalizada

Implemente treinamento, testes e gerenciamento de liberação automatizados para permitir a melhoria contínua de modelos de fala personalizados à medida que você aplica atualizações aos dados de treinamento e teste. Através da implementação eficaz de fluxos de trabalho de CI/CD, você pode garantir que o ponto de extremidade para o modelo de fala personalizado de melhor desempenho esteja sempre disponível.

A integração contínua (CI) é a prática de engenharia de confirmar atualizações com frequência em um repositório compartilhado e executar uma compilação automatizada nele. Os fluxos de trabalho de CI para fala personalizada treinam um novo modelo a partir de suas fontes de dados e realizam testes automatizados no novo modelo para garantir que ele tenha um desempenho melhor do que o modelo anterior.

A entrega contínua (CD) utiliza modelos do processo de IC e cria um ponto de extremidade para cada modelo de fala personalizado melhorado. O CD torna os endpoints facilmente disponíveis para serem integrados em soluções.

Soluções personalizadas de CI/CD são possíveis, mas para uma solução robusta e pré-criada, use o repositório de modelos Speech DevOps, que executa fluxos de trabalho de CI/CD usando as Ações do GitHub.

Fluxos de trabalho de CI/CD para fala personalizada

O objetivo desses fluxos de trabalho é garantir que cada modelo de fala personalizado tenha melhor precisão de reconhecimento do que a compilação anterior. Se as atualizações dos dados de teste e/ou treinamento melhorarem a precisão, esses fluxos de trabalho criarão um novo ponto de extremidade de fala personalizado.

Os servidores Git, como o GitHub e o Azure DevOps, podem executar fluxos de trabalho automatizados quando eventos específicos do Git acontecem, como mesclagens ou solicitações pull. Por exemplo, um fluxo de trabalho de CI pode ser acionado quando as atualizações dos dados de teste são enviadas por push para a ramificação principal . Servidores Git diferentes têm ferramentas diferentes, mas permitem comandos de interface de linha de comando (CLI) de script para que possam ser executados em um servidor de compilação.

Ao longo do caminho, os fluxos de trabalho devem nomear e armazenar dados, testes, arquivos de teste, modelos e pontos de extremidade para que possam ser rastreados até a confirmação ou versão de onde vieram. Também é útil nomear esses ativos para que seja fácil ver quais foram criados após a atualização dos dados de teste versus os dados de treinamento.

Fluxo de trabalho de CI para testar atualizações de dados

O principal objetivo dos fluxos de trabalho de CI/CD é construir um novo modelo usando os dados de treinamento e testar esse modelo usando os dados de teste para estabelecer se a Taxa de Erro do Word (WER) melhorou em comparação com o modelo anterior de melhor desempenho (o "modelo de benchmark"). Se o novo modelo tiver um melhor desempenho, torna-se o novo modelo de referência com o qual os modelos futuros são comparados.

O fluxo de trabalho de CI para testar atualizações de dados deve testar novamente o modelo de referência atual com os dados de teste atualizados para calcular o WER revisado. Isso garante que, quando o WER de um novo modelo é comparado com o WER do benchmark, ambos os modelos foram testados com os mesmos dados de teste e você está comparando como com like.

Esse fluxo de trabalho deve ser acionado em atualizações de dados de teste e:

  • Teste o modelo de referência em relação aos dados de teste atualizados.
  • Armazene a saída do teste, que contém o WER do modelo de referência, usando os dados atualizados.
  • O WER destes testes tornar-se-á o novo WER de referência que os futuros modelos devem bater.
  • O fluxo de trabalho do CD não é executado para atualizações de dados de teste.

Fluxo de trabalho de CI para atualizações de dados de treinamento

Atualizações nos dados de treinamento significam atualizações para o modelo personalizado.

Esse fluxo de trabalho deve ser acionado em atualizações de dados de treinamento e:

  • Treine um novo modelo com os dados de treinamento atualizados.
  • Teste o novo modelo em relação aos dados de teste.
  • Armazene a saída de teste, que contém o WER.
  • Compare o WER do novo modelo com o WER do modelo de referência.
  • Se o WER não melhorar, pare o fluxo de trabalho.
  • Se o WER melhorar, execute o fluxo de trabalho do CD para criar um ponto de extremidade de fala personalizado.

Fluxo de trabalho de CD

Depois que uma atualização dos dados de treinamento melhora o reconhecimento de um modelo, o fluxo de trabalho do CD deve ser executado automaticamente para criar um novo ponto de extremidade para esse modelo e disponibilizar esse ponto de extremidade para que possa ser usado em uma solução.

Gestão de versões

A maioria das equipes requer um processo manual de revisão e aprovação para implantação em um ambiente de produção. Para uma implantação de produção, convém garantir que ela aconteça quando pessoas-chave da equipe de desenvolvimento estiverem disponíveis para suporte ou durante períodos de baixo tráfego.

Ferramentas para fluxos de trabalho de fala personalizados

Use as seguintes ferramentas para fluxos de trabalho de automação de CI/CD para fala personalizada:

  • CLI do Azure para criar uma autenticação de entidade de serviço do Azure, consultar assinaturas do Azure e armazenar resultados de teste no Blob do Azure.
  • CLI de Fala do Azure AI para interagir com o serviço de Fala a partir da linha de comando ou de um fluxo de trabalho automatizado.

Solução de DevOps para fala personalizada usando ações do GitHub

Para obter uma solução de DevOps já implementada para fala personalizada, vá para o repositório de modelo de DevOps de Fala. Crie uma cópia do modelo e comece o desenvolvimento de modelos personalizados com um sistema de DevOps robusto que inclui testes, treinamento e controle de versão usando as Ações do GitHub. O repositório fornece exemplos de dados de teste e treinamento para ajudar na configuração e explicar o fluxo de trabalho. Após a configuração inicial, substitua os dados de exemplo pelos dados do projeto.

O repositório de modelos de DevOps de Fala fornece a infraestrutura e orientações detalhadas para:

  • Copie o repositório de modelos para sua conta do GitHub e crie recursos do Azure e uma entidade de serviço para os fluxos de trabalho de CI/CD do GitHub Actions.
  • Percorra o "loop interno do dev". Atualize os dados de treinamento e teste de uma ramificação de recurso, teste as alterações com um modelo de desenvolvimento temporário e gere uma solicitação pull para propor e revisar as alterações.
  • Quando os dados de treinamento são atualizados em uma solicitação pull para principal, treine modelos com o fluxo de trabalho de CI de ações do GitHub.
  • Execute testes de precisão automatizados para estabelecer a Taxa de Erro de Palavra (WER) de um modelo. Armazene os resultados do teste no Blob do Azure.
  • Execute o fluxo de trabalho do CD para criar um ponto de extremidade quando o WER melhorar.

Próximos passos