Gremlin 推論クエリで使用される Neptune ML 述語 - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Gremlin 推論クエリで使用される Neptune ML 述語

Neptune#ml.deterministic

この述語は、帰納的推論クエリ、つまり Neptune#ml.inductiveInference 述語を含むクエリではオプションです。

誘導推論を使用する場合、Neptune エンジンはトレーニング済みGNNモデルを評価するための適切なサブグラフを作成し、このサブグラフの要件は最終モデルのパラメータによって異なります。具体的には、 num-layerパラメータはターゲットノードまたはエッジからのトラバーサルホップの数を決定し、 fanoutsパラメータは各ホップでサンプリングする近隣の数を指定します (HPOパラメータ を参照)。

デフォルトでは、帰納的推論クエリは非決定論的モードで実行されます。このモードでは、Neptune は近傍をランダムに構築します。予測を行う場合、この通常のランダム近傍サンプリングによって予測が異なる場合があります。

帰納的推論クエリに Neptune#ml.deterministic を含めると、Neptune エンジンは、同じクエリを複数回呼び出しても毎回同じ結果が返されるように、決定論的な方法で近傍をサンプリングしようとします。ただし、基礎となるグラフの変更や分散システムのアーティファクトによって変動が生じる可能性があるため、結果が完全に決定的であることは保証できません。

次のように、クエリに Neptune#ml.deterministic 述語を含めます。

.with("Neptune#ml.deterministic")

Neptune#ml.deterministic 述語が Neptune#ml.inductiveInference も含まないクエリに含まれている場合は、単に無視されます。

Neptune#ml.disableInductiveInferenceMetadataCache

この述語は、帰納的推論クエリ、つまり Neptune#ml.inductiveInference 述語を含むクエリではオプションです。

帰納的推論クエリでは、Neptune は Amazon S3 に保存されているメタデータファイルを使用して、近傍を構築する際のホップ数とファンアウトを決定します。Neptune は通常、Amazon S3 からファイルを繰り返し取得しないように、このモデルメタデータをキャッシュします。クエリに Neptune#ml.disableInductiveInferenceMetadataCache 述語を含めることでキャッシュを無効にできます。Neptune が Amazon S3 から直接メタデータを取得するのが遅くなる場合がありますが、再トレーニングまたは変換後に SageMaker エンドポイントが更新され、キャッシュが古くなった場合に役立ちます。

次のように、クエリに Neptune#ml.disableInductiveInferenceMetadataCache 述語を含めます。

.with("Neptune#ml.disableInductiveInferenceMetadataCache")

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

Neptune#ml.endpoint 述語は、必要に応じて、with() 手順に従い推論エンドポイントを指定するために使用します。

.with("Neptune#ml.endpoint", "the model's SageMaker 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パラメータグループの パラメータをエンドポイントidまたは に設定した場合URL、各クエリにNeptune#ml.endpoint述語を含める必要はありません。

Neptune#ml.iamRoleArn

Neptune#ml.iamRoleArn は、必要に応じて SageMaker 実行IAMロールARNの を指定するwith()ステップで使用されます。

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

SageMaker 実行IAMロールを作成する方法については、「」を参照してくださいカスタム NeptuneSageMakerIAMRoleロールを作成する

注記

Neptune DB クラスターneptune_ml_iam_roleパラメータグループの パラメータを実行 SageMaker IAMロールARNの に設定した場合、各クエリにNeptune#ml.iamRoleArn述語を含める必要はありません。

Neptune#ml。inductiveInference

Gremlin では、トランスダクティブ推論はデフォルトで有効です。リアルタイムの帰納的推論クエリを作成するには、次のように Neptune#ml.inductiveInference 述語を含めます。

.with("Neptune#ml.inductiveInference")

グラフが動的な場合、多くの場合、機能的推論は最善の選択ですが、グラフが静的な場合、トランスダクティブ推論の方が速くて効率的です。

Neptune#ml.limit

Neptune#ml.limit 述語は、必要に応じてエンティティごとに返される結果の数を制限します。

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

デフォルトでは、上限は 1 であり、設定できる最大数は 100 です。

Neptune#ml.threshold

Neptune#ml.threshold 述語はオプションで、結果スコアの切り捨てしきい値を設定します。

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

これにより、指定したしきい値を下回るスコアを持つすべての結果を破棄できます。

Neptune#ml.classification

Neptune#ml.classification 述語は、ノード分類モデルの SageMaker エンドポイントからプロパティを取得する必要があることを確認するproperties()ステップにアタッチされます。

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

Neptune#ml.regression

Neptune#ml.regression 述語は、ノード回帰モデルの SageMaker エンドポイントからプロパティを取得する必要があることを確認するproperties()ステップにアタッチされます。

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

Neptune#ml.prediction

Neptune#ml.prediction 述語は、これがリンク予測クエリであることを確立するために in() および out() ステップに添付されています。

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

Neptune#ml.score

Neptune#ml.score 述語は Gremlin ノードまたはエッジ分類クエリで、機械学習の信頼スコアを取得するために使用されます。Neptune#ml.score 述語は、ノードまたはエッジ分類クエリの ML 信頼度スコアを取得するために、properties() ステップでクエリ述語とともに渡されます。

ノード分類の例については、その他のノード分類の例で、また、エッジ分類セクションのエッジ分類の例でご確認いただけます。