Visão geral de como usar o atributo Neptune ML - Amazon Neptune

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á.

Visão geral de como usar o atributo Neptune ML

Iniciar o fluxo de trabalho para usar o Neptune ML

O uso do atributo Neptune ML no Amazon Neptune geralmente envolve estas cinco etapas para começar:

Diagrama do fluxo de trabalho do Neptune ML
  1. Exportação e configuração de dados: a etapa de exportação de dados usa o serviço Neptune-Export ou a ferramenta de linha de comando neptune-export para exportar dados do Neptune para o Amazon Simple Storage Service (Amazon S3) em formato CSV. Um arquivo de configuração chamado training-data-configuration.json é gerado automaticamente ao mesmo tempo, o que especifica como os dados exportados podem ser carregados em um grafo treinável.

  2. Pré-processamento de dados: nessa etapa, o conjunto de dados exportado é pré-processado usando técnicas padrão para prepará-lo para o treinamento de modelos. A normalização de atributos pode ser realizada para dados numéricos e os atributos de texto podem ser codificados usando word2vec. No final dessa etapa, um grafo DGL (biblioteca Deep Graph) é gerado a partir do conjunto de dados exportado para uso na etapa de treinamento de modelos.

    Essa etapa é implementada usando um trabalho de processamento do SageMaker na conta, e os dados resultantes são armazenados em um local do Amazon S3 especificado.

  3. Treinamento de modelos: a etapa de treinamento de modelos treina o modelo de machine learning que será usado para previsões.

    O treinamento de modelos é realizado em duas etapas:

    • A primeira etapa usa um trabalho de processamento do SageMaker para gerar um conjunto de configurações da estratégia de treinamento de modelos que especifique o tipo de modelo e intervalos de hiperparâmetros que serão usados para o treinamento de modelos.

    • Depois, a segunda fase usa um trabalho de ajuste de modelos do SageMaker para testar diferentes configurações de hiperparâmetros e selecionar o trabalho de treinamento que produziu o modelo com melhor desempenho. O trabalho de ajuste executa um número pré-especificado de testes de trabalho de treinamento de modelos nos dados processados. No final dessa etapa, os parâmetros do modelo treinado do melhor trabalho de treinamento são usados para gerar artefatos de modelo para inferência.

  4. Criação de um endpoint de inferência no Amazon SageMaker: o endpoint de inferência é uma instância de endpoint do SageMaker que é lançada com os artefatos do modelo produzidos pelo melhor trabalho de treinamento. Cada modelo é vinculado a um único endpoint. O endpoint pode aceitar solicitações recebidas do banco de dados de grafos e exibir as previsões do modelo para entradas nas solicitações. Depois de criar o endpoint, ele permanece ativo até que você o exclua.

  5. Consulta ao modelo de machine learning usando o Gremlin: é possível usar extensões à linguagem de consulta Gremlin para consultar previsões por meio do endpoint de inferência.

nota

A bancada de trabalho do Neptune contém uma magia de linha e uma magia de célula que podem proporcionar uma grande economia de tempo no gerenciamento dessas etapas, ou seja:

Fazendo previsões com base na evolução dos dados de grafos.

Com um grafo em constante mudança, convém criar previsões em lote periodicamente usando dados novos. Consultar previsões pré-calculadas (inferência transdutiva) pode ser significativamente mais rápido do que gerar novas previsões em tempo real com base nos dados mais recentes (inferência indutiva). As duas abordagens têm sua utilidade, dependendo da rapidez com que os dados mudam e dos requisitos de desempenho.

A diferença entre inferência indutiva e transdutiva

Ao realizar inferência transdutiva, o Neptune pesquisa e exibe previsões que foram pré-calculadas no momento do treinamento.

Ao realizar inferência indutiva, o Neptune cria o subgrafo relevante e busca as respectivas propriedades. O modelo DGL GNN então aplica o processamento de dados e a avaliação do modelo em tempo real.

