Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2

Esta é a segunda parte de uma série que mostra o ciclo de vida do aprendizado de máquina (ML) com um padrão de design de malha de dados para uma grande empresa com várias linhas de negócios (LOBs) e um Centro de Excelência (CoE) para análise e ML.

In parte 1, abordamos a persona do administrador de dados e apresentamos uma configuração de malha de dados com várias contas de consumidor e produtor de dados da AWS. Para obter uma visão geral do contexto de negócios e as etapas para configurar uma malha de dados com Formação AWS Lake e registre um produto de dados, consulte a parte 1.

Neste post, abordamos a equipe de análise e plataforma de ML como consumidor na malha de dados. A equipe da plataforma configura o ambiente de ML para os cientistas de dados e os ajuda a obter acesso aos produtos de dados necessários na malha de dados. Os cientistas de dados desta equipe usam Amazon Sage Maker construir e treinar um modelo de previsão de risco de crédito usando o produto de dados de risco de crédito compartilhado do LoB de banco de consumo.

O código para este exemplo está disponível em GitHub.

Consumidor de análise e ML em uma arquitetura de malha de dados

Vamos recapitular a arquitetura de alto nível que destaca os principais componentes da arquitetura de malha de dados.

No bloco produtor de dados 1 (esquerda), há um estágio de processamento de dados para garantir que os dados compartilhados sejam bem qualificados e curados. O bloco de governança de dados central 2 (centro) atua como um catálogo de dados centralizado com metadados de vários produtos de dados registrados. O bloco consumidor de dados 3 (à direita) solicita acesso aos conjuntos de dados do catálogo central e consulta e processa os dados para criar e treinar modelos de ML.

Com o SageMaker, cientistas de dados e desenvolvedores no ML CoE podem criar e treinar modelos de ML de maneira rápida e fácil e, em seguida, implantá-los diretamente em um ambiente hospedado pronto para produção. O SageMaker fornece acesso fácil às suas fontes de dados para exploração e análise, e também fornece algoritmos e estruturas de ML comuns que são otimizados para serem executados com eficiência em dados extremamente grandes em um ambiente distribuído. É fácil começar Estúdio Amazon SageMaker, um ambiente de desenvolvimento integrado (IDE) baseado na Web, completando o domínio SageMaker processo de integração. Para obter mais informações, consulte o Guia do desenvolvedor Amazon SageMaker.

Consumo de produtos de dados pela análise e ML CoE

O diagrama de arquitetura a seguir descreve as etapas exigidas pelo consumidor de análise e ML CoE para obter acesso ao produto de dados registrado no catálogo de dados central e processar os dados para criar e treinar um modelo de ML.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O fluxo de trabalho consiste nos seguintes componentes:

  1. O administrador de dados do produtor fornece acesso na conta central ao banco de dados e tabela à conta do consumidor. O banco de dados agora é refletido como um banco de dados compartilhado na conta do consumidor.
  2. O administrador do consumidor cria um link de recurso na conta do consumidor para o banco de dados compartilhado pela conta central. A captura de tela a seguir mostra um exemplo na conta do consumidor, com rl_credit-card sendo o link de recurso do credit-card base de dados.
    Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
    Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  3. O administrador do consumidor fornece o Studio Gerenciamento de acesso e identidade da AWS (IAM) acesso da função de execução ao banco de dados vinculado ao recurso e à tabela identificada na marca Lake Formation. No exemplo a seguir, o administrador do consumidor fornecido à função de execução do SageMaker tem permissão para acessar rl_credit-card e a tabela que satisfaz a expressão da marca Lake Formation.
    Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  4. Uma vez atribuída uma função de execução, os cientistas de dados no SageMaker podem usar Amazona atena para consultar a tabela por meio do banco de dados de links de recursos no Lake Formation.
    1. Para exploração de dados, eles podem usar notebooks Studio para processar os dados com consultas interativas via Athena.
    2. Para processamento de dados e engenharia de recursos, eles podem executar trabalhos de processamento do SageMaker com uma fonte de dados Athena e enviar os resultados de volta para Serviço de armazenamento simples da Amazon (Amazônia S3).
    3. Depois que os dados são processados ​​e disponibilizados no Amazon S3 na conta ML CoE, os cientistas de dados podem usar os trabalhos de treinamento do SageMaker para treinar modelos e Pipelines SageMaker para automatizar fluxos de trabalho de construção de modelos.
    4. Os cientistas de dados também podem usar o registro de modelos do SageMaker para registrar os modelos.

Exploração de dados

O diagrama a seguir ilustra o fluxo de trabalho de exploração de dados na conta do consumidor de dados.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O consumidor começa consultando uma amostra dos dados do credit_risk mesa com Athena em um notebook Studio. Ao consultar dados por meio do Athena, os resultados intermediários também são salvos no Amazon S3. Você pode usar o Biblioteca do AWS Data Wrangler para executar uma consulta no Athena em um notebook Studio para exploração de dados. O exemplo de código a seguir mostra como consultar Athena para buscar os resultados como um dataframe para exploração de dados:

