Predicados de Neptune ML utilizados en las consultas de inferencia de Gremlin - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Predicados de Neptune ML utilizados en las consultas de inferencia de Gremlin

Neptune#ml.deterministic

Este predicado es una opción para las consultas de inferencia inductiva, es decir, para las consultas que incluyen el predicado Neptune#ml.inductiveInference.

Cuando se utiliza la inferencia inductiva, el motor de Neptune crea el subgráfico adecuado para evaluar el modelo GNN entrenado, y los requisitos de este subgráfico dependen de los parámetros del modelo final. En concreto, el parámetro num-layer determina el número de saltos de recorridos desde los nodos o bordes de destino, y el parámetro fanouts especifica el número de vecinos que hay que muestrear en cada salto (consulte Parámetros de HPO).

De forma predeterminada, las consultas de inferencia inductiva se ejecutan en modo no determinista, en el que Neptune crea la vecindad de forma aleatoria. Al realizar predicciones, este muestreo normal de vecinos aleatorios a veces da como resultado predicciones diferentes.

Cuando se incluye Neptune#ml.deterministic en una consulta de inferencia inductiva, el motor de Neptune intenta muestrear los vecinos de forma determinista para que las diversas invocaciones de la misma consulta devuelvan siempre los mismos resultados. Sin embargo, no se puede garantizar que los resultados sean completamente deterministas, ya que los cambios en el gráfico subyacente y los artefactos de los sistemas distribuidos aún pueden provocar fluctuaciones.

El predicado Neptune#ml.deterministic se incluye en una consulta de la siguiente manera:

.with("Neptune#ml.deterministic")

Si el predicado Neptune#ml.deterministic se incluye en una consulta que no incluye también Neptune#ml.inductiveInference, simplemente se ignora.

Neptune#ml.disableInductiveInferenceMetadataCache

Este predicado es una opción para las consultas de inferencia inductiva, es decir, para las consultas que incluyen el predicado Neptune#ml.inductiveInference.

Para las consultas de inferencia inductiva, Neptune utiliza un archivo de metadatos almacenado en Amazon S3 para decidir el número de saltos y la distribución ramificada al crear el vecindario. Neptune normalmente almacena en caché los metadatos de este modelo para evitar tener que recuperar una y otra vez el archivo de Amazon S3. El almacenamiento en caché se puede deshabilitar si se incluye el predicado Neptune#ml.disableInductiveInferenceMetadataCache en la consulta. Aunque Neptune puede tardar más en recuperar los metadatos directamente de Amazon S3, resulta útil cuando el punto de conexión de SageMaker se ha actualizado tras volver a entrenarse o transformarse y la caché está obsoleta.

El predicado Neptune#ml.disableInductiveInferenceMetadataCache se incluye en una consulta de la siguiente manera:

.with("Neptune#ml.disableInductiveInferenceMetadataCache")

A continuación, se muestra cómo podría ser una consulta en un cuaderno de 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

El predicado Neptune#ml.endpoint se utiliza en un paso with() para especificar el punto de conexión de inferencia, si es necesario:

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

Puede identificar el punto de conexión tanto por su id o como por su URL. Por ejemplo:

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

O bien:

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

Si establece el parámetro neptune_ml_endpoint en el grupo de parámetros del clúster de base de datos de Neptune en el id o la URL del punto de conexión, no necesita incluir el predicado Neptune#ml.endpoint en cada consulta.

Neptune#ml.iamRoleArn

Neptune#ml.iamRoleArn se utiliza en un paso with() para especificar el ARN del rol de IAM de ejecución de SageMaker, si es necesario:

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

Para obtener información sobre cómo crear el rol de IAM de ejecución de SageMaker, consulte Para crear un rol de NeptuneSageMakerIAMRole personalizado.

nota

Si establece el parámetro neptune_ml_iam_role en el grupo de parámetros del clúster de base de datos de Neptune en el ARN del rol de IAM de ejecución de SageMaker, no necesita incluir el predicado Neptune#ml.iamRoleArn en cada consulta.

Neptune#ml.inductiveInference

La inferencia transductiva está habilitada de forma predeterminada en Gremlin. Para realizar una consulta de inferencia inductiva en tiempo real, incluya el predicado Neptune#ml.inductiveInference de la siguiente manera:

.with("Neptune#ml.inductiveInference")

Si el gráfico es dinámico, la inferencia inductiva suele ser la mejor opción, pero si el gráfico es estático, la inferencia transductiva es más rápida y eficaz.

Neptune#ml.limit

El predicado Neptune#ml.limit es opcional y limita el número de resultados devueltos por la entidad:

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

De forma predeterminada, el límite es 1 y el número máximo que se puede establecer es 100.

Neptune#ml.threshold

El predicado Neptune#ml.threshold establece de forma opcional un umbral límite para las puntuaciones de los resultados:

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

Esto le permite descartar todos los resultados con puntuaciones por debajo del umbral especificado.

Neptune#ml.classification

El predicado Neptune#ml.classification se adjunta al paso properties() para establecer que las propiedades deben obtenerse del punto de conexión de SageMaker del modelo de clasificación de nodos:

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

Neptune#ml.regression

El predicado Neptune#ml.regression se adjunta al paso properties() para establecer que las propiedades deben obtenerse del punto de conexión de SageMaker del modelo de regresión de nodos:

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

Neptune#ml.prediction

El predicado Neptune#ml.prediction se adjunta a los pasos in() y out() pasos para establecer que se trata de una consulta de predicción de enlaces:

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

Neptune#ml.score

El predicado Neptune#ml.score se utiliza en las consultas de clasificación de nodos o bordes de Gremlin para obtener una puntuación de confianza en el machine learning. El predicado Neptune#ml.score debe pasarse junto con el predicado de la consulta en el paso properties() para obtener una puntuación de confianza en el ML para las consultas de clasificación de nodos o bordes.

Puede encontrar un ejemplo de clasificación de nodos con otros ejemplos de clasificación de nodos y un ejemplo de clasificación de bordes en la sección Clasificación de bordes.