翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 3. パイプラインを定義する
このステップでは、パイプラインが実行するアクションの順序とロジックを定義します。これには、個別のステップだけでなく、それらのロジカルな入力と出力も含まれます。たとえば、パイプライン開始時のデータの状態はどうなっているのでしょうか。データは細分性の異なる複数のファイルから取得されるのか、それとも 1 つのフラットファイルからのものなのでしょうか。データが複数のファイルからのものである場合、前処理ロジックを定義するために、すべてのファイルに対して 1 つのステップが必要なのか、それともファイルごとに別々のステップが必要なのか。決定は、データソースの複雑さと前処理の範囲によって異なります。
今回のリファレンス実装では、サーバーレス関数オーケストレーターである AWS Step Functions
Step Functions SDK を使用する
ML パイプラインを定義するには、まずAWS Step Functions データサイエンス SDK (Step Functions SDK) が提供する高レベルの Python API を使用して、パイプラインの 2 つの主要コンポーネントであるステップとデータを定義します。パイプラインを有向非循環グラフ (DAG) と考えると、ステップはグラフ上のノードを表し、データは 1 つのノード (ステップ) を次のノード (ステップ) に接続する有向エッジとして表示されます。ML ステップの一般的な例には、前処理、トレーニング、評価などがあります。Step Functions SDK には、使用できる組み込みステップ (TrainingStep
ML パイプラインには、各 ML ステップの動作をきめ細かく制御するための設定パラメーターも必要です。このような特別なデータプレースホルダーはパラメータープレースホルダーと呼ばれます。パイプラインを定義する時点では、その値の多くは不明です。パラメータプレースホルダーの例としては、パイプライン設計中に定義するインフラストラクチャ関連のパラメータ ( AWS リージョン コンテナイメージ URL など) や、パイプラインの実行時に定義する ML モデリング関連のパラメータ (ハイパーパラメータなど) などがあります。
Step Functions SDK の拡張
リファレンス実装における要件の 1 つは、特定のパラメータ設定を使用して ML パイプライン定義を具体的な ML パイプラインの作成とデプロイから分離することでした。ただし、Step Functions SDK の組み込みステップの中には、これらすべてのプレースホルダーパラメーターを渡すことができないものもありました。その代わり、パラメータ値は、パイプライン設計時に SageMaker AI 設定 API 呼び出しを通じて直接取得されることが想定されていました。これは SageMaker AI の設計時環境が SageMaker AI ランタイム環境と同一であれば問題なく動作しますが、実際の設定ではそうなることはほとんどありません。パイプライン設計時間とランタイムがこれほど密結合していることと、ML プラットフォームインフラストラクチャが一定に保たれるという前提は、設計されたパイプラインの適用性を著しく妨げています。実際、ML パイプラインは、基盤となるデプロイプラットフォームに少しでも変更が加えられるとすぐに機能しなくなります。
この課題を克服し、堅牢な ML パイプライン (一度設計すればどこでも実行したい) を作成するために、TrainingStep、ModelStep、TransformerStep などの組み込みステップを拡張して、独自のカスタムステップを実装しました。これらの拡張は ML Max プロジェクト