df= wr.athena.read_sql_query('SELECT * FROM credit_card LIMIT 10;', database="rl_credit-card", ctas_approach=False)

Agora que você tem um subconjunto dos dados como um dataframe, pode começar a explorar os dados e ver quais atualizações de engenharia de recursos são necessárias para o treinamento do modelo. Um exemplo de exploração de dados é mostrado na captura de tela a seguir.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Ao consultar o banco de dados, você pode ver os logs de acesso do console do Lake Formation, conforme mostrado na captura de tela a seguir. Esses logs fornecem informações sobre quem ou qual serviço usou o Lake Formation, incluindo a função do IAM e o horário de acesso. A captura de tela mostra um log sobre o SageMaker acessando a tabela credit_risk no AWS Glue por meio do Athena. No log, você pode ver o contexto de auditoria adicional que contém a ID da consulta que corresponde à ID da consulta no Athena.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

A captura de tela a seguir mostra a ID de execução da consulta do Athena que corresponde à ID da consulta do log anterior. Isso mostra os dados acessados ​​com a consulta SQL. Você pode ver quais dados foram consultados navegando até o console do Athena, escolhendo o Consultas recentes guia e, em seguida, procurando a ID de execução que corresponde à ID de consulta do contexto de auditoria adicional.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Processamento de dados

Após a exploração de dados, convém pré-processar todo o grande conjunto de dados para engenharia de recursos antes de treinar um modelo. O diagrama a seguir ilustra o procedimento de processamento de dados.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Neste exemplo, usamos um trabalho de processamento do SageMaker, no qual definimos uma definição de conjunto de dados do Athena. O trabalho de processamento consulta os dados por meio do Athena e usa um script para dividir os dados em conjuntos de dados de treinamento, teste e validação. Os resultados do trabalho de processamento são salvos no Amazon S3. Para saber como configurar um trabalho de processamento com o Athena, consulte Use o Amazon Athena em um trabalho de processamento com o Amazon SageMaker.

Neste exemplo, você pode usar o SDK do Python para acionar um trabalho de processamento com a estrutura Scikit-learn. Antes de acionar, você pode configurar o parâmetro de entrada para obter os dados de entrada por meio da definição do conjunto de dados do Athena, conforme mostrado no código a seguir. O conjunto de dados contém o local para baixar os resultados do Athena para o contêiner de processamento e a configuração da consulta SQL. Quando o trabalho de processamento é concluído, os resultados são salvos no Amazon S3.

AthenaDataset = AthenaDatasetDefinition (
  catalog = 'AwsDataCatalog', 
  database = 'rl_credit-card', 
  query_string = 'SELECT * FROM "rl_credit-card"."credit_card""',                                
  output_s3_uri = 's3://sagemaker-us-east-1-********7363/athenaqueries/', 
  work_group = 'primary', 
  output_format = 'PARQUET')

dataSet = DatasetDefinition(
  athena_dataset_definition = AthenaDataset, 
  local_path='/opt/ml/processing/input/dataset.parquet')


sklearn_processor.run(
    code="processing/preprocessor.py",
    inputs=[ProcessingInput(
      input_name="dataset", 
      destination="/opt/ml/processing/input", 
      dataset_definition=dataSet)],
    outputs=[
        ProcessingOutput(
            output_name="train_data", source="/opt/ml/processing/train", destination=train_data_path
        ),
        ProcessingOutput(
            output_name="val_data", source="/opt/ml/processing/val", destination=val_data_path
        ),
        ProcessingOutput(
            output_name="model", source="/opt/ml/processing/model", destination=model_path
        ),
        ProcessingOutput(
            output_name="test_data", source="/opt/ml/processing/test", destination=test_data_path
        ),
    ],
    arguments=["--train-test-split-ratio", "0.2"],
    logs=False,
)

Treinamento de modelo e registro de modelo

Depois de pré-processar os dados, você pode treinar o modelo com os dados pré-processados ​​salvos no Amazon S3. O diagrama a seguir ilustra o processo de treinamento e registro do modelo.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Para trabalhos de exploração de dados e processamento do SageMaker, você pode recuperar os dados na malha de dados por meio do Athena. Embora a API de treinamento do SageMaker não inclua um parâmetro para configurar uma fonte de dados do Athena, você pode consultar dados por meio do Athena no próprio script de treinamento.

Neste exemplo, os dados pré-processados ​​agora estão disponíveis no Amazon S3 e podem ser usados ​​diretamente para treinar um modelo XGBoost com o SageMaker Script Mode. Você pode fornecer o script, hiperparâmetros, tipo de instância e todos os parâmetros adicionais necessários para treinar o modelo com êxito. Você pode acionar o estimador do SageMaker com os dados de treinamento e validação no Amazon S3. Quando o treinamento do modelo estiver concluído, você poderá registrá-lo no registro de modelos do SageMaker para acompanhamento e implantação de experimentos em uma conta de produção.

estimator = XGBoost(
    entry_point=entry_point,
    source_dir=source_dir,
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="0.90-2",
    py_version="py3",
    role=role,
)

inputs = {"train": train_input_data, "validation": val_input_data}

estimator.fit(inputs, job_name=job_name)

Próximos passos

Você pode fazer atualizações incrementais na solução para atender aos requisitos de atualizações de dados e retreinamento de modelos, exclusão automática de dados intermediários no Amazon S3 e integração de um repositório de recursos. Discutimos cada um deles com mais detalhes nas seções a seguir.

Atualizações de dados e gatilhos de retreinamento de modelo

O diagrama a seguir ilustra o processo para atualizar os dados de treinamento e acionar o retreinamento do modelo.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O processo inclui as seguintes etapas:

  1. O produtor de dados atualiza o produto de dados com um novo esquema ou dados adicionais com frequência regular.
  2. Depois que o produto de dados é registrado novamente no catálogo de dados central, isso gera um Amazon CloudWatch evento da Formação do Lago.
  3. O evento do CloudWatch aciona um AWS Lambda função para sincronizar o produto de dados atualizado com a conta do consumidor. Você pode usar esse gatilho para refletir as alterações de dados fazendo o seguinte:
    1. Execute novamente o rastreador do AWS Glue.
    2. Acione o retreinamento do modelo se os dados ultrapassarem um determinado limite.

Para obter mais detalhes sobre como configurar um pipeline de implantação de MLOps do SageMaker para detecção de desvio, consulte o Detecção de desvio do Amazon SageMaker Repo do GitHub.

Exclusão automática de dados intermediários no Amazon S3

Você pode excluir automaticamente dados intermediários gerados por consultas do Athena e armazenados no Amazon S3 na conta do consumidor em intervalos regulares com regras de ciclo de vida de objetos do S3. Para obter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento.

Integração do SageMaker Feature Store

Loja de artigos SageMaker é desenvolvido especificamente para ML e pode armazenar, descobrir e compartilhar recursos selecionados usados ​​em fluxos de trabalho de treinamento e previsão. Um repositório de recursos pode funcionar como uma interface centralizada entre diferentes equipes de produtores de dados e LoBs, permitindo a descoberta e a reutilização de recursos para vários consumidores. O repositório de recursos pode atuar como uma alternativa ao catálogo de dados central na arquitetura de malha de dados descrita anteriormente. Para obter mais informações sobre padrões de arquitetura entre contas, consulte Habilite a reutilização de recursos entre contas e equipes usando Amazon SageMaker Feature Store.

Conclusão

Nesta série de duas partes, mostramos como você pode criar e treinar modelos de ML com uma arquitetura de malha de dados de várias contas na AWS. Descrevemos os requisitos de uma organização de serviços financeiros típica com vários LoBs e um ML CoE e ilustramos a arquitetura da solução com o Lake Formation e o SageMaker. Usamos o exemplo de um produto de dados de risco de crédito registrado no Lake Formation pelo LoB de banco de consumo e acessado pela equipe de ML CoE para treinar um modelo de ML de risco de crédito com o SageMaker.

Cada conta de produtor de dados define produtos de dados que são selecionados por pessoas que entendem os dados e seu controle de acesso, uso e limitações. Os produtos de dados e os domínios de aplicativos que os consomem são interconectados para formar a malha de dados. A arquitetura de malha de dados permite que as equipes de ML descubram e acessem esses produtos de dados selecionados.

O Lake Formation permite o acesso entre contas aos metadados do Data Catalog e dados subjacentes. Você pode usar o Lake Formation para criar uma arquitetura de malha de dados de várias contas. O SageMaker fornece uma plataforma de ML com os principais recursos de gerenciamento de dados, experimentação de ciência de dados, treinamento de modelos, hospedagem de modelos, automação de fluxo de trabalho e pipelines de CI/CD para produção. Você pode configurar um ou mais ambientes de análise e ML CoE para criar e treinar modelos com produtos de dados registrados em várias contas em uma malha de dados.

Experimente o Formação da Nuvem AWS modelos e código do exemplo repositório para começar.


Sobre os autores

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Karim Hammouda é um arquiteto especialista em soluções de análise na AWS com paixão por integração de dados, análise de dados e BI. Ele trabalha com clientes da AWS para projetar e criar soluções de análise que contribuam para o crescimento de seus negócios. Em seu tempo livre, gosta de assistir a documentários na TV e jogar videogame com o filho.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Hasan Poonawala é arquiteto de soluções especialista em IA/ML sênior na AWS, Hasan ajuda os clientes a projetar e implantar aplicativos de aprendizado de máquina em produção na AWS. Ele tem mais de 12 anos de experiência de trabalho como cientista de dados, praticante de aprendizado de máquina e desenvolvedor de software. Em seu tempo livre, Hasan adora explorar a natureza e passar tempo com amigos e familiares.

Crie e treine modelos de ML usando uma arquitetura de malha de dados na AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Benoit de Patoul é arquiteto de soluções especialista em IA/ML na AWS. Ele ajuda os clientes fornecendo orientação e assistência técnica para criar soluções relacionadas a IA/ML usando a AWS. Em seu tempo livre, ele gosta de tocar piano e passar o tempo com os amigos.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS