CI/CD para fala personalizada

Implemente o gerenciamento automatizado de treinamento, teste e versão para habilitar o aprimoramento contínuo de modelos de fala personalizada à medida que você aplica atualizações aos dados de treinamento e teste. Por meio da implementação efetiva de fluxos de trabalho de CI/CD, você pode garantir que o ponto de extremidade para o modelo de fala personalizada com o melhor desempenho esteja sempre disponível.

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

A entrega contínua (CD) usa modelos do processo de integração contínua e cria um ponto de extremidade para cada modelo de fala personalizada aprimorado. A CD torna os pontos de extremidade facilmente disponíveis para serem integrados em soluções.

As soluções personalizadas de CI/CD são possíveis, mas, para uma solução robusta e predefinida, use o repositório de modelos do DevOps de Fala, que executa fluxos de trabalho de CI/CD usando GitHub Actions.

Fluxos de trabalho de CI/CD para fala personalizada

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

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

Ao longo do caminho, os fluxos de trabalho devem nomear e armazenar dados, testes, arquivos de teste, modelos e pontos de extremidade, de forma que eles possam ser rastreados de volta para a confirmação ou a versão da qual vieram. Também é útil nomear esses ativos para que seja fácil ver quais foram criados depois de atualizar dados de teste versus dados de treinamento.

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

A principal finalidade dos fluxos de trabalho de CI/CD é criar um novo modelo usando os dados de treinamento e testar esse modelo usando os dados de teste para estabelecer se a Taxa de erros por palavra (WER) melhorou em comparação com o modelo de melhor desempenho anterior (o "modelo de parâmetro de comparação"). Se o novo modelo tiver um desempenho melhor, ele se tornará o novo modelo de comparação, sendo os modelos futuros comparados a ele.

O fluxo de trabalho de CI para testar atualizações de dados deve testar novamente o modelo de comparação atual com os dados de teste atualizados para calcular o WER revisado. Isso garante que, quando a WER de um novo modelo for comparada à WER do parâmetro de comparação, ambos os modelos tenham sido testados em relação aos mesmos dados de teste e você esteja comparando equivalentes.

Esse fluxo de trabalho deve disparar as atualizações para testar dados e:

  • Testar o modelo de comparação em relação aos dados de teste atualizados.
  • Armazenar a saída de teste, que contém o WER do modelo de comparação, usando os dados atualizados.
  • O WER desses testes se tornará o novo WER de comparação que os modelos futuros devem superar.
  • O fluxo de trabalho de CD não é executado para atualizações de dados de teste.

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

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

Esse fluxo de trabalho deve disparar as atualizações para treinar dados e:

  • Treinar um novo modelo com os dados de treinamento atualizados.
  • Testar o novo modelo com base nos dados de teste.
  • Armazenar a saída de teste, que contém o WER.
  • Comparar o WER do novo modelo com o WER do modelo de comparação.
  • Se a WER não melhorar, interrompa o fluxo de trabalho.
  • Se o WER melhorar, execute o fluxo de trabalho de CD para criar um ponto de extremidade de fala personalizada.

Fluxo de trabalho de CD

Após uma atualização dos dados de treinamento melhorar 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 ele possa ser usado em uma solução.

Gerenciamento de liberações

A maioria das equipes exige um processo manual de revisão e aprovação para a implantação em um ambiente de produção. Para uma implantação de produção, você pode querer garantir que ela ocorra quando as 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 personalizada

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.
  • A CLI de Fala do IA do Azure para interagir com o serviço de Fala a partir da linha de comando ou de um fluxo de trabalho automatizado.

Solução do DevOps para fala personalizada usando o GitHub Actions

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

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

  • Copiar o repositório de modelos para sua conta do GitHub e, em seguida, criar recursos do Azure e uma entidade de serviço para os fluxos de trabalho de CI/CD do GitHub Actions.
  • Explore o "loop interno de desenvolvimento". 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 de pull para propor e revisar as alterações.
  • Quando os dados de treinamento são atualizados em uma solicitação de pull para o principal, treine modelos com o fluxo de trabalho de CI do GitHub Actions.
  • Execute testes de precisão automatizados para estabelecer o WER (Relatório de Erros do Windows) de um modelo. Armazene os resultados do teste no Blob do Azure.
  • Execute o fluxo de trabalho de CD para criar um ponto de extremidade quando o WER melhorar.

Próximas etapas