Predicados do Neptune ML usados em consultas de inferência do Gremlin - 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á.

Predicados do Neptune ML usados em consultas de inferência do Gremlin

Neptune#ml.deterministic

Esse predicado é uma opção para consultas de inferência indutiva, ou seja, para consultas que incluem o predicado Neptune#ml.inductiveInference.

Ao usar a inferência indutiva, o mecanismo do Neptune cria o subgrafo apropriado para avaliar o modelo de GNN treinado, e os requisitos desse subgrafo dependem dos parâmetros do modelo final. Especificamente, o parâmetro num-layer determina o número de saltos transversais dos nós ou das bordas de destino, e o parâmetro fanouts especifica quantos vizinhos devem ser incluídos na amostra em cada salto (consulte os parâmetros do HPO).

Por padrão, as consultas de inferência indutiva são executadas no modo não determinístico, no qual o Neptune constrói a vizinhança aleatoriamente. Ao fazer previsões, essa amostragem normal de vizinhos aleatórios às vezes gera previsões diferentes.

Quando você inclui Neptune#ml.deterministic em uma consulta de inferência indutiva, o mecanismo do Neptune tenta realizar uma amostra de vizinhos de forma determinística para que várias invocações da mesma consulta retornem sempre os mesmos resultados. No entanto, não se pode garantir que os resultados sejam completamente determinísticos, pois as alterações no grafo e nos artefatos subjacentes dos sistemas distribuídos ainda podem introduzir flutuações.

Você inclui o predicado Neptune#ml.deterministic em uma consulta como esta:

.with("Neptune#ml.deterministic")

Se o predicado Neptune#ml.deterministic for incluído em uma consulta que também não inclua Neptune#ml.inductiveInference, ele será simplesmente ignorado.

Neptune#ml.disableInductiveInferenceMetadataCache

Esse predicado é uma opção para consultas de inferência indutiva, ou seja, para consultas que incluem o predicado Neptune#ml.inductiveInference.

Para consultas de inferência indutiva, o Neptune usa um arquivo de metadados armazenado no Amazon S3 para decidir o número de saltos e o fanout ao construir a vizinhança. O Neptune normalmente armazena em cache esses metadados do modelo para evitar a busca repetida do arquivo no Amazon S3. O armazenamento em cache pode ser desativado incluindo o predicado Neptune#ml.disableInductiveInferenceMetadataCache na consulta. Embora possa ser mais lento para o Neptune buscar os metadados diretamente no Amazon S3, é útil quando o endpoint do SageMaker foi atualizado após um novo treinamento ou transformação e o cache ficar obsoleto.

Você inclui o predicado Neptune#ml.disableInductiveInferenceMetadataCache em uma consulta como esta:

.with("Neptune#ml.disableInductiveInferenceMetadataCache")

Veja um exemplo de consulta em um caderno Jupyter:

%%gremlin g.with("Neptune#ml.endpoint", "ep1") .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole") .with("Neptune#ml.disableInductiveInferenceMetadataCache") .V('101').properties("rating") .with("Neptune#ml.regression") .with("Neptune#ml.inductiveInference")

Neptune#ml.endpoint

O predicado Neptune#ml.endpoint é usado em uma etapa with() para especificar o endpoint de inferência, se necessário:

.with("Neptune#ml.endpoint", "the model's SageMaker inference endpoint")

Você pode identificar o endpoint pelo id ou pelo URL. Por exemplo:

.with( "Neptune#ml.endpoint", "node-classification-movie-lens-endpoint" )

Ou:

.with( "Neptune#ml.endpoint", "https://runtime.sagemaker.us-east-1.amazonaws.com/endpoints/node-classification-movie-lens-endpoint/invocations" )
nota

Se você definir o parâmetro neptune_ml_endpoint no grupo de parâmetros do cluster de banco de dados do Neptune como o URL ou o id do endpoint, não precisará incluir o predicado Neptune#ml.endpoint em cada consulta.

Neptune#ml.iamRoleArn

Neptune#ml.iamRoleArn é usado em uma etapa with() para especificar o ARN do perfil do IAM de execução do SageMaker, se necessário:

.with("Neptune#ml.iamRoleArn", "the ARN for the SageMaker execution IAM role")

Para obter informações sobre como criar o perfil do IAM de execução do SageMaker, consulte Criar um perfil NeptuneSageMakerIAMRole personalizado.

nota

Se você definir o parâmetro neptune_ml_iam_role no grupo de parâmetros do cluster de banco de dados do Neptune como o ARN do perfil do IAM de execução do SageMaker, não precisará incluir o predicado Neptune#ml.iamRoleArn em cada consulta.

Neptune#ml.inductiveInference

A inferência transdutiva é habilitada por padrão no Gremlin. Para fazer uma consulta de inferência indutiva em tempo real, inclua o predicado Neptune#ml.inductiveInference desta forma:

.with("Neptune#ml.inductiveInference")

Se seu grafo for dinâmico, a inferência indutiva geralmente será a melhor escolha, mas se seu grafo for estático, a inferência transdutiva será mais rápida e eficiente.

Neptune#ml.limit

Opcionalmente, o predicado Neptune#ml.limit limita o número de resultados gerados por entidade:

.with( "Neptune#ml.limit", 2 )

Por padrão, o limite é 1 e o número máximo que pode ser definido é 100.

Neptune#ml.threshold

Opcionalmente, o predicado Neptune#ml.threshold estabelece um limite de corte para as pontuações dos resultados:

.with( "Neptune#ml.threshold", 0.5D )

Isso permite que você descarte todos os resultados com pontuações abaixo do limite especificado.

Neptune#ml.classification

O predicado Neptune#ml.classification é anexado à etapa properties() para estabelecer que as propriedades precisam ser obtidas do endpoint do SageMaker do modelo de classificação de nós:

.properties( "property key of the node classification model" ).with( "Neptune#ml.classification" )

Neptune#ml.regression

O predicado Neptune#ml.regression é anexado à etapa properties() para estabelecer que as propriedades precisam ser obtidas do endpoint do SageMaker do modelo de regressão de nós:

.properties( "property key of the node regression model" ).with( "Neptune#ml.regression" )

Neptune#ml.prediction

O predicado Neptune#ml.prediction é anexado às etapas in() e out() para estabelecer que se trata de uma consulta de previsão de links:

.in("edge label of the link prediction model").with("Neptune#ml.prediction").hasLabel("target node label")

Neptune#ml.score

O predicado Neptune#ml.score é usado em consultas de classificação de nós ou bordas do Gremlin para obter uma pontuação de confiança de machine learning. O predicado Neptune#ml.score deve ser transmitido junto com o predicado da consulta na etapa properties() para obter uma pontuação de confiança de ML para consultas de classificação de nós ou bordas.

É possível encontrar um exemplo de classificação de nós com outros exemplos de classificação de nós e um exemplo de classificação de bordas na seção de classificação de bordas.