翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neptune MLのモデルトレーニングによって生成されたアーティファクト
モデルトレーニングの後、Neptune ML は最適なトレーニング済みモデルパラメータを使用して、推論エンドポイントの起動とモデル予測の提供に必要なモデルアーティファクトを生成します。これらのアーティファクトは、トレーニングジョブによってパッケージ化され、最適な SageMaker トレーニングジョブの Amazon S3 出力場所に保存されます。
次のセクションでは、さまざまなタスクのモデルアーティファクトに含まれる内容と、モデル変換コマンドで既存のトレーニング済みモデルを使用して、新しいグラフデータでもアーティファクトを生成する方法について説明します。
異なるタスクに対して生成されたアーティファクト
トレーニングプロセスによって生成されるモデルアーティファクトの内容は、対象とする機械学習タスクによって異なります。
-
ノードの分類と回帰 — ノードプロパティ予測の場合、アーティファクトには、モデルのパラメータ、GNN エンコーダからのノード埋め込み、トレーニンググラフのノードのモデル予測、および推論エンドポイントの設定ファイルが含まれます。ノードの分類およびノード回帰タスクでは、モデル予測は、トレーニング時に存在するノードについては事前に計算されて、クエリのレイテンシーが削減されます。
-
エッジ分類と回帰 — エッジプロパティ予測の場合、アーティファクトにはモデルパラメータとノードの埋め込みも含まれます。エッジの始点および終点の頂点の埋め込みにモデルデコーダを適用することにより、エッジ分類またはエッジ回帰予測を計算するため、モデルデコーダのパラメータは推論において特に重要です。
-
リンク予測 — リンク予測では、エッジプロパティ予測で生成されたアーティファクトに加えて、トレーニンググラフが予測を実行する必要があるため、DGL グラフもアーティファクトとして含まれます。リンク予測の目的は、始点頂点と結合してグラフ内の特定のタイプのエッジを形成する可能性が高い終点頂点を予測することです。これを行うために、始点頂点のノード埋め込みとエッジタイプの学習された表現を、可能なすべての終点頂点のノード埋め込みと結合して、各終点頂点のエッジ尤度スコアを生成します。次に、スコアがソートされ、潜在的な終点頂点がランク付けされ、上位候補が返されます。
タスクタイプごとに、DGL の Graph Neural Network モデルの重みがモデルアーティファクトに保存されます。これにより、Neptune ML は、事前に計算された予測と埋め込み(トランスダクティブ推論) を使用してレイテンシーを短縮するだけでなく、グラフの変化に応じて新しいモデル出力を計算できます (帰納的推論)。
新しいモデルアーティファクトの生成
Neptune ML でのモデルトレーニング後に生成されたモデルアーティファクトは、トレーニンググラフに直接結びつけられます。つまり、事前に計算された埋め込みと予測は、元のトレーニンググラフにあったエンティティについてのみ存在します。Neptune ML エンドポイントの帰納的推論モードでは、新しいエンティティの予測をリアルタイムで計算できますが、エンドポイントにクエリを実行せずに新しいエンティティのバッチ予測を生成したい場合があります。
グラフに追加された新しいエンティティのバッチモデル予測を取得するには、新しいグラフデータに対して新しいモデルアーティファクトを再計算する必要があります。これは、modeltransform
コマンドを使用して行われます。エンドポイントを設定せずにバッチ予測のみを行いたい場合や、すべての予測を生成してグラフに書き戻せるようにする場合には、modeltransform
コマンドを使用します。
モデルトレーニングは学習プロセスの最後にモデル変換を暗黙的に実行するため、モデルのアーティファクトはトレーニングジョブによってトレーニンググラフデータ上で常に再計算されます。ただし、modeltransform
コマンドは、モデルのトレーニングに使用されなかったグラフデータのモデルアーティファクトを計算することもできます。そのためには、新しいグラフデータを元のグラフデータと同じ特徴エンコーディングを使用して処理し、同じグラフスキーマに従う必要があります。
これを行うには、まず、元のトレーニンググラフデータで実行されるデータ処理ジョブのクローンである新しいデータ処理ジョブを作成し、新しいグラフデータで実行します (Neptune ML の更新されたグラフデータの処理 を参照)。次に、新 dataProcessingJobId
および旧 modelTrainingJobId
で modeltransform
コマンドを呼び出し、更新されたグラフデータのモデルアーティファクトを再計算します。
ノードプロパティ予測では、元のトレーニンググラフに存在していたノードであっても、ノードの埋め込みと予測は新しいグラフデータで再計算されます。
エッジプロパティ予測とリンク予測では、ノードの埋め込みも再計算され、既存のノード埋め込みも同様に上書きされます。ノードの埋め込みを再計算するために、Neptune ML は、前のトレーニング済みモデルから学習済み GNN エンコーダを新しい特徴を持つ新しいグラフデータのノードに適用します。
特徴を持たないノードの場合、元のモデルトレーニングから学習した初期表現が再使用されます。特徴を持たず、元のトレーニンググラフに存在しなかった新しいノードの場合、Neptune ML は、元のトレーニンググラフに存在するそのノードタイプの学習済み初期ノード表現の平均としてそれらの表現を初期化します。これにより、特徴を持たない新しいノードが多数ある場合、モデル予測のパフォーマンスが低下する可能性があります。これは、すべてそのノードタイプの平均初期埋め込みに初期化されるためです。
concat-node-embed
を true に設定してモデルがトレーニングされている場合、ノード特徴と学習可能な初期表現を連結して、初期ノード表現が作成されます。したがって、更新されたグラフでは、新しいノードの初期ノード表現では、新しいノード特徴と連結された平均初期ノード埋め込みも使用されます。
さらに、ノードの削除は現在サポートされていません。更新されたグラフでノードが削除されている場合は、更新されたグラフデータでモデルを再トレーニングする必要があります。
モデルのアーティファクトを再計算すると、新しいグラフで学習したモデルパラメータが再利用され、新しいグラフが古いグラフと非常によく似ている場合にのみ実行されます。新しいグラフが十分に類似していない場合は、新しいグラフデータで同様のモデル性能を得るために、モデルを再トレーニングする必要があります。十分に類似した構成は、グラフデータの構造によって異なりますが、経験則として、新しいデータと元のトレーニンググラフデータの差異が 10 ~ 20% を超える場合は、モデルを再トレーニングする必要があります。
すべてのノードに特徴があるグラフの場合、しきい値の上端 (20% の差異) が適用されますが、多くのノードに特徴がなく、グラフに追加された新しいノードにプロパティがないグラフでは、下端 (10% の差異) が高すぎることがあります。
モデル変換ジョブについては、モデルトランスフォームコマンド を参照してください。