Tutorial: Como criar modelos de inferência remota
O tutorial a seguir aborda as etapas de como criar um modelo Random Cut Forest previamente treinado e implantado no Amazon SageMaker AI, fora do Amazon Redshift. O algoritmo Random Cut Forest detecta pontos de dados anômalos em um conjunto de dados. Criar um modelo com inferência remota permite que você traga o modelo Random Cut Forest do SageMaker AI para o Amazon Redshift. Em seguida, no Amazon Redshift, você usa SQL para executar previsões em um endpoint remoto do SageMaker AI.
Você pode usar um comando CREATE MODEL para importar um modelo de machine learning de um endpoint do Amazon SageMaker AI e preparar uma função de previsão do Amazon Redshift. Ao usar a operação CREATE MODEL, você fornece o nome do endpoint do modelo de machine learning do SageMaker AI.
Neste tutorial, você cria um modelo de machine learning do Amazon Redshift usando um endpoint de modelo do SageMaker AI. Quando seu modelo de machine learning estiver pronto, você poderá usá-lo para realizar previsões no Amazon Redshift. Primeiro, você treina e cria um endpoint no Amazon SageMaker AI e, em seguida, obtém o nome do endpoint. Depois, você usa o comando CREATE MODEL para criar um modelo com o Amazon Redshift ML. Finalmente, você executa previsões no modelo usando a função de previsão que o comando CREATE MODEL gera.
Exemplos de casos de uso
Você pode usar modelos Random Cut Forest e inferência remota para detecção de anomalias em outros conjuntos de dados, como prever um rápido aumento ou diminuição nas transações de comércio eletrônico. Você também pode prever mudanças significativas no clima ou na atividade sísmica.
Tarefas
-
Pré-requisitos
-
Etapa 1: implantar o modelo do Amazon SageMaker AI
-
Etapa 2: obter o endpoint do modelo do SageMaker AI
-
Etapa 3: carregar dados do Amazon S3 para o Amazon Redshift
-
Etapa 4: criar um modelo com o Amazon Redshift ML
-
Etapa 5: executar previsões com o modelo
Pré-requisitos
Para concluir as etapas neste tutorial, você precisa atender aos seguintes pré-requisitos:
-
Ter concluído a configuração administrativa do Amazon Redshift ML.
-
Ter baixado o conjunto de dados NYC taxi
(Táxi na cidade de Nova York), criado um bucket do Amazon S3 e carregado os dados no bucket do Amazon S3. -
Você deve treinar, implantar o modelo e o endpoint do SageMaker AI e obter o nome do endpoint do SageMaker AI. Use este modelo do AWS CloudFormation
para provisionar automaticamente todos os recursos do SageMaker AI na conta da AWS.
Etapa 1: implantar o modelo do Amazon SageMaker AI
-
Para implantar o modelo, acesse o console do Amazon SageMaker AI e escolha Instâncias de caderno em Caderno no painel de navegação.
-
Escolha Open Jupyter (Abrir o Jupyter) para o caderno Jupyter que foi criado pelo modelo do CloudFormation.
-
Selecione
bring-your-own-model-remote-inference.ipynb
. -
Configure os parâmetros para armazenar a entrada e a saída do treinamento no Amazon S3 substituindo as linhas a seguir pelo bucket e prefixo do Amazon S3.
data_location=f"s3://
{bucket}/{prefix}/
", output_path=f"s3://{bucket}/{prefix}/
output", -
Escolha o botão fast-forward (avanço rápido) para executar todas as células.
Etapa 2: obter o endpoint do modelo do SageMaker AI
No console do Amazon SageMaker AI, em Inferência no painel de navegação, escolha Endpoints e encontre o nome do modelo. Você deve copiar o nome do endpoint do modelo ao criar o modelo de inferência remota no Amazon Redshift.
Etapa 3: carregar dados do Amazon S3 para o Amazon Redshift
Use o editor de consultas v2 do Amazon Redshift para executar os comandos SQL a seguir no Amazon Redshift. Esses comandos descartam a tabela rcf_taxi_data
, se ela existir, criam uma tabela com o mesmo nome e carregam o conjunto de dados de exemplo na tabela.
DROP TABLE IF EXISTS public.rcf_taxi_data CASCADE; CREATE TABLE public.rcf_taxi_data (ride_timestamp timestamp, nbr_passengers int); COPY public.rcf_taxi_data FROM 's3://sagemaker-sample-files/datasets/tabular/anomaly_benchmark_taxi/NAB_nyc_taxi.csv' IAM_ROLE default IGNOREHEADER 1 FORMAT AS CSV;
Etapa 4: criar um modelo com o Amazon Redshift ML
Execute a consulta a seguir para criar um modelo no Amazon Redshift ML usando o endpoint do modelo SageMaker AI que você obteve na etapa anterior. Substitua
pelo nome do próprio endpoint do SageMaker AI.randomcutforest-xxxxxxxxx
CREATE MODEL public.remote_random_cut_forest FUNCTION remote_fn_rcf(int) RETURNS decimal(10, 6) SAGEMAKER '
<randomcutforest-xxxxxxxxx>
' IAM_ROLE default;
Conferir o status do modelo (opcional)
Você pode usar o comando SHOW MODEL para saber quando o modelo está pronto.
Para verificar o status do modelo, use a operação SHOW MODEL a seguir.
SHOW MODEL public.remote_random_cut_forest
A saída mostra o endpoint e o nome da função do SageMaker AI.
+--------------------------+-----------------------------------------+ | Model Name | remote_random_cut_forest | +--------------------------+-----------------------------------------+ | Schema Name | public | | Owner | awsuser | | Creation Time | Wed, 15.06.2022 17:58:21 | | Model State | READY | | | | | PARAMETERS: | | | Endpoint |
<randomcutforest-xxxxxxxxx>
| | Function Name | remote_fn_rcf | | Inference Type | Remote | | Function Parameter Types | int4 | | IAM Role | default-aws-iam-role | +--------------------------+-----------------------------------------+
Etapa 5: executar previsões com o modelo
O algoritmo Random Cut Forest do Amazon SageMaker AI foi projetado para detectar pontos de dados anômalos dentro de um conjunto de dados. Neste exemplo, seu modelo foi projetado para detectar picos em corridas de táxi devido a eventos importantes. Você pode usar o modelo para prever eventos anômalos gerando uma pontuação de anomalia para cada ponto de dados.
Use a consulta a seguir para calcular pontuações de anomalia em todo o conjunto de dados de táxi. Observe que você faz referência à função usada na instrução CREATE MODEL na etapa anterior.
SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data;
Consultar se há anomalias altas e baixas (opcional)
Execute a consulta a seguir para encontrar quaisquer pontos de dados com pontuações acima de três desvios padrão da pontuação média.
WITH score_cutoff AS ( SELECT STDDEV(public.remote_fn_rcf(nbr_passengers)) AS std, AVG(public.remote_fn_rcf(nbr_passengers)) AS mean, (mean + 3 * std) AS score_cutoff_value FROM public.rcf_taxi_data ) SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data WHERE score > ( SELECT score_cutoff_value FROM score_cutoff ) ORDER BY 2 DESC;
Execute a consulta a seguir para encontrar quaisquer pontos de dados com pontuações acima de três desvios padrão da pontuação média.
WITH score_cutoff AS ( SELECT STDDEV(public.remote_fn_rcf(nbr_passengers)) AS std, AVG(public.remote_fn_rcf(nbr_passengers)) AS mean, (mean - 3 * std) AS score_cutoff_value FROM public.rcf_taxi_data ) SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data WHERE score < ( SELECT score_cutoff_value FROM score_cutoff ) ORDER BY 2 DESC;
Tópicos relacionados
Para obter mais informações sobre o Amazon Redshift ML, consulte a seguinte documentação:
Para obter mais informações sobre machine learning, consulte a seguinte documentação:
-
What Is Fairness and Model Explainability for Machine Learning Predictions? (O que é equidade e explicabilidade de modelo para previsões de machine learning?)