Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Configure a alocação de custos de nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker

À medida que as empresas e os líderes de TI procuram acelerar a adoção do aprendizado de máquina (ML), há uma necessidade crescente de entender os gastos e a alocação de custos para seu ambiente de ML para atender aos requisitos da empresa. Sem gerenciamento e governança de custos adequados, seus gastos com ML podem gerar surpresas em sua fatura mensal da AWS. Amazon Sage Maker é uma plataforma de ML totalmente gerenciada na nuvem que equipa nossos clientes corporativos com ferramentas e recursos para estabelecer medidas de alocação de custos e melhorar a visibilidade de custos e uso detalhados por suas equipes, unidades de negócios, produtos e muito mais.

Neste post, compartilhamos dicas e práticas recomendadas sobre alocação de custos para seu ambiente e cargas de trabalho do SageMaker. Em quase todos os serviços da AWS, incluindo o SageMaker, aplicar tags a recursos é uma maneira padrão de rastrear custos. Essas tags podem ajudar você a rastrear, relatar e monitorar seus gastos com ML por meio de soluções prontas para uso, como Explorador de custos da AWS e Orçamentos da AWS, bem como soluções personalizadas criadas com base nos dados de Relatórios de uso e custo da AWS (CUR).

Etiquetagem de alocação de custos

A alocação de custos na AWS é um processo de três etapas:

  1. Anexar tags de alocação de custos aos seus recursos.
  2. Ative suas tags no Etiquetas de alocação de custos seção do console de faturamento da AWS.
  3. Use as tags para rastrear e filtrar relatórios de alocação de custos.

Depois de criar e anexar tags aos recursos, elas aparecem no console do AWS Billing Etiquetas de alocação de custos seção sob Tags de alocação de custos definidas pelo usuário. Pode levar até 24 horas para que as tags apareçam após serem criadas. Em seguida, você precisa ativar essas tags para que a AWS comece a rastreá-las para seus recursos. Normalmente, depois que uma tag é ativada, leva cerca de 24 a 48 horas para que as tags apareçam no Explorador de custos. A maneira mais fácil de verificar se suas tags estão funcionando é procurar sua nova tag no filtro de tags no Explorador de custos. Se estiver lá, você estará pronto para usar as tags para seus relatórios de alocação de custos. Você pode então optar por agrupar seus resultados por chaves de tag ou filtrar por valores de tag, conforme mostrado na captura de tela a seguir.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Uma coisa a notar: se você usar Organizações da AWS e têm contas da AWS vinculadas, as tags só podem ser ativadas na conta do pagador principal. Opcionalmente, você também pode ativar CURs para as contas da AWS que permitem relatórios de alocação de custos como um arquivo CSV com seu uso e custos agrupados por suas tags ativas. Isso oferece um rastreamento mais detalhado de seus custos e facilita a configuração de suas próprias soluções de relatórios personalizados.

Marcação no SageMaker

Em um nível alto, os recursos de marcação do SageMaker podem ser agrupados em dois buckets:

  • Marcar o ambiente do notebook SageMaker, seja Estúdio Amazon SageMaker domínios e usuários de domínio ou instâncias de notebook do SageMaker
  • Marcação de trabalhos gerenciados pelo SageMaker (rotulagem, processamento, treinamento, ajuste de hiperparâmetros, transformação em lote e muito mais) e recursos (como modelos, equipes de trabalho, configurações de endpoints e endpoints)

Cobrimos isso com mais detalhes neste post e fornecemos algumas soluções sobre como aplicar o controle de governança para garantir uma boa higiene de marcação.

Marcando domínios e usuários do SageMaker Studio

O Studio é um ambiente de desenvolvimento integrado (IDE) baseado na Web para ML que permite criar, treinar, depurar, implantar e monitorar seus modelos de ML. Você pode iniciar notebooks Studio rapidamente e discar para cima ou para baixo dinamicamente os recursos de computação subjacentes sem interromper seu trabalho.

Para marcar automaticamente esses recursos dinâmicos, você precisa atribuir marcas ao domínio do SageMaker e aos usuários do domínio que têm acesso provisionado a esses recursos. Você pode especificar essas tags no parâmetro tags de criar-domínio or criar-usuário-perfil durante a criação do perfil ou domínio, ou você pode adicioná-los posteriormente usando o adicionar tags API. O Studio copia e atribui automaticamente essas tags aos notebooks do Studio criados no domínio ou por usuários específicos. Você também pode adicionar tags aos domínios do SageMaker editando as configurações do domínio no Painel de controle do Studio.

