Image Metric Learning Training (raw) コンポーネントを使用して、推論用のメトリック学習モデルを構築します。
前提条件
OSS が有効化されており、Machine Learning Studio に OSS へのアクセス権限が付与されている必要があります。詳細については、「OSS の有効化」および「権限の付与」をご参照ください。
制限事項
サポートされるコンピューティングエンジンは DLC です。
アルゴリズムの説明
Image Metric Learning Training (raw) コンポーネントは、resnet50、resnet18、resnet34、resnet101、swint_tiny、swint_small、swint_base、vit_tiny、vit_small、vit_base、xcit_tiny、xcit_small、xcit_base などの一般的なモデルを提供します。
コンポーネントの構成
-
入力スタブ
入力ポート(左から右)
制限されたデータの型
推奨される上流コンポーネント
必須
トレーニングデータのアノテーションファイル
OSS
いいえ
評価データのアノテーションファイル
OSS
いいえ
-
コンポーネントパラメーター
タブ
パラメーター
必須
説明
デフォルト値
フィールド設定
メトリック学習モデルのタイプ
はい
モデルトレーニングに使用するアルゴリズムのタイプです。有効な値は以下のとおりです。
-
データ並列メトリック学習
-
モデル並列メトリック学習
データ並列メトリック学習
トレーニング出力を保存する OSS ディレクトリ
はい
トレーニングモデルを格納する OSS ディレクトリです。例:
oss://examplebucket/yun****/designer_test。なし
トレーニングデータのアノテーションファイルのパス
いいえ
入力ポートにトレーニングデータのアノテーションファイルが接続されていない場合に、このパラメーターを設定します。
説明入力ポートとこのパラメーターの両方でファイルが設定されている場合、コンポーネントは入力ポートからのデータを使用します。
トレーニングデータのアノテーションファイルを格納する OSS パスです。例:
oss://examplebucket/yourfolder****/data/imagenet/meta/train_labeled.txt。train_labeled.txt ファイルの各行は、次の形式に従う必要があります。
absolute path/image_name.jpg label_id。重要画像パスとlabel_idは、スペースで区切ります。
なし
検証データのアノテーションファイルのパス
いいえ
入力ポートに評価データのアノテーションファイルが接続されていない場合に、このパラメーターを設定します。
説明入力ポートとこのパラメーターの両方でファイルが設定されている場合、コンポーネントは入力ポートからのデータを使用します。
検証データのアノテーションファイルを格納する OSS パスです。例:
oss://examplebucket/yourfolder****/data/imagenet/meta/val_labeled.txt。val_labeled.txt ファイルの各行は、次の形式に従う必要があります。
absolute path/image_name.jpg label_id。重要画像パスとlabel_idは、スペースで区切ります。
なし
クラス名リストのファイル
いいえ
クラス名を直接入力するか、クラス名を含む .txt ファイルの OSS パスを指定します。
なし
データソースのフォーマット
はい
入力データのフォーマットです。有効な値は ClsSourceImageList および ClsSourceItag です。
ClsSourceImageList
事前学習済みモデルの OSS パス
いいえ
カスタムの事前学習済みモデルが存在する場合は、その OSS パスをこのパラメーターに設定します。設定しない場合、PAI はデフォルトの事前学習済みモデルを使用します。
なし
パラメーター設定
メトリック学習モデルのバックボーン
はい
主流のモデルを選択します。有効な値は以下のとおりです。
-
resnet_50
-
resnet_18
-
resnet_34
-
resnet_101
-
swin_transformer_tiny
-
swin_transformer_small
-
swin_transformer_base
resnet50
画像のサイズ変更サイズ
はい
サイズ変更後の画像のピクセル数です。
224
バックボーン出力の特徴ディメンション
はい
主流モデル出力の特徴ディメンションです。整数である必要があります。
2048
特徴出力の特徴ディメンション
はい
Neck 出力の特徴ディメンションです。整数である必要があります。
1536
トレーニングデータ分類アノテーションのクラス数
はい
メトリック学習のために設定される出力ディメンションの数です。
なし
メトリック学習モデルの損失関数
はい
損失関数は、トレーニングモデルの予測値と実際の値の差異を評価します。有効な値は以下のとおりです。
-
AMSoftmax(推奨パラメーター:margin 0.4、scale 30)
-
ArcFaceLoss(推奨パラメーター:margin 28.6、scale 64)
-
CosFaceLoss(推奨パラメーター:margin 0.35、scale 64)
-
LargeMarginSoftmaxLoss(推奨パラメーター:margin 4、scale 1)
-
SphereFaceLoss(推奨パラメーター:margin 4、scale 1)
-
モデル並列 AMSoftmax(GPU 数に応じて分類上限を拡張可能)
-
モデル並列 Softmax(GPU 数に応じて分類上限を拡張可能)
AMSoftmax(推奨パラメーター:margin 0.4、scale 30)
メトリック学習損失関数の scale パラメーター
はい
メトリック学習に使用する損失関数に基づいて、このパラメーターを設定します。
30
メトリック学習損失関数の margin パラメーター
はい
メトリック学習に使用する損失関数に基づいて、このパラメーターを設定します。
0.4
メトリック学習損失関数の重み
いいえ
損失関数の重みです。この値は、メトリックと分類の間の最適化比率を調整します。
1.0
最適化方法
はい
モデルトレーニングの最適化方法です。有効な値は以下のとおりです。
-
SGD
-
AdamW
SGD
初期学習率
はい
初期学習率です。浮動小数点数である必要があります。
0.03
トレーニング batch_size
はい
トレーニング時のバッチサイズです。モデルトレーニング中に各反復(ステップ)でトレーニングされるサンプル数を示します。
なし
トレーニング総エポック数
はい
1 エポックは、すべてのサンプルに対する 1 回の完全なトレーニングを意味します。総エポック数は、すべてのサンプルをトレーニングする総回数です。
200
チェックポイントの保存頻度
いいえ
モデルファイルを保存する頻度です。値が 1 の場合、各エポック後にモデルが保存されます。
10
実行チューニング
トレーニングデータを読み取るスレッド数
いいえ
トレーニングデータを読み取るプロセス数です。
4
半精度を有効化
いいえ
このパラメーターを選択すると、モデルトレーニングに半精度が使用され、メモリ使用量が削減されます。
なし
シングルノードまたは分散(MaxCompute/DLC)
はい
コンポーネントを実行するエンジンです。必要に応じてエンジンを選択します。サポートされるコンピューティングエンジンは以下のとおりです。
-
Standalone DLC
-
Distributed DLC
Standalone DLC
ワーカー数
いいえ
Distributed DLC を実行エンジンとして使用する場合に、このパラメーターを設定します。
トレーニング中の同時プロセス(ワーカー)数です。
1
GPU モデルの選択
はい
実行する GPU 仕様を選択します。
8vCPU+60GB Mem+1xp100-ecs.gn5-c8g1.2xlarge
-
使用例
Image Metric Learning Training (raw) コンポーネントを使用して、次の図に示すワークフローを構築します。
各コンポーネントは次のように設定します。
-
PAI が提供する iTAG モジュールを使用して、データの準備とアノテーションを行います。詳細については、「iTAG」をご参照ください。
-
Read OSS Data-4 コンポーネントおよび Read OSS Data-5 コンポーネントを使用して、トレーニングデータおよび検証データのアノテーションファイルを読み取ります。Read OSS Data コンポーネントそれぞれの OSS Data Path パラメーターを、対応するアノテーションファイルが格納されている OSS パスに設定します。
-
2 つの Read OSS Data コンポーネントを Image Metric Learning Training (raw) コンポーネントに接続し、そのパラメーターを設定します。詳細については、「デザイナーでのコンポーネントの設定」をご参照ください。