

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Gremlin 추론 쿼리에 사용되는 Neptune ML 조건자
<a name="machine-learning-gremlin-inference-query-predicates"></a>

## `Neptune#ml.deterministic`
<a name="machine-learning-gremlin-inference-neptune-ml-deterministic-predicate"></a>

이 조건자는 유도 추론 쿼리, 즉 [`Neptune#ml.inductiveInference`](#machine-learning-gremlin-inference-neptune-ml-inductiveInference) 조건자가 포함된 쿼리에 사용할 수 있는 옵션입니다.

유도 추론을 사용하는 경우 Neptune 엔진은 훈련된 GNN 모델을 평가하는 데 적합한 하위 그래프를 생성하며, 이 하위 그래프의 요구 사항은 최종 모델의 파라미터에 따라 달라집니다. 구체적으로, `num-layer` 파라미터는 대상 노드 또는 엣지로부터의 순회 홉 수를 결정하고 `fanouts` 파라미터는 각 홉에서 샘플링할 인접 디바이스 수를 지정합니다([HPO 파라미터](machine-learning-customizing-hyperparams.md) 참조).

기본적으로 유도 추론 쿼리는 Neptune이 주변 환경을 무작위로 구축하는 비결정적 모드에서 실행됩니다. 예측할 때 이 일반적인 무작위 이웃 샘플링으로 인해 예측이 달라지는 경우가 있습니다.

유도 추론 쿼리에 `Neptune#ml.deterministic`을 포함하면 Neptune 엔진이 결정적 방식으로 이웃 샘플링을 시도하여 동일한 쿼리를 여러 번 간접 호출해도 매번 동일한 결과가 반환되도록 합니다. 하지만 분산 시스템의 기본 그래프와 아티팩트를 변경해도 여전히 변동이 발생할 수 있기 때문에 결과가 완전히 결정적이라고 보장할 수는 없습니다.

다음과 같이 쿼리에 `Neptune#ml.deterministic` 조건자를 포함하세요.

```
.with("Neptune#ml.deterministic")
```

`Neptune#ml.inductiveInference`를 포함하지 않은 쿼리에 `Neptune#ml.deterministic` 조건자가 포함되어 있으면 그냥 무시됩니다.

## `Neptune#ml.disableInductiveInferenceMetadataCache`
<a name="machine-learning-gremlin-disableInductiveInferenceMetadataCache-predicate"></a>

이 조건자는 유도 추론 쿼리, 즉 [`Neptune#ml.inductiveInference`](#machine-learning-gremlin-inference-neptune-ml-inductiveInference) 조건자가 포함된 쿼리에 사용할 수 있는 옵션입니다.

유도 추론 쿼리의 경우 Neptune은 Amazon S3에 저장된 메타데이터 파일을 사용하여 주변 환경을 구축하는 동안 홉 수와 팬아웃을 결정합니다. Neptune은 일반적으로 Amazon S3에서 파일을 반복적으로 가져오는 것을 방지하기 위해 이 모델 메타데이터를 캐싱합니다. 쿼리에 `Neptune#ml.disableInductiveInferenceMetadataCache` 조건자를 포함하여 캐싱을 비활성화할 수 있습니다. Neptune이 Amazon S3에서 직접 메타데이터를 가져오면 더 느릴 수 있지만, 재훈련 또는 변환 후 SageMaker AI 엔드포인트가 업데이트되어 캐시가 오래된 경우에는 도움이 됩니다.

다음과 같이 쿼리에 `Neptune#ml.disableInductiveInferenceMetadataCache` 조건자를 포함하세요.

```
.with("Neptune#ml.disableInductiveInferenceMetadataCache")
```

Jupyter Notebook에서 샘플 쿼리가 어떻게 보이는지는 다음과 같습니다.

```
%%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`
<a name="machine-learning-gremlin-inference-neptune-ml-endpoint-predicate"></a>

`Neptune#ml.endpoint` 조건자는 필요한 경우 추론 엔드포인트를 지정하는 `with()` 단계에서 사용됩니다.

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

`id` 또는 URL을 통해 엔드포인트를 식별할 수 있습니다. 예제:

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

또는 다음과 같습니다.

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

**참고**  
Neptune DB 클러스터 파라미터 그룹의 [`neptune_ml_endpoint` 파라미터](machine-learning-cluster-setup.md#machine-learning-set-inference-endpoint-cluster-parameter)를 엔드포인트 `id` 또는 URL로 설정하는 경우 각 쿼리에 `Neptune#ml.endpoint` 조건자를 포함할 필요가 없습니다.

## `Neptune#ml.iamRoleArn`
<a name="machine-learning-gremlin-inference-neptune-ml-iamRoleArn-predicate"></a>

`Neptune#ml.iamRoleArn`은 필요한 경우 SageMaker AI 실행 IAM 역할의 ARN을 지정하는 `with()` 단계에서 사용됩니다.

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

SageMaker AI 실행 IAM 역할을 만드는 방법에 대한 자세한 내용은 [사용자 지정 NeptuneSageMakerIAMRole 역할 생성](machine-learning-manual-setup.md#ml-manual-setup-sm-role)을 참조하세요.

**참고**  
Neptune DB 클러스터 파라미터 그룹의 [`neptune_ml_iam_role` 파라미터](machine-learning-cluster-setup.md#machine-learning-enabling-create-param-group)를 SageMaker AI 실행 IAM 역할의 ARN으로 설정하는 경우 각 쿼리에 `Neptune#ml.iamRoleArn` 조건자를 포함할 필요가 없습니다.

## Neptune\$1ml.inductiveInference
<a name="machine-learning-gremlin-inference-neptune-ml-inductiveInference"></a>

Gremlin에서는 변환 추론 기능이 기본적으로 활성화되어 있습니다. [실시간 유도 추론](machine-learning-overview-evolving-data.md#inductive-vs-transductive-inference) 쿼리를 만들려면 다음과 같이 `Neptune#ml.inductiveInference` 조건자를 포함하세요.

```
.with("Neptune#ml.inductiveInference")
```

동적 그래프인 경우 유도 추론이 최선의 선택인 경우가 많지만, 그래프가 정적이면 변환 추론이 더 빠르고 효율적입니다.

## `Neptune#ml.limit`
<a name="machine-learning-gremlin-inference-neptune-ml-limit-predicate"></a>

`Neptune#ml.limit` 조건자는 엔터티당 반환되는 결과 수를 필요에 따라 제한합니다.

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

기본적으로 제한은 1이고 설정할 수 있는 최대 수는 100입니다.

## `Neptune#ml.threshold`
<a name="machine-learning-gremlin-inference-neptune-ml-threshold-predicate"></a>

`Neptune#ml.threshold` 조건자는 필요에 따라 결과 점수에 대한 차단 임계값을 설정합니다.

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

이렇게 하면 점수가 지정된 임계값 미만인 결과를 모두 무시할 수 있습니다.

## `Neptune#ml.classification`
<a name="machine-learning-gremlin-inference-neptune-ml-classification-predicate"></a>

`Neptune#ml.classification` 조건자는 노드 분류 모델의 SageMaker AI 엔드포인트에서 속성을 가져와야 함을 설정하는 `properties()` 단계에 연결됩니다.

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

## `Neptune#ml.regression`
<a name="machine-learning-gremlin-inference-neptune-ml-regression-predicate"></a>

`Neptune#ml.regression` 조건자는 노드 회귀 모델의 SageMaker AI 엔드포인트에서 속성을 가져와야 함을 설정하는 `properties()` 단계에 연결됩니다.

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

## `Neptune#ml.prediction`
<a name="machine-learning-gremlin-inference-neptune-ml-prediction-predicate"></a>

`Neptune#ml.prediction` 조건자는 연결 예측 쿼리임을 확인하는 `in()` 및 `out()` 단계에 연결됩니다.

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

## `Neptune#ml.score`
<a name="machine-learning-gremlin-inference-neptune-ml-score-predicate"></a>

`Neptune#ml.score` 조건자는 Gremlin 노드 또는 엣지 분류 쿼리에서 기계 학습 신뢰도 점수를 가져오는 데 사용됩니다. 노드 또는 엣지 분류 쿼리에 대한 ML 신뢰도 점수를 얻으려면 `properties()` 단계에서 `Neptune#ml.score` 조건자를 쿼리 조건자와 함께 전달해야 합니다.

[기타 노드 분류 예제](machine-learning-gremlin-vertex-classification-queries.md#machine-learning-gremlin-node-class-other-queries)가 포함된 노드 분류 예와 [엣지 분류 섹션](machine-learning-gremlin-edge-classification-queries.md)에서 엣지 분류 예제를 찾을 수 있습니다.