Veja a seguir um exemplo de atribuição de tags ao perfil durante a criação.

aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist-full --tags Key=studiouserid,Value= --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_datascientist-full

Para marcar domínios e usuários existentes, use o add-tags API. As tags são então aplicadas a quaisquer novos blocos de anotações. Para que essas tags sejam aplicadas aos seus notebooks existentes, você precisa reiniciar o aplicativo Studio (Kernel Gateway e Jupyter Server) pertencente a esse perfil de usuário. Isso não causará nenhuma perda nos dados do notebook. Consulte este Desligar e atualizar o SageMaker Studio e os aplicativos do Studio para saber como excluir e reiniciar seus aplicativos do Studio.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Marcando instâncias de notebook do SageMaker

No caso de uma instância de notebook do SageMaker, a marcação é aplicada à própria instância. As tags são atribuídas a todos os recursos em execução na mesma instância. Você pode especificar tags programaticamente usando o parâmetro tags no criar-notebook-instance API ou adicione-os por meio do console do SageMaker durante a criação da instância. Você também pode adicionar ou atualizar tags a qualquer momento usando o adicionar tags API ou por meio do console do SageMaker.

Observe que isso exclui trabalhos e recursos gerenciados pelo SageMaker, como trabalhos de treinamento e processamento, porque eles estão no ambiente de serviço e não na instância. Na próxima seção, veremos como aplicar a marcação a esses recursos com mais detalhes.

Marcando trabalhos e recursos gerenciados pelo SageMaker

Para trabalhos e recursos gerenciados pelo SageMaker, a marcação deve ser aplicada ao tags atributo como parte de cada solicitação de API. Um SKLearnProcessor exemplo é ilustrado no código a seguir. Você pode encontrar mais exemplos de como atribuir tags a outros trabalhos e recursos gerenciados pelo SageMaker na página GitHub repo.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor

processing_tags = [{' Key':"cost-center','Value':'TF2WorkflowProcessing'}]
sklearn_processorl = SKLearnProcessor(framework_version='0.23-1' ,
									 role=get_execution_role(),
									 instance_type='ml.m5.xlarge',
									 instance_count=2,
									 tags=processing_tags)

Marcando pipelines do SageMaker

No caso de pipelines do SageMaker, você pode marcar todo o pipeline como um todo, em vez de cada etapa individual. O pipeline do SageMaker propaga automaticamente as tags para cada etapa do pipeline. Você ainda tem a opção de adicionar tags adicionais e separadas a etapas individuais, se necessário. Na IU do Studio, as tags de pipeline aparecem na seção de metadados.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Para aplicar tags a um pipeline, use o SageMaker Python SDK:

pipeline_tags = [ {'Key': 'pipeline-type', 'Value': 'TF2WorkflowPipeline'}]
pipeline.upsert(role_arn=role, tags=pipeline_tags)
execution = pipeline.start()

Impor marcação usando políticas do IAM

Embora a marcação seja um mecanismo eficaz para implementar estratégias de gerenciamento e governança de nuvem, impor o comportamento correto de marcação pode ser um desafio se você deixar isso para os usuários finais. Como você impede a criação de recursos de ML se uma tag específica estiver ausente, como você garante que as tags corretas sejam aplicadas e como você impede que os usuários excluam as tags existentes?

Você pode fazer isso usando Gerenciamento de acesso e identidade da AWS (IAM) políticas. O código a seguir é um exemplo de uma política que impede ações do SageMaker, como CreateDomain or CreateNotebookInstance se a solicitação não contiver a chave de ambiente e um dos valores da lista. o ForAllValues modificador com o aws:TagKeys chave de condição indica que apenas a chave environment é permitido na solicitação. Isso impede que os usuários incluam outras chaves, como usar acidentalmente Environment em vez de environment.

"sagemaker:CreateTrainingJob"
      ],
      "{
      "Sid": "SageMakerEnforceEnvtOnCreate",
      "Action": [
        "sagemaker:CreateDomain",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateNotebookInstance",
        Effect": "Allow",
      "Resource": "*",
  "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "dev","staging","production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
      }

Políticas de tags e políticas de controle de serviço (SCPs) também podem ser uma boa maneira de padronizar a criação e a rotulagem de seus recursos de ML. Para obter mais informações sobre como implementar uma estratégia de marcação que impõe e valida a marcação no nível da organização, consulte Série de blogs de alocação de custos nº 3: aplicar e validar tags de recursos da AWS.

Relatório de alocação de custos

Você pode visualizar as tags filtrando as visualizações no Explorador de custos, visualizando um relatório mensal de alocação de custos, ou examinando o CUR.

Visualizando tags no Explorador de custos

Explorador de custos é uma ferramenta que permite visualizar e analisar seus custos e uso. Você pode explorar seu uso e custos usando o gráfico principal: os relatórios de custos e uso do Explorador de Custos. Para um vídeo rápido sobre como usar o Explorador de custos, confira Como posso usar o Explorador de Custos para analisar meus gastos e uso?

Com o Cost Explorer, você pode filtrar como visualiza seus custos da AWS por tags. Agrupar por nos permite filtrar os resultados por chaves de tag, como Environment, Deploymentou Cost Center. O filtro de tags nos ajuda a selecionar o valor que desejamos, independentemente da chave. Exemplos incluem Production e Staging. Lembre-se de que você deve executar os recursos após adicionar e ativar as tags; caso contrário, o Explorador de custos não terá dados de uso e o valor da tag não será exibido como um filtro ou agrupar por opção.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

A captura de tela a seguir é um exemplo de filtragem por todos os valores da BusinessUnit tag.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Examinando tags no CUR

O Relatório de Custo e Uso contém o conjunto mais abrangente de dados de custo e uso disponível. O relatório contém itens de linha para cada combinação exclusiva de produto da AWS, tipo de uso e operação que sua conta da AWS usa. Você pode personalizar o CUR para agregar as informações por hora ou por dia. Um relatório mensal de alocação de custos é uma maneira de configurar o relatório de alocação de custos. Você pode configurar um relatório mensal de alocação de custos que lista o uso da AWS para sua conta por categoria de produto e usuário da conta vinculada. O relatório contém os mesmos itens de linha que o relatório de cobrança detalhado e colunas adicionais para suas chaves de tag. Você pode configurá-lo e baixar seu relatório seguindo as etapas em Relatório mensal de alocação de custos.

A captura de tela a seguir mostra como as chaves de tag definidas pelo usuário aparecem no CUR. As chaves de tag definidas pelo usuário têm o prefixo user, como user:Department e user:CostCenter. As chaves de tag geradas pela AWS têm o prefixo aws.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Visualize o CUR usando o Amazon Athena e o Amazon QuickSight

Amazona atena é um serviço de consulta interativa que facilita a análise de dados no Amazon S3 usando SQL padrão. O Athena não tem servidor, portanto, não há infraestrutura para gerenciar e você paga apenas pelas consultas executadas. Para integrar o Athena com CURs, consulte Consultar relatórios de custo e uso usando o Amazon Athena. Você pode então criar consultas personalizadas para consultar dados CUR usando SQL padrão. A captura de tela a seguir é um exemplo de uma consulta para filtrar todos os recursos que têm o valor TF2WorkflowTraining para o cost-center tag.

select * from {$table_name} where resource_tags_user_cost-center= 'TF2WorkflowTraining'

No exemplo a seguir, estamos tentando descobrir quais recursos estão com valores ausentes na cost-center tag.

SELECT
 bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT((line_item_usage_start_date), '%Y-%m-%d') AS day_line_item_usage_start_date, line_item_resource_id, line_item_usage_type, resource_tags_user_cost-center
FROM
{$table_name} 
WHERE
 resource_tags_user_cost-center IS NULL
AND line_item_product_code = 'AmazonSageMaker'

Mais informações e consultas de exemplo podem ser encontradas no Biblioteca de consultas do AWS CUR.

Você também pode alimentar dados CUR em AmazonQuickSight, onde você pode dividi-lo da maneira que desejar para fins de relatório ou visualização. Para obter instruções sobre como ingerir dados CUR no QuickSight, consulte Como faço para ingerir e visualizar o AWS Cost and Usage Report (CUR) no Amazon QuickSight.

Monitoramento de orçamento usando tags

O Orçamentos da AWS é uma excelente maneira de fornecer um aviso antecipado se os gastos aumentarem inesperadamente. Você pode criar orçamentos personalizados que alertam quando seus custos e uso de ML excedem (ou estão previstos para exceder) os limites definidos pelo usuário. Com os Orçamentos da AWS, você pode monitorar seus custos totais mensais de ML ou filtrar seus orçamentos para rastrear custos associados a dimensões de uso específicas. Por exemplo, você pode definir o escopo do orçamento para incluir os custos de recursos do SageMaker marcados como cost-center: ML-Marketing, conforme mostrado na captura de tela a seguir. Para dimensões adicionais e instruções detalhadas sobre como configurar orçamentos da AWS, consulte SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Com o alertas de orçamento, você pode enviar notificações quando seus limites de orçamento forem (ou estiverem prestes a ser) excedidos. Esses alertas também podem ser postados em um Serviço de notificação simples da Amazon (Amazon SNS). Um AWS Lambda A função que se inscreve no tópico do SNS é então chamada e qualquer ação implementável programaticamente pode ser executada.

O Orçamentos da AWS também permite configurar ações orçamentárias, que são etapas que você pode executar quando um limite de orçamento é excedido (valores reais ou previstos). Esse nível de controle permite reduzir gastos excessivos não intencionais em sua conta. Você pode configurar respostas específicas para custo e uso em sua conta que serão aplicadas automaticamente ou por meio de um processo de aprovação de fluxo de trabalho quando uma meta de orçamento for excedida. Essa é uma solução realmente poderosa para garantir que seus gastos com ML sejam consistentes com os objetivos do negócio. Você pode selecionar o tipo de ação a ser executada. Por exemplo, quando um limite de orçamento é ultrapassado, você pode mover usuários específicos do IAM de permissões de administrador para somente leitura. Para clientes que usam Organizações, você pode aplicar ações a uma unidade organizacional inteira movendo-as de administrador para somente leitura. Para obter mais detalhes sobre como gerenciar custos usando ações de orçamento, consulte Como gerenciar estouros de custo em seu ambiente de várias contas da AWS – Parte 1.

Você também pode configurar um relatório para monitorar o desempenho de seus orçamentos existentes em uma cadência diária, semanal ou mensal e entregar esse relatório para até 50 endereços de e-mail. Com Relatórios de orçamentos da AWS, você pode combinar todos os orçamentos relacionados ao SageMaker em um único relatório. Esse recurso permite rastrear sua pegada do SageMaker a partir de um único local, conforme mostrado na captura de tela a seguir. Você pode optar por receber esses relatórios em uma cadência diária, semanal ou mensal (eu escolhi Semanal para este exemplo) e escolha o dia da semana em que deseja recebê-los.

Esse recurso é útil para manter seus stakeholders atualizados com os custos e o uso do SageMaker e ajudá-los a ver quando os gastos não estão tendendo conforme o esperado.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Depois de configurar essa configuração, você deverá receber um e-mail semelhante ao seguinte.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Conclusão

Neste post, mostramos como você pode configurar a marcação de alocação de custos para o SageMaker e compartilhamos dicas sobre as práticas recomendadas de marcação para seu ambiente e cargas de trabalho do SageMaker. Em seguida, discutimos diferentes opções de relatórios, como o Explorador de custos e o CUR, para ajudar você a melhorar a visibilidade de seus gastos com ML. Por fim, demonstramos os orçamentos da AWS e o relatório de resumo do orçamento para ajudá-lo a monitorar os gastos de ML da sua organização.

Para obter mais informações sobre como aplicar e ativar tags de alocação de custos, consulte Tags de alocação de custos definidos pelo usuário.


Sobre os autores

Sean MorganSean Morgan é arquiteto de soluções de IA/ML na AWS. Ele tem experiência nas áreas de semicondutores e pesquisa acadêmica e usa sua experiência para ajudar os clientes a atingirem seus objetivos na AWS. Em seu tempo livre, Sean é um colaborador e mantenedor ativo de código aberto e é o líder do grupo de interesse especial dos complementos do TensorFlow.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Brent Rabowsky concentra-se em ciência de dados na AWS e alavanca sua experiência para ajudar os clientes da AWS com seus próprios projetos de ciência de dados.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Nilesh Shetty é Gerente Técnico Sênior de Contas na AWS, onde ajuda os clientes de suporte corporativo a otimizar suas operações de nuvem na AWS. Ele é apaixonado por aprendizado de máquina e tem experiência trabalhando como consultor, arquiteto e desenvolvedor. Fora do trabalho, ele gosta de ouvir música e assistir esportes.

Configure a alocação de custos em nível empresarial para ambientes e cargas de trabalho de ML usando marcação de recursos no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.James Wu é arquiteto de soluções especialista em IA/ML sênior na AWS. ajudando os clientes a projetar e criar soluções de IA/ML. O trabalho de James abrange uma ampla variedade de casos de uso de ML, com interesse principal em visão computacional, aprendizado profundo e dimensionamento de ML em toda a empresa. Antes de ingressar na AWS, James foi arquiteto, desenvolvedor e líder de tecnologia por mais de 10 anos, incluindo 6 anos em engenharia e 4 anos nos setores de marketing e publicidade.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS