Usar implantações contínuas - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar implantações contínuas

Ao atualizar seu endpoint, você pode especificar uma implantação contínua para deslocar gradualmente o tráfego da sua frota antiga para uma nova frota. Você pode controlar o tamanho das etapas de deslocamento de tráfego, bem como especificar um período de avaliação para monitorar problemas nas novas instâncias antes de encerrar instâncias da frota antiga. Com implantações contínuas, as instâncias da frota antiga são limpas após cada deslocamento de tráfego para a nova frota, reduzindo a quantidade de instâncias adicionais necessárias para atualizar seu endpoint. Isso é útil principalmente para instâncias aceleradas que estão sob alta demanda.

As implantações contínuas substituem gradualmente a implantação anterior da versão do modelo pela nova versão, atualizando seu endpoint em tamanhos de lote configuráveis. O comportamento de mudança de tráfego das implantações contínuas é semelhante ao modo de mudança de tráfego linear na blue/green deployments, but rolling deployments provide you with the benefit of reduced capacity requirements when compared to blue/green deployments. With rolling deployments, fewer instances are active at a time, and you have more granular control over how many instances you want to update in the new fleet. You should consider using a rolling deployment instead of a blue/green implantação, se você tiver modelos grandes ou um endpoint grande com muitas instâncias.

A lista a seguir descreve os principais recursos das implantações contínuas na Amazon SageMaker AI:

  • Período de baking. O período de incorporação é um período de tempo determinado para monitorar a nova frota antes de prosseguir para a próxima etapa de implantação. Se algum dos alarmes pré-especificados disparar durante qualquer período de incorporação, todo o tráfego do endpoint será revertido para a frota antiga. O período de incorporação ajuda você a adquirir confiança em sua atualização antes de tornar o deslocamento de tráfego permanente.

  • Tamanho do lote contínuo. Você tem controle granular sobre o tamanho de cada lote para o deslocamento de tráfego ou o número de instâncias que deseja atualizar em cada lote. Esse número pode variar de 5 a 50% do tamanho da sua frota. Você pode especificar o tamanho do lote como um número de instâncias ou como a porcentagem geral de sua frota.

  • Reversão automática. Você pode especificar CloudWatch os alarmes da Amazon que a SageMaker IA usa para monitorar a nova frota. Se um problema com o código atualizado acionar algum dos alarmes, a SageMaker IA iniciará uma reversão automática para a frota antiga a fim de manter a disponibilidade, minimizando assim o risco.

nota

Se seu endpoint usa quaisquer dos atributos listados na página Exclusões, você não pode usar implantações contínuas.

Como funciona

Durante uma implantação contínua, a SageMaker IA fornece a infraestrutura para transferir o tráfego da frota antiga para a nova frota sem precisar provisionar todas as novas instâncias de uma só vez. SageMaker A IA usa as seguintes etapas para mudar o tráfego:

  1. SageMaker A IA provisiona o primeiro lote de instâncias na nova frota.

  2. Uma parte do tráfego é deslocada a partir das instâncias antigas para o primeiro lote de novas instâncias.

  3. Após o período de cozimento, se nenhum CloudWatch alarme da Amazon for acionado, a SageMaker IA limpa um lote de instâncias antigas.

  4. SageMaker A IA continua provisionando, transferindo e limpando instâncias em lotes até que a implantação seja concluída.

Se um alarme for disparado durante um dos períodos de incorporação, o tráfego será revertido para a frota antiga em lotes do tamanho especificado por você. Como alternativa, você pode especificar a implantação contínua para deslocar 100% do tráfego de volta para a frota antiga caso um alarme seja disparado.

O diagrama a seguir mostra a progressão de uma implantação contínua com êxito, conforme descrito nas etapas anteriores.

As etapas de um deslocamento de tráfego de uma implantação contínua com êxito da frota anterior para a nova frota.

Para criar uma implantação contínua, basta especificar a configuração de implantação desejada. Em seguida, a SageMaker IA gerencia o provisionamento de novas instâncias, o encerramento de instâncias antigas e a transferência de tráfego para você. Você pode criar e gerenciar sua implantação por meio da CreateEndpoint SageMaker API UpdateEndpointe dos AWS Command Line Interface comandos existentes.

Pré-requisitos

Antes de configurar uma implantação contínua, você deve criar CloudWatch alarmes da Amazon para monitorar as métricas do seu endpoint. Se qualquer alarme for disparado durante o período de incorporação, o tráfego começará a reverter para sua frota antiga. Para saber como configurar CloudWatch alarmes em um endpoint, consulte a página de pré-requisitos Configuração e monitoramento de reversão automática. Para saber mais sobre CloudWatch alarmes, consulte Como usar CloudWatch alarmes da Amazon no Guia CloudWatch do usuário da Amazon.

Além disso, revise a página Exclusões para garantir que seu endpoint atenda aos requisitos de uma implantação contínua.

Determinar o tamanho do lote contínuo

Antes de atualizar seu endpoint, determine o tamanho do lote que você deseja usar para deslocar incrementalmente o tráfego para a nova frota.

Para implantações contínuas, você pode especificar um tamanho do lote que seja de 5 a 50% da capacidade da sua frota. Se você escolher um tamanho do lote grande, a implantação será concluída mais rapidamente. No entanto, lembre-se de que o endpoint requer mais capacidade durante a atualização, aproximadamente a sobrecarga do tamanho do lote. Se você escolher um tamanho do lote menor, a implantação demorará mais, mas você usará menos capacidade durante a implantação.

Configurar uma implantação contínua

Quando estiver pronto para a implantação e configurar os CloudWatch alarmes para o endpoint, você poderá usar a UpdateEndpointAPI de SageMaker IA ou o comando update-endpoint no para iniciar a AWS Command Line Interface implantação.

Instrução para atualizar um endpoint

O exemplo a seguir mostra como você pode atualizar seu endpoint com uma implantação contínua usando o método update_endpoint do cliente Boto3 AI. SageMaker

Para configurar a implantação contínua, use o exemplo e os campos a seguir.

  • Em EndpointName, use o nome do endpoint existente que você deseja atualizar.

  • Em EndpointConfigName, use o nome da configuração de endpoint que deseja usar.

  • No AutoRollbackConfiguration objeto, dentro do Alarms campo, você pode adicionar seus CloudWatch alarmes por nome. Crie uma entrada AlarmName: <your-cw-alarm> para cada alarme que você deseja usar.

  • Em DeploymentConfig, para o objeto RollingUpdatePolicy, especifique os seguintes campos:

    • MaximumExecutionTimeoutInSeconds: O limite de tempo para a implantação total. Exceder esse limite causa um tempo limite. O valor máximo que você pode especificar para esse campo é 28800 segundos ou 8 horas.

    • WaitIntervalInSeconds— A duração do período de cozimento, durante o qual a SageMaker IA monitora os alarmes para cada lote da nova frota.

    • MaximumBatchSize: Especifique o Type do lote que você deseja usar (contagem de instâncias ou porcentagem geral da sua frota) e o Value ou o tamanho de cada lote.

    • RollbackMaximumBatchSize: Use este objeto para especificar a estratégia de reversão caso um alarme dispare. Especifique o Type do lote que você deseja usar (contagem de instâncias ou porcentagem geral da sua frota) e o Value ou o tamanho de cada lote. Se você não especificar esses campos ou definir o valor como 100% do seu endpoint, a SageMaker IA usa uma estratégia de reversão azul/verde e reverte todo o tráfego para a frota antiga quando um alarme dispara.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" }, ] }, "RollingUpdatePolicy": { "MaximumExecutionTimeoutInSeconds": number, "WaitIntervalInSeconds": number, "MaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, "RollbackMaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, } } )

Depois de atualizar seu endpoint, você pode verificar o status da sua implantação contínua e verificar a integridade do seu endpoint. Você pode revisar o status do seu endpoint no console de SageMaker IA ou pode revisar o status do seu endpoint usando a DescribeEndpointAPI.

No objeto VariantStatus retornado pela API DescribeEndpoint, o campo Status informa a implantação atual ou o status da operação do seu endpoint. Para obter mais informações sobre os possíveis status e o que eles significam, consulte ProductionVariantStatus.

Se você tentou realizar uma implantação contínua e o status do seu endpoint é UpdateRollbackFailed, consulte a seção a seguir para obter ajuda na solução de problemas.

Tratamento de falhas

Se houver falha nas implantações contínuas e na reversão automática, seu endpoint poderá ficar com o status de UpdateRollbackFailed. Esse status significa que diferentes configurações de endpoint foram implantadas nas instâncias por trás do seu endpoint e seu endpoint está em serviço com uma combinação de configurações de endpoint antigas e novas.

Você pode fazer outra chamada para a UpdateEndpointAPI para retornar seu endpoint a um estado íntegro. Especifique a configuração de endpoint e a configuração de implantação desejadas (como uma implantação contínua, uma implantação azul/verde ou nenhuma) para atualizar seu endpoint.

Você pode chamar a DescribeEndpointAPI para verificar novamente a integridade do seu endpoint, que é retornada no VariantStatus objeto como Status campo. Se sua atualização tiver êxito, o Status do endpoint retornará a InService.