MLA機械学習のためのデータ準備
機械学習チームは毎日S3に格納される500GBのParquetファイルに対し、独自のPythonスクリプト(scikit-learnを使用)でカテゴリ変数エンコーディング・欠損値補完・外れ値除去を行い、結果をSageMakerトレーニングジョブの入力として保存するパイプラインを構築したい。インフラの管理を最小化し、SageMaker Pipelines と統合しやすい方法として最も適切なものはどれか?
ASageMaker Processing Jobs に scikit-learnコンテナを指定してカスタムスクリプトを実行し、SageMaker Pipelines の ProcessingStep として組み込む
✓ 正解
SageMaker Processing Jobs は scikit-learn コンテナをサポートし、S3 データの自動マウントと結果保存が可能です。ProcessingStep として Pipelines 統合も容易です。
BAWS Lambda関数でscikit-learnのデータ変換を実装し、S3イベントトリガーで自動実行する
Lambda はメモリ(10GB)・実行時間(15分)制限があり、500GB 処理に不適切です。
CAmazon EC2インスタンスを起動してCronジョブでPythonスクリプトを毎日実行し、結果をS3に保存する
EC2 直接利用はインフラ管理コストが高く、SageMaker Pipelines との統合が困難です。
DAWS Glue ETLジョブでPySparkを使用してデータ変換を実装し、結果をS3に保存する
Glue ETL はデフォルト PySpark 仕様であり、scikit-learn スクリプト直接実行に不向きです。Python Shell ジョブもリソース制約(最大 16GB)と Pipelines 統合面で不十分です。
解説
SageMaker Processing Jobs はフルマネージドの分散処理環境で、scikit-learn・Spark・カスタムコンテナを指定可能。S3からデータを自動マウントし処理後に結果をS3に保存する。ProcessingStep としてSageMaker Pipelines に直接統合でき、TrainingStep との連携も容易。Lambdaはメモリ上限(10GB)と実行時間制限(15分)があり500GBの処理に不適。EC2はインフラ管理が必要。AWS Glue ETLはデフォルトでPySparkを使用するためscikit-learnスクリプトの直接実行には適さず、Python Shellジョブもリソース制約(最大1DPU=16GB RAM)があり500GBのデータ処理には不十分なうえ、SageMaker PipelinesとのProcessingStep統合もProcessing Jobsほど容易ではありません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでMLAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →