MLOps

Otimizando ML em Produção com Métricas Aprimoradas do SageMaker AI

Uma Nova Era de Visibilidade para Modelos de ML em Produção

Executar modelos de Machine Learning (ML) em produção vai além de infraestrutura resiliente e escalabilidade eficiente. Requer visibilidade contínua sobre o desempenho e a utilização de recursos. Quando a latência aumenta, invocações falham ou recursos se tornam restritos, é crucial ter insights imediatos para diagnosticar e resolver problemas antes que impactem seus clientes.

Até recentemente, o Amazon SageMaker AI fornecia métricas do Amazon CloudWatch que ofereciam uma visibilidade útil de alto nível, mas eram métricas agregadas em todas as instâncias e contêineres. Embora úteis para o monitoramento geral da saúde, essas métricas agregadas obscureciam detalhes de instâncias e contêineres individuais, dificultando a identificação de gargalos, a melhoria da utilização de recursos ou a resolução eficaz de problemas.

Os endpoints do SageMaker AI agora suportam métricas aprimoradas com frequência de publicação configurável. Este lançamento proporciona a visibilidade granular necessária para monitorar, solucionar problemas e aprimorar seus endpoints de produção. Com as métricas aprimoradas dos endpoints do SageMaker AI, podemos agora aprofundar em métricas de nível de contêiner e de instância, oferecendo capacidades como:

O Que Há de Novo

As métricas aprimoradas introduzem duas categorias de métricas com múltiplos níveis de granularidade:

Cada categoria oferece diferentes níveis de visibilidade dependendo da configuração do seu endpoint.

Métricas de Nível de Instância: Disponíveis para Todos os Endpoints

Todo endpoint do SageMaker AI agora tem acesso a métricas de nível de instância, oferecendo visibilidade sobre o que está acontecendo em cada instância do Amazon Elastic Compute Cloud (Amazon EC2) em seu endpoint.

Métricas de Nível de Contêiner: Para Inference Components

Se você está usando Inference Components para hospedar múltiplos modelos em um único endpoint, agora você tem visibilidade em nível de contêiner.

Configurando Métricas Aprimoradas

Habilite as métricas aprimoradas adicionando um parâmetro ao criar sua configuração de endpoint:

response = sagemaker_client.create_endpoint_config(
    EndpointConfigName='my-config',
    ProductionVariants=[{
        'VariantName': 'AllTraffic',
        'ModelName': 'my-model',
        'InstanceType': 'ml.g6.12xlarge',
        'InitialInstanceCount': 2
    }],
    MetricsConfig={
        'EnableEnhancedMetrics': True,
        'MetricsPublishFrequencyInSeconds': 10, # Default 60s
    }
)

Escolhendo Sua Frequência de Publicação

Depois de habilitar as métricas aprimoradas, configure a frequência de publicação com base nas suas necessidades de monitoramento:

Casos de Uso de Exemplo

As métricas aprimoradas entregam valor prático em diversos cenários, todos disponíveis em um notebook de exemplo:

Rastreamento de Utilização de GPU em Tempo Real entre Inference Components

Ao executar vários modelos em infraestrutura compartilhada usando Inference Components, entender a alocação e utilização da GPU é fundamental para a otimização de custos e o ajuste de desempenho. Com métricas aprimoradas, você pode consultar a alocação de GPU por Inference Component:

response = cloudwatch.get_metric_data(
    MetricDataQueries=[ {
        'Id': 'm1',
        'Expression': 'SEARCH(\'{/aws/sagemaker/InferenceComponents,InferenceComponentName,GpuId} MetricName="GPUUtilizationNormalized" InferenceComponentName="IC-my-model"\', \'SampleCount\', 10)'
    }, {
        'Id': 'e1',
        'Expression': 'SUM(m1)' # Returns GPU count
    } ],
    StartTime=start_time,
    EndTime=end_time
)

Esta consulta utiliza a dimensão GpuId para contar GPUs individuais alocadas a cada Inference Component. Ao rastrear a estatística SampleCount, você obtém uma contagem precisa de GPUs em uso para um Inference Component específico, o que é essencial para:

Atribuição de Custo por Modelo em Implantações Multi-Modelo

Uma das capacidades mais solicitadas é entender o custo real de cada modelo quando múltiplos modelos compartilham a mesma infraestrutura de endpoint. As métricas aprimoradas tornam isso possível através do rastreamento de GPU em nível de contêiner. Veja como calcular o custo cumulativo por modelo:

