Instalar e executar Contêineres de Fala com Docker
Ao usar contêineres, você pode usar um subconjunto dos recursos do serviço de Fala em seu próprio ambiente. Neste artigo, você aprenderá a fazer download, instalar e executar um contêiner de Fala.
Observação
O preço do contêiner desconectado e os níveis de compromisso variam em relação aos contêineres padrão. Para obter mais informações, confira Preços do serviço de Fala.
Pré-requisitos
É necessário atender aos pré-requisitos a seguir antes de usar os contêineres do serviço de Fala. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar. Você precisa de:
- Docker instalado em um computador host. O Docker deve ser configurado para permitir que os contêineres conectem-se e enviem dados de cobrança para o Azure.
- No Windows, o Docker também deve ser configurado para dar suporte a contêineres do Linux.
- É preciso ter conhecimentos básicos sobre os conceitos do Docker.
- Um recurso do serviço de Fala no tipo de preço Gratuito (F0) ou Standard (S).
Argumentos de cobrança
Os contêineres de Fala não estão licenciados para serem executados sem estarem conectados ao Azure para medição. Você deve configurar seu contêiner para sempre comunicar as informações de cobrança com o serviço de medição.
São necessários três parâmetros principais para todos os contêineres de IA do Azure. O Termos de Licença para Software Microsoft precisam estar presentes com um valor igual a aceito. Um URI do ponto de extremidade e uma chave de API também são necessários.
Consultas ao contêiner são cobradas pelo tipo de preço do recurso do Azure usado para o parâmetro ApiKey
.
O comando docker run
inicia o contêiner quando todas as três opções a seguir são fornecidas com valores válidos:
Opção | Descrição |
---|---|
ApiKey |
A chave de API do recurso de Fala usado para rastrear informações de cobrança. O valor de ApiKey é usado para iniciar o contêiner e está disponível na página Chaves do portal do Azure do recurso de Fala correspondente. Acesse a página Chaves e selecione o ícone Copiar para a área de transferência . |
Billing |
O ponto de extremidade do recurso de Fala usado para rastrear informações de cobrança. O ponto de extremidade está disponível na página Visão geral do portal do Azure do recurso de Fala correspondente. Acesse a página Visão geral, posicione o cursor sobre o ponto de extremidade, e um ícone Copiar para a área de transferência será exibido. Copie e use o ponto de extremidade quando necessário. |
Eula |
Indica que você aceitou a licença do contêiner. O valor dessa opção deve ser definido como aceitar. |
Importante
Essas chaves de assinatura são usadas para acessar a API dos serviços de IA do Azure. Não compartilhe suas chaves. Armazene-as com segurança. Por exemplo, use o Azure Key Vault. Também recomendamos que você regenere essas chaves regularmente. Apenas uma chave é necessária para fazer uma chamada à API. Ao regenerar a primeira chave, você pode usar a segunda chave para acesso contínuo ao serviço.
O contêiner precisa dos valores de argumento de cobrança para ser executado. Esses valores permitem que o contêiner se conecte ao ponto de extremidade de cobrança. O contêiner relata o uso a cada 10 a 15 minutos. Se o contêiner não se conectar ao Azure dentro da janela de tempo permitida, ele continuará sendo executado, mas não atenderá a consultas até que o ponto de extremidade de cobrança seja restaurado. Serão realizadas 10 tentativas de conexão no mesmo intervalo de tempo de 10 a 15 minutos. Se não for possível conectar-se ao ponto de extremidade de cobrança dentro das 10 tentativas, o contêiner interromperá as solicitações de serviço. Para obter um exemplo das informações enviadas à Microsoft para cobrança, confira as Perguntas frequentes sobre o contêiner de IA do Azure na documentação dos serviços de IA do Azure.
Para obter mais informações sobre essas opções, consulte Configurar contêineres.
Recomendações e requisitos do contêiner
A seguinte tabela descreve uma alocação mínima e recomendada de recursos para cada contêiner de Fala:
Contêiner | Mínimo | Recomendadas | Modelo de Fala |
---|---|---|---|
Conversão de fala em texto | 4 núcleos e 4 GB de memória | Oito núcleos, 8 GB de memória | Mais de 4 a 8 GB de memória |
Conversão de fala em texto personalizada | 4 núcleos e 4 GB de memória | Oito núcleos, 8 GB de memória | Mais de 4 a 8 GB de memória |
Identificação do idioma de fala | 1 núcleos e 1 GB de memória | 1 núcleos e 1 GB de memória | n/a |
Conversão de texto em fala neural | 6 núcleos e 12 GB de memória | 8 núcleos e 16 GB de memória | n/a |
Cada núcleo precisa ser de pelo menos 2,6 GHz (gigahertz) ou mais rápido.
Memória e núcleo correspondem às configurações --cpus
e --memory
, que são usadas como parte do comando docker run
.
Observação
As alocações mínima e recomendada se baseiam nos limites do Docker e não nos recursos do computador host. Por exemplo, os contêineres de conversão de fala em texto mapeiam partes de mapa de memória de um modelo de linguagem grande. Recomendamos que todo o arquivo se ajuste à memória. Você precisa adicionar mais 4 a 8 GB para carregar os modelos de fala (consulte a tabela anterior). Além disso, a primeira execução de um dos contêineres poderá levar mais tempo, pois os modelos estão sendo paginados na memória.
Recomendações e requisitos do computador host
O host é um computador baseado em x64 que executa o contêiner do Docker. Ele pode ser um computador local ou um serviço de hospedagem do Docker no Azure, como:
- Serviço de Kubernetes do Azure.
- Instâncias de Contêiner do Azure.
- Um cluster do Kubernetes implantado no Azure Stack. Para obter mais informações, consulte Implantar Kubernetes no Azure Stack.
Observação
Os contêineres dão suporte a uma entrada de áudio compactada no SDK de Fala por meio do GStreamer. Para instalar o GStreamer em um contêiner, siga as instruções do Linux para o GStreamer no artigo Usar a entrada de áudio compactada por codec com o SDK de Fala.
Suporte para a extensão de vetor avançada
O host é o computador que executa o contêiner do Docker. O host deverá ser compatível com Extensões Avançadas do Vetor (AVX2). É possível verificar o suporte para AVX2 em hosts Linux usando o seguinte comando:
grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected
Aviso
O computador host será necessário para dar suporte ao AVX2. O contêiner não funcionará de modo adequado sem o suporte ao AVX2.
Executar o contêiner
Use o comando docker run para executar o contêiner. Quando em execução, o contêiner continuará a ser executado até que você pare o contêiner.
Anote as seguintes melhores práticas com o comandodocker run
:
- Caractere de continuação de linha: os comandos do Docker das seções a seguir usam a barra invertida,
\
, como um caractere de continuação de linha. Substitua ou remova esse caractere com base nos requisitos do seu sistema operacional do host. - Ordem do argumento: não altere a ordem dos argumentos, a menos que você conheça os contêineres do Docker.
Você pode usar o comando imagens do estivador para listar as imagens do contêiner transferidas por download. O comando a seguir lista a ID, o repositório e a marca de cada imagem baixada do contêiner, formatada como uma tabela:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
Aqui está um exemplo de resultado:
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Validar se um contêiner está em execução
Há várias maneiras de validar se um contêiner está em execução. Localize o endereço IP externo e a porta exposta do contêiner em questão e abra seu navegador da Web favorito. Use as várias URLs de solicitação a seguir para validar se o contêiner está em execução.
Os exemplos de URLs de solicitação listados aqui são http://localhost:5000
, mas seu contêiner específico poderá variar. Dependa do endereço IP externo do seu contêiner e da porta exposta.
URL de Solicitação | Finalidade |
---|---|
http://localhost:5000/ |
O contêiner fornece uma home page. |
http://localhost:5000/ready |
Solicitada com GET, essa URL fornece uma verificação que indica que o contêiner está pronto para aceitar uma consulta no modelo. Essa solicitação pode ser usada para testes de preparação e de execução do Kubernetes. |
http://localhost:5000/status |
Também solicitada com GET, essa URL verifica se a chave API usada para iniciar o contêiner é válida sem causar uma consulta de ponto de extremidade. Essa solicitação pode ser usada para testes de preparação e de execução do Kubernetes. |
http://localhost:5000/swagger |
O contêiner fornece um conjunto completo de documentação para os pontos de extremidade e um recurso Experimentar. Com esse recurso, é possível inserir suas configurações em um formulário HTML baseado na Web e realizar a consulta sem precisar escrever nenhum código. Após a consulta ser retornada, um exemplo de comando CURL será fornecido para demonstrar o formato do corpo e dos cabeçalhos HTTP exigidos. |
Parar o contêiner
Para desligar o contêiner, no ambiente de linha de comando em que o contêiner estiver em execução, selecione Ctrl+C.
Executar vários contêineres no mesmo host
Se você pretende executar vários contêineres com portas expostas, execute cada um deles com uma porta exposta diferente. Por exemplo, execute o primeiro contêiner na porta 5000 e o segundo contêiner na porta 5001.
É possível ter esse contêiner e um contêiner do IA do Azure em execução no HOST juntos. Também é possível ter vários contêineres do mesmo contêiner de IA do Azure em execução.
URLs do host
Observação
Caso esteja executando vários contêineres, use um número da porta exclusivo.
Protocolo | URL do host | Contêineres |
---|---|---|
WS | ws://localhost:5000 |
Conversão de fala em texto Conversão de fala em texto personalizada |
HTTP | http://localhost:5000 |
Conversão de texto em fala neural Identificação do idioma de fala |
Para obter mais informações sobre o uso dos protocolos WSS e HTTPS, confira Segurança de contêiner na documentação dos serviços de IA do Azure.
Solução de problemas
Ao iniciar ou executar o contêiner, você poderá ter problemas. Use a montagem de saída e habilite o registro em log. Essa ação permitirá que o contêiner crie arquivos de log úteis durante a solução de problemas.
Dica
Para obter mais informações e diretrizes para a solução de problemas, confira Perguntas frequentes sobre os contêineres de IA do Azure na documentação dos serviços de IA do Azure.
Configurações de log
Os contêineres de Fala vêm com suporte ao registro em log no ASP.NET Core. Aqui está um exemplo do neural-text-to-speech container
iniciado com o log padrão no console:
docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
Logging:Console:LogLevel:Default=Information
Para obter mais informações sobre o registro em log, confira Configurar contêineres de Fala e registros de uso na documentação dos serviços de IA do Azure.
Contêiner de diagnóstico da Microsoft
Se estiver com problemas para executar um contêiner de IA do Azure, tente usar o contêiner de diagnóstico da Microsoft. Use esse contêiner para diagnosticar erros comuns no ambiente de implantação que podem impedir que os contêineres de IA do Azure funcionem conforme o esperado.
Para obter o contêiner, use o seguinte comando docker pull
:
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
Em seguida, execute o contêiner. Substitua {ENDPOINT_URI}
pelo ponto de extremidade e {API_KEY}
pela chave do recurso:
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
O contêiner testa a conectividade de rede com o ponto de extremidade de cobrança.
Executar contêineres desconectados
Para executar contêineres desconectados (não conectados à Internet), você deve enviar esse formulário de solicitação e aguardar aprovação. Para obter mais informações sobre como aplicar e adquirir um plano de compromisso para usar contêineres em ambientes desconectados, consulte Como usar contêineres em ambientes desconectados na documentação dos Serviços de IA do Azure.
Próximas etapas
- Revise Configurar contêineres para ver a definição de configurações.
- Saiba como usar os contêineres do serviço de Fala com o Kubernetes e o Helm.
- Implantar e executar contêineres em uma Instância de Contêiner do Azure
- Use mais contêineres IA do Azure.