ビルトイン アマゾンセージメーカー XGBoostアルゴリズムは、人気のあるものを実行するためのマネージドコンテナを提供します XGブースト 機械学習(ML)フレームワーク。分散トレーニング、大規模データセットのデータセットシャーディングなど、高度なトレーニングや推論機能をサポートする便利さが追加されています。 A/Bモデルのテストまたは マルチモデル推論 エンドポイント。 この強力なアルゴリズムを拡張して、さまざまな要件に対応することもできます。
コードと依存関係を単一のコンテナーにパッケージ化することは、長期的なコードの保守、再現性、および監査の目的のための便利で堅牢なアプローチです。 コンテナーの変更は、ベースコンテナーに直接忠実に従い、ベースコンテナーで既にサポートされている既存の機能の重複を回避します。 この投稿では、SageMaker XGBoostアルゴリズムコンテナーの内部動作を確認し、コンテナーを直接カスタマイズするための実用的なスクリプトを提供します。
SageMakerXGBoostコンテナ構造
SageMakerの組み込みXGBoostアルゴリズムは、スタンドアロンコンテナとしてパッケージ化されています。 GitHubで利用可能、および開発者向けのApache2.0オープンソースライセンスの下で拡張できます。 コンテナは オープンソースのXGBoostアルゴリズム 他のAWSクラウドサービスと統合されたSageMaker環境でアルゴリズムを実行するための補助ツール。 これにより、さまざまなXGBoostモデルをトレーニングできます データソース、make バッチ予測 オフラインデータで、またはホスト 推論エンドポイント リアルタイムで パイプライン.
コンテナは、さまざまなエントリポイントでのトレーニングと推論の操作をサポートします。 推論モードの場合、エントリはのメイン関数にあります。 Serving.pyスクリプト。 リアルタイムの推論サービングの場合、コンテナは フラスコベース ウェブサーバー ときに 呼び出された、データを含むHTTPエンコードされたリクエストを受信し、データをXGBoostにデコードします Dマトリックス フォーマット、 モデルをロードします、およびを返します HTTPエンコードされた応答。 これらのメソッドは、 スコアリングサービス クラス。これは、スクリプトモードを介して大幅にカスタマイズすることもできます(以下の付録を参照)。
トレーニングモード(アルゴリズムモード)のエントリポイントは、 トレーニング.py。 main関数は、トレーニング環境をセットアップし、トレーニングジョブ関数を呼び出します。 分散または単一ノードのトレーニング、または相互検証などのユーティリティを可能にするのに十分な柔軟性があります。 トレーニングプロセスの中心は、 電車の仕事 機能。
コンテナをパッケージ化するDockerファイルは GitHubレポ。 コンテナはXNUMXつのステップで構築されることに注意してください。 ベース コンテナが最初に構築され、次に ファイナル 上のコンテナ。
ソリューションの概要
ソースコードを使用してコンテナを変更および再構築できます。 ただし、これには、すべての依存関係とパッケージを最初から収集して再構築することが含まれます。 この投稿では、すでに構築され、公開されているSageMakerXGBoostアルゴリズムのコンテナーイメージの上にコンテナーを直接変更する、より簡単なアプローチについて説明します。
このアプローチでは、 プル パブリックSageMakerXGBoostイメージのコピーを作成し、スクリプトを変更するかパッケージを追加して、その上にコンテナーを再構築します。 変更されたコンテナは、プライベートリポジトリに保存できます。 このようにして、中間の依存関係を再構築することを避け、代わりに、公式コンテナーにパッケージ化された既に構築されたライブラリーの上に直接構築します。
次の図は、パブリックベースイメージのプル、イメージの変更と再構築、およびプライベートへのアップロードに使用されるスクリプトの概要を示しています。 Amazon エラスティック コンテナ レジストリ (Amazon ECR)リポジトリ。 The bashスクリプト この投稿の添付コードでは、図に示されているすべてのワークフローステップを実行します。 付随する ノート は、SageMaker XGBoostアルゴリズムの特定のバージョンのURIが最初に取得され、 bashスクリプト、イメージ内のXNUMXつのPythonスクリプトを置き換えて再構築し、変更したイメージをプライベートAmazonECRリポジトリにプッシュします。 必要に応じて、付随するコードを変更できます。
前提条件
GitHubリポジトリ この投稿に付随するコードが含まれています。 あなたは実行することができます サンプルノート AWSアカウントで、または提供されたを使用して AWS CloudFormation SageMakerノートブックを使用してノートブックをデプロイするためのスタック。 次の前提条件が必要です。
- AWSアカウント。
- SageMakerバッチ変換およびトレーニングジョブを実行するために必要な権限、およびAmazonECR権限。 CloudFormationテンプレートはサンプルを作成します AWS IDおよびアクセス管理 (IAM)役割。
ソリューションを展開する
AWS CloudFormationを使用してソリューションリソースを作成するには、 発射スタック:
スタックは、GitHubリポジトリのクローンを作成するように事前構成されたSageMakerノートブックをデプロイします。 ウォークスルー ノート 特定のバージョンのパブリックSageMakerXGBoostイメージをプルし、それを変更し、カスタムコンテナをプライベートAmazonECRリポジトリにプッシュする手順が含まれています。 ノートブックは公衆を使用します アワビデータセット サンプルとして、SageMaker XGBoost組み込みトレーニングモードを使用してモデルをトレーニングし、このモデルをカスタムイメージで再利用して、SHAP値とともに推論を生成するバッチ変換ジョブを実行します。
まとめ
SageMakerの組み込みアルゴリズムは、さまざまな機能を提供し、Apache2.0オープンソースライセンスの下でさらに拡張できます。 この投稿では、SageMaker XGBoostアルゴリズムの本番組み込みコンテナーを拡張して、バックワードコードやAPI互換性などの本番要件を満たす方法を確認しました。
サンプルノートブックとヘルパー スクリプト SageMakerXGBoostコンテナイメージを希望どおりにカスタマイズするための便利な開始点を提供します。 試してみる!
付録:スクリプトモード
スクリプトモード 入力の変換とモデルのロードを担当する関数を置き換えるためのインターフェースを提供することにより、多くのSageMaker組み込みアルゴリズムを変更する方法を提供します。 スクリプトモードは、コンテナを直接変更するほど柔軟ではありませんが、組み込みのアルゴリズムをカスタマイズするための完全なPythonベースのルートを提供し、直接操作する必要はありません。 デッカー.
スクリプトモードでは、 user-module
データのデコード、モデルのロード、および予測をカスタマイズするために提供されています。 ユーザーモジュールは、 transformer_fn
リクエストの処理からレスポンスの準備までのすべての側面を処理します。 または定義する代わりに transformer_fn
、カスタムメソッドを提供できます model_fn
, input_fn
, predict_fn
, output_fn
モデルのロードとデコード、および予測用の入力の準備を個別にカスタマイズします。 スクリプトモードの詳細については、を参照してください。 SageMakerスクリプトモードで独自のモデルを持参.
著者について
ペイマンラザギ AWSのデータサイエンティストです。 彼はトロント大学で情報理論の博士号を取得し、ロサンゼルスの南カリフォルニア大学(USC)で博士研究員を務めました。 AWSに参加する前は、PeymanはQualcommのスタッフシステムエンジニアであり、多くの注目すべき国際電気通信規格に貢献していました。 彼は、統計およびシステムエンジニアリングの分野で査読されたいくつかの科学研究記事を執筆しており、仕事以外での子育てやロードサイクリングを楽しんでいます。
- "
- 100
- アクセス
- 対応する
- 高度な
- アルゴリズム
- アルゴリズム
- すべて
- 既に
- Amazon
- API
- アプローチ
- AREA
- 物品
- AWS
- ビルド
- 内蔵
- カリフォルニア州
- 選択する
- class
- クラウド
- クラウドサービス
- コード
- 収集
- 完全に
- コンテナ
- 含まれています
- 利便性
- 便利
- 作成します。
- カスタム
- データ
- データサイエンティスト
- 展開します
- 配備する
- 異なります
- 直接に
- 話し合います
- 配布
- デッカー
- エンジニア
- 環境
- 例
- 伸ばす
- 特徴
- フィギュア
- 名
- フレキシブル
- フォロー中
- 形式でアーカイブしたプロジェクトを保存します.
- 発見
- フレームワーク
- function
- さらに
- GitHubの
- 素晴らしい
- 保持している
- 認定条件
- How To
- HTTPS
- アイデンティティ
- 画像
- 情報
- 統合された
- インタフェース
- 世界全体
- IT
- ジョブ
- Jobs > Create New Job
- 学習
- ライセンス
- 長期的
- ロサンゼルス
- 機械
- 機械学習
- 作る
- 作成
- マネージド
- ML
- モデル
- 他には?
- ノート
- 数
- 公式
- オンライン
- 業務執行統括
- その他
- 自分の
- ポイント
- 人気
- 強力な
- 予測
- 予測
- プライベート
- プロセス
- 作り出す
- 生産
- 提供します
- は、大阪で
- 提供
- 公共
- 目的
- への
- 倉庫
- 要求
- 要件
- 研究
- リソース
- 応答
- 責任
- 収益
- レビュー
- ルート
- ラン
- 科学者
- サービス
- サービング
- シャーディング
- ソフトウェア
- 溶液
- ソースコード
- 南部の
- スタック
- 規格
- 統計
- サポート
- 支援する
- サポート
- システム
- ソース
- 介して
- 一緒に
- 豊富なツール群
- top
- トロント
- トレーニング
- 列車
- 最適化の適用
- 変換
- 大学
- つかいます
- 多様
- Wikipedia
- 仕事
- でしょう