2021年に、 AWS サポート プロアクティブ サービス の一部として AWSエンタープライズサポート プラン。 導入以来、私たちは何百ものお客様のワークロードの最適化、ガードレールの設定、機械学習 (ML) ワークロードのコストと使用状況の可視性の向上を支援してきました。
この一連の投稿では、コストの最適化について学んだ教訓を共有します。 アマゾンセージメーカー。 この投稿では、を使用したデータの前処理に焦点を当てます。 Amazon SageMaker処理 および AmazonSageMakerデータラングラー 。
データの前処理は、データ中心の AI アプローチにおいて極めて重要な役割を果たします。 ただし、ML のトレーニングと評価用に生データを準備することは、多くの場合、コンピューティング リソース、時間、人的労力の点で退屈で困難な作業です。 データの準備は通常、さまざまなソースから統合し、欠損値やノイズのある値、外れ値などに対処する必要があります。
さらに、ML チームは、一般的な抽出、変換、読み込み (ETL) タスクに加えて、データを評価し、MLOps パイプラインの一部として特徴重要度スコアやトレーニング後のモデル評価を生成するためのクイック モデルの作成など、より高度な機能を必要とすることがあります。
SageMaker は、これらの問題を解決するために特別に設計された XNUMX つの機能、SageMaker Processing と Data Wrangler を提供します。 SageMaker Processing を使用すると、フルマネージドのインフラストラクチャ上で前処理、後処理、モデル評価を簡単に実行できます。 Data Wrangler は、単一のビジュアル インターフェイスと完全に分散されたデータ処理環境を使用して、データ ソースの統合と特徴エンジニアリングのプロセスを簡素化することで、データの集計と準備にかかる時間を短縮します。
どちらの SageMaker 機能も、I/O、ストレージ、および計算に関するいくつかのオプションを備えた優れた柔軟性を提供します。 ただし、これらのオプションの設定を誤ると、特に大規模なデータセットを扱う場合、不必要なコストが発生する可能性があります。
この投稿では、価格設定要因を分析し、SageMaker Processing ジョブと Data Wrangler ジョブのコスト最適化のガイダンスを提供します。
SageMakerの処理
SageMaker Processing は、データ処理とモデル評価ワークロードを実行するためのマネージド ソリューションです。 ML ワークフローでの特徴量エンジニアリング、データ検証、モデル評価、モデル解釈などのデータ処理ステップで使用できます。 SageMaker Processing を使用すると、独自のカスタム処理スクリプトを持ち込み、カスタム コンテナを構築するか、scikit-learn、Lime、Spark などの一般的なフレームワークで SageMaker 管理コンテナを使用するかを選択できます。
SageMaker Processing は、使用期間とそのインスタンスに接続されているプロビジョニングされたストレージに基づいて、選択したインスタンス タイプに対して料金を請求します。 パート 1 では、使用を開始する方法を説明しました。 AWSコストエクスプローラー SageMaker でのコスト最適化の機会を特定します。
使用量タイプにフィルターを適用することで、処理コストをフィルターできます。 これらの使用タイプの名前は次のとおりです。
REGION-Processing:instanceType
(例えば、USE1-Processing:ml.m5.large
)REGION-Processing:VolumeUsage.gp2
(例えば、USE1-Processing:VolumeUsage.gp2
)
Cost Explorer で SageMaker 処理コストを確認するには、まず SageMaker でフィルタリングして、 カスタマーサービス、および用 使用タイプを入力すると、すべての処理インスタンスの実行時間を選択できます。 processing:ml
プレフィックスを入力してメニューのリストを選択します。
処理とパイプライン開発のコストを回避する
SageMaker Processing ジョブの実行期間の適切なサイズ設定と最適化を行う前に、過去のジョブ実行に関する高レベルのメトリクスをチェックします。 これを行うには XNUMX つの方法から選択できます。
まず、次の場所にアクセスできます。 処理 SageMakerコンソールのページ。
処理中のジョブのステータスは次のとおりです。 InProgress
, Completed
, Failed
, Stopping
または Stopped
.
新しい MLOps パイプラインを開発する場合、多数のジョブが失敗するのが一般的です。 ただし、使用するリソースには料金が発生するため、SageMaker でジョブを起動する前に、常にテストを行い、ジョブを検証するためにあらゆる努力を払う必要があります。 この目的のために、SageMaker Processing を使用できます。 ローカルモード。 ローカル モードは、エスティメーター、プロセッサ、パイプラインを作成し、ローカル開発環境にデプロイできるようにする SageMaker SDK の機能です。 これは、SageMaker 管理環境でスクリプトを実行する前にスクリプトをテストする優れた方法です。 ローカル モードは、SageMaker 管理のコンテナおよび自分で提供するコンテナによってサポートされています。 ローカル モードの使用方法の詳細については、 AmazonSageMakerパイプライン、 参照する ローカルモード.
I/O関連コストの最適化
SageMaker 処理ジョブは、管理されたデータ ソースの一部として XNUMX つのデータ ソースへのアクセスを提供します。 入力の処理: Amazon シンプル ストレージ サービス (Amazon S3)、 アマゾンアテナ, Amazonレッドシフト。 詳細については、を参照してください。 処理S3入力, Athenaデータセット定義, Redshiftデータセット定義それぞれ。
最適化について検討する前に、SageMaker 処理ジョブはこれらのデータ ソースをサポートしていますが、必須ではないことに注意することが重要です。 処理コードでは、アクセスするデータを任意のソースからダウンロードする任意のメソッドを実装できます (処理インスタンスがアクセスできる場合)。
処理パフォーマンスと最適化の機会を検出するためのより良い洞察を得るには、次のことをお勧めします。 ベストプラクティスのログ記録 処理スクリプト内で。 SageMaker は処理ログを次の宛先に公開します。 アマゾンクラウドウォッチ.
次のジョブ ログの例では、スクリプトの処理に 15 分かかったことがわかります ( Start custom script
および End custom script
).
ただし、SageMaker コンソールでは、ジョブにさらに 4 分 (ジョブの合計実行時間のほぼ 25%) かかったことがわかります。
これは、処理スクリプトにかかった時間に加えて、SageMaker が管理するデータのダウンロードとアップロードにも時間がかかった (4 分) ことが原因です。 これがコストの大部分を占めることが判明した場合は、マルチプロセッシングを備えた Boto3 API を使用してファイルを同時にダウンロードしたり、サードパーティのライブラリを WebDataset または s5cmd として使用して Amazon S3 からのダウンロードを高速化するなど、ダウンロード時間を短縮する別の方法を検討してください。 。 詳細については、以下を参照してください。 s3cmd を使用した S5 ワークロードの並列化。 このような方法では、次の理由により Amazon S3 で料金が発生する可能性があることに注意してください。 データ転送.
処理ジョブもサポート パイプモード。 この方法を使用すると、SageMaker は ML ストレージ ボリュームを使用せずに、入力データをソースから処理コンテナーに直接名前付きパイプにストリーミングします。これにより、データのダウンロード時間が短縮され、ディスク ボリュームが小さくなります。 ただし、これには、単にディスク上のファイルから読み取るよりも複雑なプログラミング モデルが必要です。
前述したように、SageMaker Processing はデータ ソースとして Athena と Amazon Redshift もサポートしています。 これらのソースを使用して処理ジョブを設定すると、SageMaker はデータを Amazon S3 に自動的にコピーし、処理インスタンスが Amazon S3 の場所からデータをフェッチします。 ただし、ジョブが終了すると、管理されたクリーンアップ プロセスは存在せず、コピーされたデータは Amazon S3 に残り、不要なストレージ料金が発生する可能性があります。 したがって、Athena および Amazon Redshift データ ソースを使用する場合は、Lambda 関数などのクリーンアップ手順を必ず実装してください。 スケジュールに従って実行されます またはで ラムダステップ SageMaker パイプラインの一部として。
ダウンロードと同様に、処理成果物のアップロードも最適化の機会となる可能性があります。 処理ジョブの出力が ProcessingS3Output
パラメータで指定できるのは、 S3UploadMode
使用します。 の S3UploadMode
パラメータのデフォルト値は EndOfJob
これにより、ジョブの完了後に SageMaker が結果をアップロードします。 ただし、処理ジョブで複数のファイルが生成される場合は、 S3UploadMode
〜へ Continuous
これにより、処理の続行と同時に成果物のアップロードが可能になり、ジョブの実行時間が短縮されます。
適切なサイズの処理ジョブ インスタンス
適切なインスタンスのタイプとサイズを選択することは、SageMaker 処理ジョブのコストを最適化するための主要な要素です。 同じインスタンス ファミリー内の別のバージョンに移行するか、別のインスタンス ファミリーに移行することによって、インスタンスのサイズを適切に調整できます。 同じインスタンス ファミリー内で移行する場合は、CPU/GPU とメモリのみを考慮する必要があります。 適切な処理リソースの選択に関する詳細および一般的なガイダンスについては、以下を参照してください。 Amazon SageMaker で効率的なコンピューティング リソースを確保する.
インスタンスの選択を微調整するには、まず CloudWatch で処理ジョブのメトリクスを分析します。 詳細については、以下を参照してください。 Amazon CloudWatchでAmazon SageMakerを監視する.
CloudWatch は、SageMaker から生データを収集し、それを読み取り可能なほぼリアルタイムのメトリクスに処理します。 これらの統計は 15 か月間保存されますが、CloudWatch コンソールは検索を過去 2 週間に更新されたメトリクスに制限します (これにより、現在のジョブのみが表示されます)。 処理ジョブのメトリクスは /aws/sagemaker/ProcessingJobs 名前空間にあり、収集されるメトリクスは次のとおりです。 CPUUtilization
, MemoryUtilization
, GPUUtilization
, GPUMemoryUtilization
, DiskUtilization
.
次のスクリーンショットは、先ほど見た処理ジョブの CloudWatch の例を示しています。
この例では、CPU とメモリの平均値 (CloudWatch のデフォルト) が表示されます。平均 CPU 使用率は 0.04%、メモリは 1.84%、ディスク使用率は 13.7% です。 サイズを適切に設定するには、CPU とメモリの最大使用量を常に考慮してください (この例では、最初の 98 分間で最大 CPU 使用率は 3% でした)。 一般的なルールとして、CPU とメモリの最大使用量が常に 40% 未満であれば、マシンを安全に半分に削減できます。 たとえば、ml.c5.4xlarge インスタンスを使用していた場合、ml.c5.2xlarge に移行すると、コストを 50% 削減できます。
データ ラングラーのジョブ
データラングラーはの機能です Amazon SageMakerスタジオ これは、データの探索と処理のための反復可能でスケーラブルなソリューションを提供します。 Data Wrangler インターフェイスを使用して、データを対話的にインポート、分析、変換、特徴付けします。 これらのステップは、Data Wrangler ジョブで使用できるレシピ (.flow ファイル) にキャプチャされます。 これにより、同じデータ変換をデータに再適用したり、ML パイプラインの一部として、または独立して分散バッチ データ処理ジョブに拡張したりすることができます。
Studio での Data Wrangler アプリの最適化に関するガイダンスについては、このシリーズのパート 2 を参照してください。
このセクションでは、Data Wrangler ジョブの最適化に焦点を当てます。
データ ラングラーが使用するもの SageMaker Spark 処理ジョブ Data Wrangler で管理されるコンテナーを使用します。 このコンテナは、ジョブ内の .flow ファイルからの指示を実行します。 他の処理ジョブと同様に、Data Wrangler は、使用期間とそのインスタンスに接続されているプロビジョニングされたストレージに基づいて、選択したインスタンスに対して料金を請求します。
Cost Explorer では、使用量タイプにフィルターを適用することで、Data Wrangler ジョブのコストをフィルターできます。 これらの使用タイプの名前は次のとおりです。
REGION-processing_DW:instanceType
(例えば、USE1-processing_DW:ml.m5.large
)REGION-processing_DW:VolumeUsage.gp2
(例えば、USE1-processing_DW:VolumeUsage.gp2
)
Cost Explorer で Data Wrangler のコストを表示するには、SageMaker を使用するようにサービスをフィルタリングし、 使用タイプを選択してください processing_DW
プレフィックスを付けてメニューのリストを選択します。 これにより、インスタンスの使用量 (時間) とストレージ ボリューム (GB) の両方に関連するコストが表示されます。 (Studio Data Wrangler のコストを確認したい場合は、使用量のタイプをフィルタリングできます。 Studio_DW
プレフィックス。)
Data Wrangler ジョブ インスタンスの適切なサイズとスケジュールを設定する
現時点では、Data Wrangler はインスタンス サイズが ml.m5xlarge、ml.m5.4xlarge、および ml.m5.12xlarge の m5.24 インスタンスのみをサポートしています。 分散ジョブ機能を使用して、ジョブのコストを微調整できます。 たとえば、350 GiB の RAM を必要とするデータセットを処理する必要があるとします。 4xlarge (128 GiB) および 12xlarge (256 GiB) は処理できない可能性があるため、m5.24xlarge インスタンス (768 GiB) を使用することになります。 ただし、5.12 つの m2xlarge インスタンス (256 * 512 GiB = 40 GiB) を使用するとコストを 5.4% 削減でき、または 3 つの m128xlarge インスタンス (384 * 50 GiB = 5.24 GiB) を使用すると mXNUMXxlarge のコストを XNUMX% 節約できます。インスタンスのコスト。 これらは推定値であり、分散処理により、全体の実行時間に影響を与えるオーバーヘッドが発生する可能性があることに注意してください。
インスタンスタイプを変更するときは、必ず更新してください。 スパーク構成 それに応じて。 たとえば、プロパティを使用して構成された初期 ml.m5.4xlarge インスタンス ジョブがあるとします。 spark.driver.memory
2048に設定すると、 spark.executor.memory
55742 に設定し、後で ml.m5.12xlarge にスケールアップする場合は、これらの構成値を増やす必要があります。そうしないと、処理ジョブのボトルネックになります。 これらの変数は、Data Wrangler GUI または構成パスに追加された構成ファイルで更新できます (次の例を参照)。
Data Wrangler のもう XNUMX つの魅力的な機能は、次の機能です。 スケジュールされたジョブを設定する。 データを定期的に処理している場合は、処理ジョブを自動的に実行するスケジュールを作成できます。 たとえば、新しいデータを取得したときに処理ジョブを自動的に実行するスケジュールを作成できます (例については、「 AmazonS3にエクスポートする or Amazon SageMaker 機能ストアへのエクスポート)。 ただし、スケジュールを作成すると、Data Wrangler によってスケジュールが作成されることに注意してください。 eventRule
イベントブリッジで。 これは、作成したイベント ルール (および処理ジョブの実行に使用されるインスタンス) に対しても料金が発生することを意味します。 詳細については、「」を参照してください。 Amazon EventBridge の料金.
まとめ
この投稿では、前処理時のコスト分析とベスト プラクティスに関するガイダンスを提供しました。
SageMaker Processing ジョブと Data Wrangler ジョブを使用したデータ。 前処理と同様に、ML モデルの構築、トレーニング、実行には多くのオプションと構成設定があり、不必要なコストがかかる可能性があります。 したがって、機械学習が業界全体で強力なツールとしての地位を確立するにつれて、ML ワークロードはコスト効率を維持する必要があります。
SageMaker は、ML パイプラインの各ステップを容易にするための幅広く奥深い機能セットを提供します。
この堅牢性により、パフォーマンスや俊敏性を損なうことなく、継続的にコストを最適化する機会も得られます。
著者について
ディーパリ・ラジャレ AWS のシニア AI/ML スペシャリストです。 彼女は企業顧客と協力して、AWS エコシステムで AI/ML ソリューションをデプロイおよび維持するためのベストプラクティスに関する技術ガイダンスを提供しています。 彼女は、NLP とコンピューター ビジョンを含むさまざまな深層学習のユースケースについて、幅広い組織と協力してきました。 彼女は、組織が生成 AI を活用して使用エクスペリエンスを向上できるようにすることに情熱を注いでいます。 余暇には、映画、音楽、文学を楽しんでいます。
ユリ・ローゼンバーグ は、ヨーロッパ、中東、アフリカの AI および ML スペシャリスト テクニカル マネージャーです。 Uri はイスラエルに拠点を置き、ML に関するあらゆる分野で企業顧客が大規模に設計、構築、運用できるよう支援することに取り組んでいます。 余暇には、サイクリング、ハイキング、夕日鑑賞 (少なくとも XNUMX 日 XNUMX 回) を楽しんでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 未来を鋳造する w エイドリエン・アシュリー。 こちらからアクセスしてください。
- PREIPO® を使用して PRE-IPO 企業の株式を売買します。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/part-3-analyze-amazon-sagemaker-spend-and-determine-cost-optimization-opportunities-based-on-usage-part-3-processing-and-data-wrangler-jobs/
- :持っている
- :は
- :not
- $UP
- 1
- 100
- 13
- 視聴者の38%が
- 2021
- 7
- a
- 能力
- できる
- 私たちについて
- アクセス
- アクセス
- 越えて
- 添加
- NEW
- 高度な
- 影響を及ぼす
- アフリカ
- 後
- AI
- AI / ML
- すべて
- ことができます
- また
- しかし
- 常に
- Amazon
- Amazonレッドシフト
- アマゾンセージメーカー
- Amazon Webサービス
- an
- 分析
- 分析します
- 分析する
- および
- 別の
- どれか
- API
- アプリ
- 適用
- アプローチ
- です
- AS
- At
- 自動的に
- 平均
- AWS
- ベース
- BE
- なぜなら
- BEST
- ベストプラクティス
- より良いです
- の間に
- ビッグ
- 両言語で
- 持って来る
- ビルド
- 建物
- by
- 缶
- 機能
- 捕捉した
- 例
- 変化
- 荷担した
- 課金
- チェック
- 選択する
- 選択する
- クライアント
- コード
- コマンドと
- 一般に
- 説得力のある
- 完了
- 複雑な
- 妥協する
- 計算
- 計算
- コンピュータ
- Computer Vision
- 検討
- 領事
- コンテナ
- コンテナ
- 続ける
- 連続的な
- 費用
- コスト効率の良い
- コスト
- 可能性
- 作ります
- 作成します。
- 作成
- 電流プローブ
- カスタム
- Customers
- カット
- データ
- データの準備
- データ処理
- データセット
- 中
- 取引
- 取引
- 深いです
- 深い学習
- デフォルト
- 厳しい
- 展開します
- 展開する
- 設計
- 設計
- 決定する
- 開発
- 開発
- 異なります
- 直接に
- 配布
- do
- ダウンロード
- ドライバー
- 原因
- デュレーション
- 各
- 前
- 簡単に
- 東
- エコシステム
- 効率的な
- 努力
- どちら
- 排除
- エンパワー
- エンパワーメント
- 可能
- 有効にする
- エンジニアリング
- 高めます
- 確実に
- 入る
- Enterprise
- 環境
- 特に
- 確立する
- 見積もり
- ヨーロッパ
- 評価する
- 評価
- イベント
- あらゆる
- 例
- 例
- 体験
- 探査
- エクスプローラ
- エキス
- 容易化する
- 実際
- 要因
- 要因
- Failed:
- 家族
- 速いです
- 特徴
- 特徴
- File
- filter
- フィルタリング
- 名
- 柔軟性
- フロー
- フォーカス
- フォロー中
- 次
- 発見
- フレームワーク
- から
- 完全に
- function
- 利得
- 生々しい
- 生成AI
- 取得する
- 素晴らしい
- ガイダンス
- 半分
- 持ってる
- he
- 助けます
- 助けました
- ことができます
- 彼女の
- ハイ
- ハイレベル
- 彼の
- 歴史的
- 保持している
- HOURS
- 認定条件
- How To
- しかしながら
- HTML
- HTTP
- HTTPS
- 人間
- 何百
- 識別する
- if
- 実装する
- import
- 重要性
- 重要
- 改善します
- in
- 間違って
- 増加した
- 単独で
- 産業
- 情報
- インフラ関連事業
- 初期
- 洞察
- 統合された
- 統合
- インタフェース
- 解釈
- に
- 紹介する
- 概要
- 関与
- イスラエル
- 問題
- IT
- ITS
- 自体
- ジョブ
- Jobs > Create New Job
- JPG
- 保管
- 大
- 姓
- 後で
- 打ち上げ
- 発射
- つながる
- LEARN
- 学んだ
- 学習
- less
- レッスン
- 教訓
- 活用します
- ライブラリ
- ような
- ライム
- 制限
- リスト
- レポート
- 負荷
- ローカル
- 場所
- ログ
- 探して
- 機械
- 機械学習
- 保守
- 主要な
- make
- マネージド
- マネージャー
- 義務的な
- 多くの
- 五月..
- 手段
- メモリ
- 言及した
- メニュー
- 方法
- メソッド
- メトリック
- 真ん中
- 中東
- かもしれない
- 移行中
- 最小
- 分
- 行方不明
- ML
- MLOps
- モード
- モデル
- 瞬間
- ヶ月
- 他には?
- 動画
- の試合に
- 音楽を聴く際のスピーカーとして
- 名前付き
- 名
- 必要
- ニーズ
- 新作
- NLP
- いいえ
- 数
- of
- 提供
- オファー
- 頻繁に
- on
- かつて
- もの
- の
- 操作する
- 機会
- 機会
- 最適化
- 最適化
- 最適化
- オプション
- or
- 注文
- 組織
- さもないと
- 私たちの
- でる
- 出力
- 全体
- 自分の
- パラメーター
- 部
- 情熱的な
- path
- パフォーマンス
- パイプライン
- 極めて重要な
- 計画
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポスト
- 投稿
- 強力な
- プラクティス
- 準備
- 準備
- 準備中
- 価格設定
- 先を見越した
- プロセス
- ラボレーション
- 処理
- プロセッサ
- 作り出す
- プログラミング
- プロパティ
- 証明する
- 提供します
- 提供
- は、大阪で
- 提供
- パブリッシュ
- 目的
- クイック
- RAM
- 範囲
- Raw
- リーディング
- レシピ
- 推奨する
- 減らします
- 軽減
- 関連する
- 残る
- 繰り返し可能
- 必要とする
- 必要
- リソース
- それぞれ
- 結果
- レビュー
- 右
- 丈夫
- 職種
- ルール
- ルール
- ラン
- ランニング
- 安全に
- セージメーカー
- 同じ
- Save
- ド電源のデ
- 規模
- スケジュール
- 予定の
- scikit-学ぶ
- スクリプト
- SDDK
- を検索
- セクション
- 選択
- 選択
- シニア
- シリーズ
- サービス
- サービス
- セッションに
- 設定
- 設定
- いくつかの
- シェアする
- 彼女
- すべき
- 表示する
- 示されました
- 示す
- 作品
- 同様の
- 簡単な拡張で
- 単純化
- 単に
- 同時に
- から
- サイズ
- サイズ
- より小さい
- So
- 溶液
- ソリューション
- 一部
- ソース
- ソース
- スパーク
- 専門家
- 特に
- スピード
- 過ごす
- start
- 開始
- 統計
- Status:
- 手順
- ステップ
- まだ
- ストレージ利用料
- ストリーム
- 研究
- そのような
- 供給
- サポート
- プロアクティブをサポート
- サポート
- サポート
- 取り
- 仕事
- タスク
- チーム
- 技術的
- 条件
- test
- より
- それ
- ソース
- アプリ環境に合わせて
- それら
- その後
- そこ。
- それによって
- したがって、
- ボーマン
- 彼ら
- 物事
- サードパーティ
- この
- それらの
- 三
- 時間
- 〜へ
- 取った
- ツール
- トータル
- トレーニング
- 最適化の適用
- 変換
- 2
- type
- 不要な
- アップデイト
- 更新しました
- アップロード
- 使用法
- つかいます
- 中古
- 使用されます
- 検証
- 値
- 価値観
- さまざまな
- バージョン
- 詳しく見る
- 視認性
- ビジョン
- ボリューム
- 欲しいです
- ました
- 見ている
- 仕方..
- 方法
- we
- ウェブ
- Webサービス
- ウィークス
- WELL
- した
- いつ
- which
- ワイド
- 広い範囲
- 意志
- 以内
- 無し
- 働いていました
- ワークフロー
- 作品
- You
- あなたの
- あなた自身
- ゼファーネット