Portanto, a inferência indutiva pode gerar previsões envolvendo nós e bordas que não estavam presentes no momento do treinamento e que refletem o estado atual do grafo. No entanto, isso ocorre à custa de uma maior latência.

Se o grafo for dinâmico, será conveniente usar a inferência indutiva para levar em conta os dados mais recentes, mas se o grafo for estático, a inferência transdutiva será mais rápida e eficiente.

A inferência indutiva é desabilitada por padrão. É possível habilitá-la para uma consulta usando o predicado Neptune#ml.inductiveInference do Gremlin na consulta da seguinte forma:

.with( "Neptune#ml.inductiveInference")

Fluxos transdutivos incrementais

Embora você atualize os artefatos do modelo simplesmente executando novamente as etapas de um a três (da Exportação e configuração de dados à Transformação de modelos), o Neptune ML aceita maneiras mais simples de atualizar as previsões de ML em lote usando novos dados. Uma delas é usar um fluxo de trabalho de modelo incremental e outra é usar o novo treinamento de modelos com uma inicialização a quente.

Fluxo de trabalho de modelo incremental

Nesse fluxo de trabalho, você atualiza as previsões de ML sem treinar o modelo de ML novamente.

nota

Você só poderá fazer isso quando os dados do grafo tiverem sido atualizados com novos nós e/ou bordas. No momento, ele não funcionará quando os nós forem removidos.

  1. Exportação e configuração de dados: essa etapa é a mesma do fluxo de trabalho principal.

  2. Pré-processamento incremental de dados: essa etapa é semelhante à etapa de pré-processamento de dados no fluxo de trabalho principal, mas usa a mesma configuração de processamento usada anteriormente, que corresponde a um modelo treinado específico.

  3. Transformação de modelos: em vez de uma etapa de treinamento do modelo, essa etapa de transformação de modelos retira o modelo treinado do fluxo de trabalho principal e dos resultados da etapa de pré-processamento incremental de dados e gera novos artefatos do modelo para uso na inferência. A etapa de transformação de modelos inicia um trabalho de processamento do SageMaker para realizar o cálculo que gera os artefatos atualizados do modelo.

  4. Atualização do endpoint de inferência do Amazon SageMaker: opcionalmente, se você tiver um endpoint de inferência existente, essa etapa atualizará o endpoint com os novos artefatos do modelo gerados pela etapa de transformação de modelos. Como alternativa, você também pode criar um endpoint de inferência com os novos artefatos do modelo.

Novo treinamento de modelos com uma inicialização a quente

Usando esse fluxo de trabalho, é possível treinar e implantar um novo modelo de ML para fazer previsões usando os dados de grafos incrementais, mas comece com um modelo existente gerado usando o fluxo de trabalho principal:

  1. Exportação e configuração de dados: essa etapa é a mesma do fluxo de trabalho principal.

  2. Pré-processamento incremental de dados: essa etapa é a mesma do fluxo de trabalho de inferência de modelo incremental. Os novos dados de grafos devem ser processados com o mesmo método de processamento usado anteriormente para o treinamento de modelos.

  3. Treinamento de modelos com inicialização a quente: o treinamento de modelos é semelhante ao que acontece no fluxo de trabalho principal, mas é possível acelerar a pesquisa de hiperparâmetros do modelo aproveitando as informações da tarefa anterior de treinamento do modelo.

  4. Atualização do endpoint de inferência do Amazon SageMaker: essa etapa é a mesma do fluxo de trabalho de inferência de modelos incrementais.

Fluxos de trabalho para modelos personalizados no Neptune ML

O Neptune ML permite implementar, treinar e implantar os próprios modelos personalizados para qualquer uma das tarefas compatíveis com o Neptune ML. O fluxo de trabalho para desenvolver e implantar um modelo personalizado é essencialmente o mesmo dos modelos integrados, com algumas diferenças, conforme explicado em Fluxo de trabalho de modelos personalizados.