Neptune ML 特徴の使い方の概要 - Amazon Neptune

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

Neptune ML 特徴の使い方の概要

Neptune ML を使用するためのワークフローの開始

Amazon Neptune で Neptune ML 特徴を使用するには、通常、まず次の 5 つの手順が必要です。

Neptune ML ワークフロー図
  1. データのエクスポートと設定 — データエクスポートステップでは、Neptune-Export サービスまたはNeptune から Amazon Simple Storage Service (Amazon S3) にデータを CSV 形式でエクスポートするための neptune-export コマンドラインツールを使用します。training-data-configuration.json という構成ファイルが同時に自動的に生成されます。これにより、エクスポートされたデータをトレーニング可能なグラフにロードする方法が指定されます。

  2. データの前処理 — このステップでは、エクスポートされたデータセットは標準的な手法を使用して前処理され、モデルトレーニング用に準備されます。数値データに対して特徴の正規化を実行でき、テキスト特徴は word2vec を使用して符号化できます。この手順の最後に、エクスポートされたデータセットから DGL (ディープグラフライブラリ) グラフが生成され、モデルトレーニングステップで使用できるようになります。

    この手順は、アカウントの SageMaker 処理ジョブを使用して実装され、結果のデータは指定した Amazon S3 ロケーションに保存されます。

  3. モデルトレーニング — モデルトレーニングステップは、予測に使用される機械学習モデルをトレーニングします。

    モデルトレーニングは、次の2つの段階で行われます。

    • 最初のステージでは、SageMaker 処理ジョブを使用して、モデルトレーニングに使用するモデルおよびモデルのハイパーパラメータ範囲のタイプを指定するモデルトレーニング戦略構成セットを生成します。

    • 次に、第 2 段階では SageMaker モデルチューニングジョブを使用して、さまざまなハイパーパラメータ構成を試し、最もパフォーマンスの高いモデルを生成したトレーニングジョブを選択します。チューニングジョブは、処理されたデータに対して事前に指定された数のモデルトレーニングジョブ試行を実行します。このステージの最後に、最適なトレーニングジョブのトレーニング済みモデルパラメータを使用して、推論のためのモデルアーティファクトを生成します。

  4. Amazon SageMaker で推論エンドポイントを作成する — 推論エンドポイントは、最適なトレーニングジョブによって生成されたモデルアーティファクトで起動される SageMaker エンドポイントインスタンスです。各モデルは 1 つのエンドポイントに関連付けられています。エンドポイントは、グラフデータベースからの受信リクエストを受け入れ、リクエストの入力に対するモデル予測を返すことができます。エンドポイントを作成した後も、削除するまでアクティブなままになります。

  5. Gremlin を使用して機械学習モデルを照会する — Gremlin クエリ言語の拡張機能を使用して、推論エンドポイントから予測を照会できます。

注記

Neptune workbench ラインマジックとセルマジックが含まれており、これらの手順の管理に多大な時間を節約できます。

変化するグラフデータに基づいて予測を行う

継続的に変化するグラフでは、新しいデータを使用して、定期的に新しいバッチ予測を作成する必要があるかもしれません。最新のデータに基づいて新しい予測をその場で生成する (帰納的推論) よりも、事前に計算された予測 (トランスダクティブ推論) をクエリするほうがはるかに高速です。どちらの方法にも、データの変化の速さやパフォーマンス要件に応じて弱点があります。

帰納的推論とトランスダクティブ推論の違い

トランスダクティブ推論を実行する場合、Neptune はトレーニング時に事前に計算された予測を検索して返します。

帰納的推論を実行する場合、Neptune は関連するサブグラフを作成し、そのプロパティを取得します。次に、DGL GNN モデルはデータ処理とモデル評価をリアルタイムで適用します。

そのため、帰納的推論では、トレーニング時には存在しなかったノードやエッジに関する予測や、グラフの現在の状態を反映した予測を生成できます。ただし、これにはレイテンシが大きくなるという代償が伴います。

グラフが動的な場合は、最新のデータを考慮に入れるために帰納的推論を使用することもできますが、グラフが静的な場合は、トランスダクティブ推論の方が速くて効率的です。

帰納的推論は、デフォルトでは無効です。クエリで Gremlin Neptune#ml.inductiveInference 述語を次のように使用することで、クエリで有効にできます。

.with( "Neptune#ml.inductiveInference")

インクリメンタルトランスダクティブワークフロー

ステップ 1 ~ 3 (データのエクスポートと設定からモデル変換まで) を再実行するだけで、モデルアーティファクトを更新できますが、Neptune ML は、新しいデータを使用してバッチ ML 予測を更新する、より簡単な方法をサポートしています。1 つは、インクリメンタルモデルワークフローを使用する方法で、もう 1 つはウォームスタートによるモデルの再トレーニングです。

インクリメンタルモデルワークフロー

このワークフローでは、ML モデルを再トレーニングせずに ML 予測を更新します。

注記

これは、グラフデータが新しいノードやエッジで更新された場合にのみ実行できます。ノードが削除されると、今のところ動作しません。

  1. データのエクスポートと設定 — このステップは、メインワークフローと同じです。

  2. 増分データの前処理 — このステップは、メインワークフローのデータ前処理ステップと似ていますが、特定のトレーニング済みモデルに対応する、以前に使用したのと同じ処理構成を使用します。

  3. モデルの変換 — モデルトレーニングステップではなく、このモデル変換ステップは、メインワークフローと増分データの前処理ステップの結果からトレーニング済みモデルを取得し、推論に使用する新しいモデルアーティファクトを生成します。モデル変換ステップは SageMaker 処理ジョブを起動して、更新されたモデルアーティファクトを生成する計算を実行します。

  4. Amazon SageMaker 推論エンドポイントを更新する — オプションで、既存の推論エンドポイントがある場合、このステップでは、モデル変換ステップによって生成された新しいモデルアーティファクトでエンドポイントを更新します。または、新しいモデルのアーティファクトを使用して新しい推論エンドポイントを作成することもできます。

ウォームスタートでモデル再トレーニング

このワークフローを使用して、増分グラフデータを使用して予測を行うための新しい ML モデルをトレーニングおよび展開できますが、メインワークフローを使用して生成された既存のモデルから開始します。

  1. データのエクスポートと設定 — このステップは、メインワークフローと同じです。

  2. 増分データの前処理 — この手順は、増分モデル推論ワークフローの場合と同じです。新しいグラフデータは、以前にモデルトレーニングに使用したのと同じ処理方法で処理する必要があります。

  3. ウォームスタートでモデルトレーニング — モデルトレーニングはメインワークフローで発生するものと似ていますが、前のモデルトレーニングタスクの情報を活用して、モデルのハイパーパラメータ検索を高速化できます。

  4. Amazon SageMaker 推論エンドポイントを更新する — この手順は、増分モデル推論ワークフローの場合と同じです。

Neptune ML のカスタムモデルのワークフロー

Neptune ML では、Neptune ML がサポートする任意のタスクに対して、独自のカスタムモデルを実装、トレーニング、デプロイできます。カスタムモデルの開発およびデプロイのワークフローは、組み込みモデルの場合と基本的に同じですが、カスタムモデルのワークフロー で説明するように、いくつかの違いがあります。