response = cloudwatch.get_metric_data(
    MetricDataQueries=[ {
        'Id': 'e1',
        'Expression': 'SEARCH(\'{/aws/sagemaker/InferenceComponents,InferenceComponentName,GpuId} MetricName="GPUUtilizationNormalized" InferenceComponentName="IC-my-model"\', \'SampleCount\', 10)'
    }, {
        'Id': 'e2',
        'Expression': 'SUM(e1)' # GPU count
    }, {
        'Id': 'e3',
        'Expression': 'e2 * 5.752 / 4 / 360' # Cost per 10s based on ml.g6.12xlarge hourly cost
    }, {
        'Id': 'e4',
        'Expression': 'RUNNING_SUM(e3)' # Cumulative cost
    } ],
    StartTime=start_time, EndTime=end_time
)

Este cálculo:

Por exemplo, com uma instância ml.g6.12xlarge (\$5,752/hora para 4 GPUs), se seu modelo usa 4 GPUs, o custo por 10 segundos é de \$0,016. O RUNNING_SUM fornece um total continuamente crescente, perfeito para dashboards e rastreamento de custos.

Monitoramento de Recursos em Nível de Cluster

As métricas aprimoradas permitem um monitoramento abrangente do cluster, agregando métricas de todos os Inference Components em um endpoint:

response = cloudwatch.get_metric_data(
    MetricDataQueries=[ {
        'Id': 'e1',
        'Expression': 'SUM(SEARCH(\'{/aws/sagemaker/InferenceComponents,EndpointName,GpuId} MetricName="GPUUtilizationNormalized" EndpointName="my-endpoint"\', \'SampleCount\', 10))'
    }, {
        'Id': 'm2',
        'MetricStat': {
            'Metric': {
                'Namespace': '/aws/sagemaker/Endpoints',
                'MetricName': 'CPUUtilizationNormalized',
                'Dimensions': [ {
                    'Name': 'EndpointName',
                    'Value': 'my-endpoint'
                }, {
                    'Name': 'VariantName',
                    'Value': 'AllTraffic'
                }
                ] },
            'Period': 10,
            'Stat': 'SampleCount' # Returns instance count
        }
    }, {
        'Id': 'e2',
        'Expression': 'm2 * 4 - e1' # Free GPUs (assuming 4 GPUs per instance)
    } ],
    StartTime=start_time, EndTime=end_time
)

Esta consulta fornece:

Essa visibilidade é crucial para o planejamento de capacidade e para garantir que você tenha recursos suficientes para novas implantações de modelos ou para escalar os existentes.

Criando Dashboards Operacionais

O notebook de acompanhamento demonstra como criar dashboards do CloudWatch programaticamente que combinam essas métricas:

from endpoint_metrics_helper import create_dashboard

create_dashboard(
    dashboard_name='my-endpoint-monitoring',
    endpoint_name='my-endpoint',
    inference_components=[ {
        'name': 'IC-model-a',
        'label': 'MODEL_A'
    }, {
        'name': 'IC-model-b',
        'label': 'MODEL_B'
    } ],
    cost_per_hour=5.752,
    region='us-east-1'
)

Isso cria um dashboard com:

O notebook também inclui widgets interativos para análise ad-hoc:

from endpoint_metrics_helper import create_metrics_widget, create_cost_widget

# Cluster metrics
create_metrics_widget('my-endpoint')

# Per-model cost analysis
create_cost_widget ('IC-model-a', cost_per_hour=5.752)

Esses widgets fornecem seleção de intervalo de tempo (últimos 5/10/30 minutos, 1 hora ou intervalo personalizado) e exibem:

Melhores Práticas

As Métricas Aprimoradas para Endpoints do Amazon SageMaker AI transformam a forma como você monitora, aprimora e opera cargas de trabalho de ML em produção. Ao fornecer visibilidade em nível de contêiner com frequência de publicação configurável, você obtém a inteligência operacional necessária para:

A combinação de métricas detalhadas, frequência de publicação flexível e dimensões ricas ajuda a construir soluções de monitoramento sofisticadas que escalam com suas operações de ML. Seja você executando um único modelo ou gerenciando dezenas de Inference Components em múltiplos endpoints, as métricas aprimoradas fornecem a visibilidade que você precisa para executar IA eficientemente em escala.

Comece hoje mesmo habilitando as métricas aprimoradas em seus endpoints do SageMaker AI e explore o notebook de acompanhamento para exemplos completos de implementação e funções auxiliares reutilizáveis.

Comentários

Interações
Seu Perfil

Aguardando Login...