Partilhar via


Usar contêineres do Docker de resumo no local

Os contêineres permitem que você hospede a API de Sumarização em sua própria infraestrutura. Se você tiver requisitos de segurança ou governança de dados que não podem ser atendidos chamando Summarization remotamente, os contêineres podem ser uma boa opção.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita.
  • Docker instalado em um computador host. O Docker deve ser configurado para permitir que os contêineres se conectem e enviem dados de cobrança para o Azure.
    • No Windows, o Docker também deve ser configurado para suportar contêineres Linux.
    • Você deve ter uma compreensão básica dos conceitos do Docker.
  • Um recurso de idioma com o nível de preço gratuito (F0) ou padrão (S). Para contêineres desconectados, a camada DC0 é necessária.

Reúna os parâmetros necessários

Três parâmetros principais para todos os contêineres de IA do Azure são necessários. Os Termos de Licença para Software Microsoft devem estar presentes com um valor de aceitação. Um URI do ponto de extremidade e uma chave de API também são necessários.

URI do ponto de extremidade

O {ENDPOINT_URI} valor está disponível na página Visão geral do portal do Azure do recurso de serviços de IA do Azure correspondente. Vá para a página Visão geral , passe o mouse sobre o ponto de extremidade e um ícone Copiar para área de transferência será exibido. Copie e use o ponto de extremidade onde necessário.

Screenshot that shows gathering the endpoint URI for later use.

Chaves

O {API_KEY} valor é usado para iniciar o contêiner e está disponível na página Chaves do portal do Azure do recurso de serviços de IA do Azure correspondente. Vá para a página Teclas e selecione o ícone Copiar para área de transferência .

Screenshot that shows getting one of the two keys for later use.

Importante

Essas chaves de assinatura são usadas para acessar sua API de serviços de IA do Azure. Não partilhe as suas chaves. Armazene-os de forma segura. Por exemplo, use o Azure Key Vault. Também recomendamos que regenere essas chaves regularmente. Só é necessária uma chave para fazer uma chamada à API. Ao regenerar a primeira chave, você pode usar a segunda chave para acesso contínuo ao serviço.

Requisitos e recomendações do computador host

O host é um computador baseado em x64 que executa o contêiner do Docker. Pode ser um computador em suas instalações ou um serviço de hospedagem do Docker no Azure, como:

A tabela a seguir descreve as especificações mínimas e recomendadas para as habilidades do contêiner de sumarização. As combinações de CPU/memória listadas são para uma entrada de token de 4000 (o consumo de conversação é para todos os aspetos na mesma solicitação).

Tipo de Contentor Número recomendado de núcleos de CPU Memória recomendada Notas
Contêiner de CPU de resumo 17 48 GB
Contêiner de GPU de resumo 2 24 GB Requer uma GPU Nvidia que suporte Cuda 11.8 com 16GB VRAM.

O núcleo da CPU e a memória correspondem às --cpus configurações e --memory , que são usadas como parte do docker run comando.

Obtenha a imagem do contêiner com docker pull

A imagem do contêiner Summarization pode ser encontrada no sindicato do registro do mcr.microsoft.com contêiner. Ele reside dentro do azure-cognitive-services/textanalytics/ repositório e é chamado summarizationde . O nome da imagem de contêiner totalmente qualificada é, mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization

Para usar a versão mais recente do contêiner, você pode usar a latest tag . Você também pode encontrar uma lista completa de tags no MCR.

Use o docker pull comando para baixar uma imagem de contêiner do Microsoft Container Registry.

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu

para contêineres de CPU,

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu

para contêineres GPU.

Gorjeta

Você pode usar o comando docker images para listar as imagens de contêiner baixadas. Por exemplo, o comando a seguir lista o ID, o repositório e a tag de cada imagem de contêiner baixada, formatada como uma tabela:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Faça o download dos modelos de contêiner de resumo

Um pré-requisito para executar o contêiner de resumo é baixar os modelos primeiro. Isso pode ser feito executando um dos seguintes comandos usando uma imagem de contêiner da CPU como exemplo:

docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}

Não é recomendado baixar modelos para todas as habilidades dentro do mesmo HOST_MODELS_PATH, pois o contêiner carrega todos os modelos dentro do HOST_MODELS_PATH. Fazer isso usaria uma grande quantidade de memória. Recomenda-se baixar apenas o modelo para a habilidade que você precisa em um determinado HOST_MODELS_PATH.

Para garantir a compatibilidade entre os modelos e o contêiner, baixe novamente os modelos utilizados sempre que criar um contêiner usando uma nova versão de imagem. Ao usar um contêiner desconectado, a licença deve ser baixada novamente após o download dos modelos.

Execute o contêiner com docker run

Quando o contêiner Summarization estiver no computador host, use o seguinte docker run comando para executar os contêineres. O contentor continuará a funcionar até ser parado. Substitua os espaços reservados abaixo pelos seus próprios valores:

