アマゾンセージメーカー フルマネージドの機械学習 (ML) サービスです。 SageMaker を使用すると、データ サイエンティストと開発者は ML モデルを迅速かつ簡単に構築してトレーニングし、本番環境でホストされている環境に直接デプロイできます。 Sagemaker は、統合された Jupyter オーサリング ノートブック インスタンスを提供し、探索と分析のためにデータ ソースに簡単にアクセスできるようにするため、サーバーを管理する必要はありません。 また、分散環境で非常に大きなデータに対して効率的に実行するように最適化された一般的な ML アルゴリズムも提供します。
SageMaker では、ML モデルのトレーニング データが次のいずれかに存在する必要があります。 Amazon Simple Storage Service (Amazon S3)、Amazon Elastic File System (Amazon EFS)、または Amazon FSx for Lustre (詳細については、トレーニング データへのアクセスを参照してください). サポートされている 3 つのストレージ サービスの外部に保存されたデータを使用してモデルをトレーニングするには、最初にデータをこれらのサービスの XNUMX つ (通常は Amazon SXNUMX) に取り込む必要があります。 これには、データ パイプラインの構築が必要です (次のようなツールを使用)。 AmazonSageMakerデータラングラー) データを Amazon S3 に移動します。 ただし、このアプローチでは、データ ストレージ メディアのライフサイクルの管理、アクセス制御の作成、データ監査などの点で、データ管理の課題が生じる可能性があります。これらはすべて、トレーニング ジョブ中にトレーニング データをステージングするためのものです。 このような状況では、Amazon S3 でのデータの中間ストレージなしで、一時的なトレーニングインスタンスに接続された一時的なストレージメディアで SageMaker がデータにアクセスできるようにすることが望ましい場合があります。
この投稿は、これを使用してこれを行う方法を示しています スノーフレーク データソースとして、Snowflake から直接データを SageMaker Training ジョブインスタンスにダウンロードすることによって。
ソリューションの概要
私たちは、使用 カリフォルニア州住宅データセット をこの投稿のトレーニング データセットとして使用し、ML モデルをトレーニングして、各地区の住宅価格の中央値を予測します。 このデータを新しいテーブルとして Snowflake に追加します。 最初にデータを S3 バケットにダウンロードするのではなく、Snowflake テーブルからトレーニング インスタンスにデータを直接ダウンロードするカスタム トレーニング コンテナを作成します。 データがトレーニング インスタンスにダウンロードされた後、カスタム トレーニング スクリプトはデータ準備タスクを実行し、次に、 XGBoost 推定器. この投稿のすべてのコードは、 GitHubレポ.
次の図は、SageMaker で ML モデルをトレーニングするためのデータ ソースとして Snowflake を使用するための提案されたソリューションの高レベル アーキテクチャを表しています。
ワークフローの手順は次のとおりです。
- SageMaker ノートブックと AWS IDおよびアクセス管理 SageMaker がアクセスできるようにするための適切なアクセス許可を持つ (IAM) ロール Amazon エラスティック コンテナ レジストリ (Amazon ECR)、Secrets Manager、および AWS アカウント内のその他のサービス。
- Snowflake アカウントの認証情報を AWS Secrets Manager に保存します。
- Snowflake アカウントのテーブルにデータを取り込みます。
- ML モデル トレーニング用のカスタム コンテナ イメージを作成し、Amazon ECR にプッシュします。
- ML モデルをトレーニングするための SageMaker Training ジョブを起動します。 トレーニング インスタンスは、Secrets Manager から Snowflake 資格情報を取得し、これらの資格情報を使用して Snowflake からデータセットを直接ダウンロードします。 これは、データを最初に S3 バケットにダウンロードする必要をなくすステップです。
- トレーニングされた ML モデルは S3 バケットに保存されます。
前提条件
この投稿で提供されているソリューションを実装するには、 AWSアカウント スノーフレーク アカウント SageMaker に精通していること。
SageMaker ノートブックと IAM ロールを設定する
AWS CloudFormation を使用して、SageMaker ノートブックを作成します。 aws-aiml-blogpost-sagemaker-snowflake-example
と呼ばれる IAM ロール SageMakerSnowFlakeExample
。 選択してください 発射スタック リソースをデプロイするリージョンの。
Secrets Manager に Snowflake 認証情報を保存する
Snowflake 認証情報を Secrets Manager にシークレットとして保存します。 シークレットの作成方法については、次を参照してください。 Create an AWS Secrets Manager secret
.
- 秘密に名前を付ける
snowflake_credentials
. これが必要なのは、snowflake-load-dataset.ipynb
秘密がそれと呼ばれることを期待しています。 - XNUMX つのキーを持つキーと値のペアとしてシークレットを作成します。
- ユーザ名 – Snowflake ユーザー名。
- password – Snowflake ユーザー名に関連付けられたパスワード。
Snowflake アカウントのテーブルにデータを取り込む
データを取り込むには、次の手順を実行します。
- SageMakerコンソールで、 ノートブック ナビゲーションペインに表示されます。
- ノートブック aws-aiml-blogpost-sagemaker-snowflake-example を選択し、 JupyterLabを開く.
- 選択する
snowflake-load-dataset.ipynb
JupyterLab で開きます。 このノートブックは、 カリフォルニア州住宅データセット スノーフレークテーブルに。 - ノートブックで、次のセルの内容を編集して、プレースホルダーの値を Snowflake アカウントに一致する値に置き換えます。
- [実行] メニューで、 すべてのセルを実行 このノートブックでコードを実行します。 これにより、データセットがノートブックにローカルにダウンロードされ、Snowflake テーブルに取り込まれます。
ノートブックの次のコード スニペットは、データセットを Snowflake に取り込みます。 を参照してください snowflake-load-dataset.ipynb
完全なコードのノート。
- すべてのセルがエラーなしで実行されたら、ノートブックを閉じます。 データが Snowflake で利用できるようになりました。 次のスクリーンショットは、
california_housing
Snowflakeで作成されたテーブル。
実行する sagemaker-snowflake-example.ipynb
ノート
このノートブックは、Snowflake 接続を使用してカスタム トレーニング コンテナを作成し、Amazon S3 にステージングせずに Snowflake からトレーニング インスタンスの一時ストレージにデータを抽出し、データに対して分散データ並列 (DDP) XGBoost モデル トレーニングを実行します。 このような小さなデータセットでのモデル トレーニングには、DDP トレーニングは必要ありません。 これは、最近リリースされた別の SageMaker 機能を説明するためにここに含まれています。
トレーニング用のカスタム コンテナを作成する
ここで、ML モデル トレーニング ジョブ用のカスタム コンテナーを作成します。 Docker コンテナーを作成するには、root アクセスが必要であることに注意してください。 この SageMaker ノートブックは、ルート アクセスを有効にしてデプロイされました。 企業組織のポリシーでクラウド リソースへのルート アクセスが許可されていない場合は、次の Docker ファイルとシェル スクリプトを使用して別の場所 (ラップトップなど) に Docker コンテナを構築し、それを Amazon ECR にプッシュすることができます。 SageMaker XGBoost コンテナー イメージに基づくコンテナーを使用します。 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
以下を追加します。
- Python 用 Snowflake コネクタ Snowflake テーブルからトレーニング インスタンスにデータをダウンロードします。
- Secrets Manager に接続して Snowflake 資格情報を取得するための Python スクリプト。
Snowflake コネクタと Python スクリプトを使用すると、ML モデルのトレーニングにこのコンテナー イメージを使用するユーザーは、トレーニング スクリプトの一部としてこのコードを記述する必要がなくなり、既に利用可能なこの機能を使用できるようになります。
以下は、トレーニング コンテナーの Dockerfile です。
コンテナ イメージがビルドされ、Amazon ECR にプッシュされます。 この画像は、ML モデルのトレーニングに使用されます。
SageMaker Training ジョブを使用して ML モデルをトレーニングする
コンテナ イメージを正常に作成して Amazon ECR にプッシュしたら、それをモデル トレーニングに使用できるようになります。
- を使用して Snowflake からデータをダウンロードするための一連の Python スクリプトを作成します。 Python 用 Snowflake コネクタ、データを準備してから、
XGBoost Regressor
ML モデルをトレーニングします。 トレーニング データの中間ストレージとして Amazon S3 を使用する必要がないように、データをトレーニング インスタンスに直接ダウンロードするステップです。 - 各トレーニング インスタンスが Snowflake から同量のデータをダウンロードするように、トレーニング コードにデータのランダムなサブセットをダウンロードさせることで、分散データの並列トレーニングを促進します。 たとえば、50 つのトレーニング ノードがある場合、各ノードは Snowflake テーブルの行の XNUMX% のランダム サンプルをダウンロードします。次のコードを参照してください。
- 次に、トレーニング スクリプトを SageMaker SDK に提供します。
Estimator
を使用してトレーニング ジョブを実行するときに、作成するすべてのスクリプトをトレーニング コンテナに提供できるように、Estimator.fit
方法:詳細については、 Scikit-Learn トレーニング スクリプトを準備する.
- モデルのトレーニングが完了すると、トレーニング済みのモデルは
model.tar.gz
リージョンのデフォルトの SageMaker バケット内のファイル:
新しいデータで推論を取得するために、トレーニング済みのモデルをデプロイできるようになりました! 手順については、を参照してください。 エンドポイントを作成し、モデルをデプロイします。
クリーンアップ
今後料金が発生しないようにするには、リソースを削除してください。 これを行うには、IAM ロールと SageMaker ノートブックの作成に使用された CloudFormation テンプレートを削除します。
Snowflake コンソールから Snowflake リソースを手動で削除する必要があります。
まとめ
この投稿では、Snowflake テーブルに保存されているデータを SageMaker Training ジョブ インスタンスにダウンロードし、カスタム トレーニング コンテナを使用して XGBoost モデルをトレーニングする方法を示しました。 このアプローチにより、データを Amazon S3 にステージングすることなく、Snowflake をデータ ソースとして SageMaker ノートブックに直接統合できます。
詳細については、以下をご覧ください。 Amazon SageMaker Python SDK この投稿で提供されているサンプル実装と、ビジネスに関連するデータセットを使用してソリューションを構築します。 質問や提案がある場合は、コメントを残してください。
著者について
アミット・アロラ は、アマゾン ウェブ サービスの AI および ML スペシャリスト アーキテクトであり、企業のお客様がクラウドベースの機械学習サービスを使用してイノベーションを迅速に拡大できるよう支援しています。 また、ワシントン DC のジョージタウン大学で MS データ サイエンスおよび分析プログラムの非常勤講師も務めています。
ディビア・ムラリダラン アマゾン ウェブ サービスのソリューション アーキテクトです。 彼女は、企業顧客がテクノロジーを使用してビジネス上の問題を解決できるよう支援することに情熱を注いでいます。 彼女はロチェスター工科大学でコンピュータ サイエンスの修士号を取得しています。 オフィスの外では、彼女は料理をしたり、歌ったり、植物を育てたりすることに時間を費やしています。
セルゲイ・エルモリン AWS のプリンシパル AIML ソリューション アーキテクトです。 以前は、Intel でディープラーニング、分析、ビッグデータ テクノロジのソフトウェア ソリューション アーキテクトを務めていました。 機械学習と人工知能に情熱を傾けるシリコン バレーのベテランである Sergey は、GPU が登場する前からニューラル ネットワークに興味を持っていました。彼は Hewlett-Packard で水晶振動子とセシウム原子時計の経年変化を予測するためにニューラル ネットワークを使用していました。 Sergey は、スタンフォード大学で MSEE と CS 証明書を取得し、カリフォルニア州立大学サクラメント校で物理学と機械工学の学士号を取得しています。 仕事以外では、ワイン作り、スキー、サイクリング、セーリング、スキューバ ダイビングを楽しんでいます。 Sergey はボランティアのパイロットでもあります。 エンジェルフライト.
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :は
- $UP
- 1
- 10
- 7
- 8
- a
- 私たちについて
- アクセス
- アクセス可能な
- 追加
- 後
- に対して
- 高齢化
- AI
- AIML
- アルゴリズム
- すべて
- ことができます
- 既に
- Amazon
- アマゾンFSx
- アマゾンセージメーカー
- Amazon Webサービス
- 量
- 分析
- 分析論
- および
- 別の
- アプローチ
- 適切な
- 建築
- です
- 人工の
- 人工知能
- AS
- 関連する
- At
- 監査
- オーサリング
- 利用できます
- AWS
- AWS CloudFormation
- ベース
- ベース
- BE
- なぜなら
- ビッグ
- ビッグデータ
- ビルド
- 建物
- 内蔵
- ビジネス
- by
- カリフォルニア州
- 呼ばれます
- 缶
- 細胞
- 証明書
- 挑戦する
- 課金
- 選択する
- クリーニング
- 時計
- クラウド
- コード
- コラム
- コラム
- コメント
- コマンドと
- コンプリート
- コンピュータ
- コンピュータサイエンス
- お問合せ
- 接続
- 領事
- コンテナ
- 含まれています
- 中身
- controls
- 作ります
- 作成した
- 作成します。
- 作成
- Credentials
- カスタム
- Customers
- データ
- データ管理
- データの準備
- データサイエンス
- データストレージ
- 日付時刻
- 日
- DDP
- 決定する
- 深いです
- 深い学習
- デフォルト
- 度
- 展開します
- 展開
- 開発者
- 直接に
- 配布
- 地区
- デッカー
- ドント
- ダウンロード
- ダウンロード
- 各
- 簡単に
- 効率良く
- どちら
- 排除
- 他の場所で
- 使用可能
- 奨励する
- エンドポイント
- エンジニアリング
- 確実に
- Enterprise
- 環境
- エラー
- 例
- 実行します
- 存在
- 期待する
- 探査
- 探る
- 抽出物
- 非常に
- 容易にする
- フェア
- 親しみ
- 特徴
- フィギュア
- File
- ファイナル
- 名
- フィット
- フォロー中
- 次
- から
- フル
- 完全に
- 機能性
- 未来
- 取得する
- 受け
- GitHubの
- 行く
- 成長
- 持ってる
- 持って
- 助け
- こちら
- ハイレベル
- 保持している
- 主催
- ホスト
- お家の掃除
- 住宅
- 認定条件
- How To
- しかしながら
- HTML
- HTTPS
- アイデンティティ
- 画像
- 実装する
- 実装
- import
- in
- include
- 含まれました
- index
- 情報
- イノベーション
- install
- 機関
- 説明書
- 統合する
- 統合された
- インテル
- インテリジェンス
- 興味がある
- IT
- ジョブ
- キー
- ノートパソコン
- 大
- 姓
- LEARN
- 学習
- コメントを残す
- wifecycwe
- ln
- 局部的に
- 機械
- 機械学習
- 管理します
- マネージド
- 管理
- マネージャー
- 管理する
- 手動で
- マッチング
- 機械的な
- メディア
- ミディアム
- メニュー
- 方法
- ML
- モデル
- 他には?
- MS
- 名
- ナビゲーション
- 必要
- ニーズ
- ネットワーク
- ニューラルネットワーク
- 新作
- 次の
- ノード
- ノート
- 数
- オブジェクト
- of
- Office
- on
- ONE
- 開いた
- 最適化
- 注文
- 組織
- その他
- 外側
- パッケージ
- パンダ
- ペイン
- 並列シミュレーションの設定
- 部
- 情熱
- 情熱的な
- パスワード
- 実行する
- パーミッション
- 物理学
- パイロット
- パイプライン
- プレースホルダー
- 植物
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポリシー
- 人口
- ポスト
- 予測する
- 準備
- 現在
- 前に
- 校長
- 問題
- 演奏曲目
- 提案された
- 提供します
- 提供
- は、大阪で
- 目的
- プッシュ
- プッシュ
- Python
- 質問
- すぐに
- ランダム
- 急速に
- むしろ
- 読む
- 最近
- 記録
- 軽減
- 地域
- リリース
- 関連した
- replace
- 表し
- の提出が必要です
- 必要
- リソース
- return
- 職種
- ルート
- 行
- ラン
- サクラメント
- セージメーカー
- セーリング
- Save
- 規模
- 科学
- 科学者たち
- scikit-学ぶ
- スクリプト
- SDDK
- 秘密
- サーバー
- サービス
- サービス
- セッションに
- 形状
- シェル(Shell)
- すべき
- 作品
- 重要
- シリコン
- シリコンバレー
- 簡単な拡張で
- から
- 状況
- 小さい
- So
- ソフトウェア
- 溶液
- ソリューション
- 解決する
- ソース
- ソース
- スペース
- 専門家
- ステージング
- start
- 都道府県
- ステートメント
- 手順
- ステップ
- ストレージ利用料
- 保存され
- サブネット
- 首尾よく
- そのような
- サポート
- サポート
- テーブル
- タスク
- テクノロジー
- テクノロジー
- template
- 条件
- それ
- ソース
- アプリ環境に合わせて
- それら
- ボーマン
- 三
- 介して
- 時間
- 〜へ
- 豊富なツール群
- トータル
- トレーニング
- 訓練された
- トレーニング
- 列車
- 一般的に
- 大学
- アップデイト
- us
- つかいます
- ユーザー
- users
- 谷
- 値
- 価値観
- ベテラン
- name
- ワシントン
- 仕方..
- ウェブ
- Webサービス
- which
- 誰
- 意志
- 以内
- 無し
- 仕事
- 書きます
- XGブースト
- You
- あなたの
- ゼファーネット