Marcador de Posição Valor Formato ou exemplo
{HOST_MODELS_PATH} A montagem de volume do computador host, que o Docker usa para persistir o modelo. Um exemplo é c:\SummarizationModel onde a unidade c:\ está localizada na máquina host.
{ENDPOINT_URI} O ponto de extremidade para acessar a API de resumo. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} A chave para o seu recurso linguístico. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
docker run -p 5000:5000 -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}

Ou, se você estiver executando um contêiner de GPU, use este comando.

docker run -p 5000:5000 --gpus all -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}

Se houver mais de uma GPU na máquina, substitua --gpus all por --gpus device={DEVICE_ID}.

Importante

  • Os comandos docker nas seções a seguir usam a barra invertida, , \como um caractere de continuação de linha. Substitua ou remova isso com base nos requisitos do sistema operacional do host.
  • As Eulaopções , e devem ApiKey ser especificadas para executar o contêiner, caso contrário, Billingrai_terms o contêiner não será iniciado. Para obter mais informações, consulte Faturamento.

Este comando:

  • Executa um contêiner de Sumarização a partir da imagem do contêiner
  • Aloca um núcleo de CPU e 4 gigabytes (GB) de memória
  • Expõe a porta TCP 5000 e aloca um pseudo-TTY para o contêiner
  • Remove automaticamente o recipiente depois que ele sai. A imagem do contêiner ainda está disponível no computador host.

Executar vários contêineres no mesmo host

Se você pretende executar vários contêineres com portas expostas, certifique-se de executar cada contêiner com uma porta exposta diferente. Por exemplo, execute o primeiro contêiner na porta 5000 e o segundo contêiner na porta 5001.

Você pode ter esse contêiner e um contêiner de serviços de IA do Azure diferente em execução no HOST juntos. Você também pode ter vários contêineres do mesmo contêiner de serviços de IA do Azure em execução.

Consultar o ponto final de predição do contentor

O contentor fornece APIs de ponto final de predição de consulta com base em REST.

Utilize o anfitrião, http://localhost:5000, para APIs de contentor.

Validar se um contêiner está em execução

Há várias maneiras de validar se o 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 que o contêiner está em execução. Os URLs de solicitação de exemplo listados aqui são http://localhost:5000, mas seu contêiner específico pode variar. Certifique-se de confiar no endereço IP externo e na porta exposta do contêiner.

URL do Pedido Objetivo
http://localhost:5000/ O contentor fornece uma home page.
http://localhost:5000/ready Solicitada com GET, essa URL fornece uma verificação de que o contêiner está pronto para aceitar uma consulta no modelo. Essa solicitação pode ser usada para testes de vivacidade e prontidão do Kubernetes.
http://localhost:5000/status Também solicitada com GET, essa URL verifica se a chave de 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 vivacidade e prontidão do Kubernetes.
http://localhost:5000/swagger O contentor fornece um conjunto completo de documentação para os pontos finais e uma funcionalidade Experimentar. Com esse recurso, você pode inserir suas configurações em um formulário HTML baseado na Web e fazer a consulta sem ter que escrever nenhum código. Depois que a consulta retorna, um comando CURL de exemplo é fornecido para demonstrar os cabeçalhos HTTP e o formato de corpo necessários.

Container's home page

Execute o contêiner desconectado da Internet

Para usar este recipiente desconectado da internet, você deve primeiro solicitar o acesso preenchendo um requerimento e adquirindo um plano de compromisso. Consulte Usar contêineres do Docker em ambientes desconectados para obter mais informações.

Se você tiver sido aprovado para executar o contêiner desconectado da Internet, use o exemplo a seguir mostra a formatação do comando que você usará, com valores de docker run espaço reservado. Substitua esses valores de espaço reservado por seus próprios valores.

O DownloadLicense=True parâmetro em seu comando baixará um arquivo de licença que permitirá que seu docker run contêiner do Docker seja executado quando não estiver conectado à Internet. Ele também contém uma data de validade, após a qual o arquivo de licença será inválido para executar o contêiner. Você só pode usar um arquivo de licença com o contêiner apropriado para o qual foi aprovado. Por exemplo, você não pode usar um arquivo de licença para um contêiner de fala para texto com um contêiner de serviços de idiomas.

Faça o download dos modelos de contêiner desconectados de resumo

Um pré-requisito para executar o contêiner de resumo é baixar os modelos primeiro. Isso pode ser feito executando um dos seguintes comandos usando uma imagem de contêiner da CPU como exemplo:

docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}

Não é recomendado baixar modelos para todas as habilidades dentro do mesmo HOST_MODELS_PATH, pois o contêiner carrega todos os modelos dentro do HOST_MODELS_PATH. Fazer isso usaria uma grande quantidade de memória. Recomenda-se baixar apenas o modelo para a habilidade que você precisa em um determinado HOST_MODELS_PATH.

Para garantir a compatibilidade entre os modelos e o contêiner, baixe novamente os modelos utilizados sempre que criar um contêiner usando uma nova versão de imagem. Ao usar um contêiner desconectado, a licença deve ser baixada novamente após o download dos modelos.

Execute o contêiner desconectado com docker run

Marcador de Posição Valor Formato ou exemplo
{IMAGE} A imagem de contêiner que você deseja usar. mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
{LICENSE_MOUNT} O caminho onde a licença será baixada e montada. /host/license:/path/to/license/directory
{HOST_MODELS_PATH} O caminho onde os modelos foram baixados e montados. /host/models:/models
{ENDPOINT_URI} O ponto de extremidade para autenticar sua solicitação de serviço. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} A chave para o seu recurso de Análise de Texto. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} Localização da pasta de licença no sistema de arquivos local do contêiner. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
-v {HOST_MODELS_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

Depois que o arquivo de licença for baixado, você poderá executar o contêiner em um ambiente desconectado. O exemplo a seguir mostra a formatação do comando que você usará, com valores de docker run espaço reservado. Substitua esses valores de espaço reservado por seus próprios valores.

Onde quer que o contêiner seja executado, o arquivo de licença deve ser montado no contêiner e o local da pasta de licença no sistema de arquivos local do contêiner deve ser especificado com Mounts:License=. Uma montagem de saída também deve ser especificada para que os registros de uso de faturamento possam ser gravados.

Marcador de Posição Valor Formato ou exemplo
{IMAGE} A imagem de contêiner que você deseja usar. mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
{MEMORY_SIZE} O tamanho apropriado da memória a ser alocada para seu contêiner. 4g
{NUMBER_CPUS} O número apropriado de CPUs a serem alocadas para seu contêiner. 4
{LICENSE_MOUNT} O caminho onde a licença será localizada e montada. /host/license:/path/to/license/directory
{HOST_MODELS_PATH} O caminho onde os modelos foram baixados e montados. /host/models:/models
{OUTPUT_PATH} O caminho de saída para registrar registros de uso. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Localização da pasta de licença no sistema de arquivos local do contêiner. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Localização da pasta de saída no sistema de arquivos local do contêiner. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {HOST_MODELS_PATH} \
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Parar o contentor

Para desligar o contêiner, no ambiente de linha de comando em que o contêiner está sendo executado, selecione Ctrl+C.

Resolução de problemas

Se você executar o contêiner com uma montagem de saída e registro em log habilitados, o contêiner gerará arquivos de log que serão úteis para solucionar problemas que acontecem ao iniciar ou executar o contêiner.

Gorjeta

Para obter mais informações e orientações sobre solução de problemas, consulte Perguntas frequentes (FAQ) sobre contêineres de IA do Azure.

Faturação

Os contêineres de resumo enviam informações de cobrança para o Azure, usando um recurso de idioma em sua conta do Azure.

As consultas ao contêiner são cobradas na camada de preço do recurso do Azure usado para o ApiKey parâmetro.

Os contêineres de serviços de IA do Azure não são licenciados para serem executados sem estarem conectados ao ponto de extremidade de medição ou cobrança. Você deve habilitar os contêineres para comunicar informações de faturamento com o ponto de extremidade de faturamento em todos os momentos. Os contêineres de serviços de IA do Azure não enviam dados do cliente, como a imagem ou o texto que está sendo analisado, para a Microsoft.

Ligar ao Azure

O contêiner precisa dos valores do argumento de faturamento para ser executado. Esses valores permitem que o contêiner se conecte ao ponto de extremidade de faturamento. 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, o contêiner continuará a ser executado, mas não atenderá consultas até que o ponto de extremidade de cobrança seja restaurado. A conexão é tentada 10 vezes no mesmo intervalo de tempo de 10 a 15 minutos. Se ele não puder se conectar ao ponto de extremidade de faturamento dentro das 10 tentativas, o contêiner interromperá o atendimento de solicitações. Consulte as Perguntas frequentes sobre o contêiner de serviços de IA do Azure para obter um exemplo das informações enviadas à Microsoft para cobrança.

Argumentos de faturação

O docker run comando iniciará o contêiner quando todas as três opções a seguir forem fornecidas com valores válidos:

Opção Descrição
ApiKey A chave de API do recurso de serviços de IA do Azure que é usada para rastrear informações de cobrança.
O valor dessa opção deve ser definido como uma chave de API para o recurso provisionado especificado em Billing.
Billing O ponto de extremidade do recurso de serviços de IA do Azure usado para rastrear informações de cobrança.
O valor dessa opção deve ser definido como o URI do ponto de extremidade de um recurso provisionado do Azure.
Eula Indica que você aceitou a licença para o contêiner.
O valor desta opção deve ser definido como accept.

Para obter mais informações sobre essas opções, consulte Configurar contêineres.

Resumo

Neste artigo, você aprendeu conceitos e fluxo de trabalho para baixar, instalar e executar contêineres de sumarização. Em resumo:

  • Summarization fornece contêineres Linux para Docker
  • As imagens de contêiner são baixadas do Microsoft Container Registry (MCR).
  • As imagens de contêiner são executadas no Docker.
  • Você deve especificar informações de faturamento ao instanciar um contêiner.

Importante

Esse contêiner não está licenciado para ser executado sem estar conectado ao Azure para medição. Os clientes precisam permitir que os contêineres comuniquem informações de faturamento com o serviço de medição em todos os momentos. Os contêineres de IA do Azure não enviam dados do cliente (por exemplo, texto que está sendo analisado) para a Microsoft.

Próximos passos