Amazon SageMakerを使用してSaaSプラットフォームを統合し、MLパワードアプリケーションを実現します
Using Amazon SageMaker, integrate SaaS platforms and create ML-powered applications.
Amazon SageMakerは、データの取り込み、変換、バイアスの測定、モデルのトレーニング、展開、管理など、幅広い機能を備えたエンドツーエンドの機械学習(ML)プラットフォームです。Amazon SageMaker Data Wrangler、Amazon SageMaker Studio、Amazon SageMaker Canvas、Amazon SageMaker Model Registry、Amazon SageMaker Feature Store、Amazon SageMaker Pipelines、Amazon SageMaker Model Monitor、Amazon SageMaker ClarifyなどのAmazon SageMakerの優れたコンピュートとサービスを利用することができます。多くの組織がSageMakerをMLプラットフォームとして選択しているのは、開発者やデータサイエンティスト向けの共通のツールセットを提供しているからです。AWSの独立系ソフトウェアベンダー(ISV)パートナーの多くは、SaaSプラットフォームのユーザーがSageMakerとそのさまざまな機能、トレーニング、展開、モデルレジストリを利用するための統合を既に構築しています。
この記事では、SaaSプラットフォームがSageMakerと統合することの利点、可能な統合の範囲、およびこれらの統合を開発するプロセスについて説明します。さらに、これらの統合を容易にするための最も一般的なアーキテクチャとAWSリソースについて詳しく説明します。これにより、ISVパートナーや他のSaaSプロバイダーが同様の統合を構築する際の市場参入までの時間を短縮し、SaaSプラットフォームのユーザーであるお客様がこれらの統合に関してSaaSプロバイダーと協力することを促進することを目指しています。
SageMakerとの統合の利点
SaaSプロバイダーがSageMakerとそのSaaSプラットフォームを統合することには、以下の利点があります:
- SaaSプラットフォームのユーザーは、SageMakerの包括的なMLプラットフォームを活用することができます
- ユーザーは、SaaSプラットフォーム内または外部のデータを使用してMLモデルを構築し、これらのMLモデルを利用することができます
- ユーザーは、SaaSプラットフォームとSageMakerの間でシームレスな体験を提供されます
- ユーザーは、Amazon SageMaker JumpStartで利用可能な基本モデルを活用して生成型AIアプリケーションを構築することができます
- 組織はSageMakerを標準化できます
- SaaSプロバイダーは、コアの機能に集中し、MLモデルの開発にSageMakerを提供できます
- SaaSプロバイダーは、AWSと共同ソリューションを構築し、市場に参入する基盤を持つことができます
SageMakerの概要と統合オプション
SageMakerには、MLライフサイクルの各ステップに対応するツールが用意されています。SaaSプラットフォームは、データのラベリングと準備からモデルのトレーニング、ホスティング、モデルの監視、管理まで、さまざまなコンポーネントを使用してSageMakerと統合することができます。顧客のAWSアカウントまたはSaaSのAWSアカウントのいずれかでMLライフサイクルのすべてまたは一部を実行し、AWS Identity and Access Management(IAM)ポリシーまたはサードパーティのユーザーベースのアクセスツールを使用してデータとモデルをアカウント間で共有することができます。この統合の柔軟性により、SageMakerは顧客とSaaSプロバイダーが標準化するための理想的なプラットフォームとなっています。
統合プロセスとアーキテクチャ
このセクションでは、統合プロセスを4つの主要なステージに分割し、一般的なアーキテクチャについて説明します。これらに加えて、一般的でないが他の統合ポイントも存在することに注意してください。
- データアクセス – SaaSプラットフォームにあるデータがSageMakerからアクセスされる方法
- モデルのトレーニング – モデルがトレーニングされる方法
- モデルのデプロイとアーティファクト – モデルがデプロイされる場所と生成されるアーティファクト
- モデルの推論 – SaaSプラットフォームでの推論の方法
以下の図は、SageMakerが顧客のAWSアカウントで実行されている場合を想定しています。SageMakerがSaaSのAWSアカウントで実行されている場合でも、ほとんどの説明されたオプションは適用可能です。一部の場合、ISVは顧客のAWSアカウントにソフトウェアを展開する場合があります。これは通常、専用の顧客のAWSアカウントで行われます。つまり、SageMakerが実行されている顧客のAWSアカウントへのクロスアカウントアクセスが依然として必要です。
SaaSプラットフォームにあるデータがSageMakerからアクセスされる場合や、SaaSプラットフォームからMLモデルが呼び出される場合に、AWSアカウント間の認証をどのように実現するかはいくつかの異なる方法があります。推奨される方法はIAMロールを使用することです。別の方法として、アクセスキーIDとシークレットアクセスキーから構成されるAWSアクセスキーを使用する方法もあります。
データアクセス
SAASプラットフォーム内のデータには、SageMakerからアクセスするための複数のオプションがあります。データはSageMakerノートブック、SageMaker Data Wrangler、またはSageMaker Canvasからアクセスすることができます。一般的なデータアクセスオプションは次のとおりです:
- SageMaker Data Wrangler組み込みコネクタ – SageMaker Data Wranglerコネクタは、SaaSプラットフォームからデータをインポートし、MLモデルのトレーニングのために準備することを可能にします。このコネクタはAWSとSaaSプロバイダによって共同で開発されています。現在のSaaSプラットフォームのコネクタには、DatabricksとSnowflakeが含まれます。
- SAASプラットフォームのためのAmazon Athena Federated Query – Federated queriesを使用すると、ユーザーはSageMakerノートブックからカスタムコネクタを介してAmazon Athenaを使用してプラットフォームをクエリすることができます。このカスタムコネクタはSaaSプロバイダによって開発されます。
- Amazon AppFlow – Amazon AppFlowを使用すると、カスタムコネクタを使用してデータをAmazon Simple Storage Service(Amazon S3)に抽出し、その後SageMakerからアクセスすることができます。SaaSプラットフォームのコネクタは、AWSまたはSaaSプロバイダによって開発されることがあります。オープンソースのCustom Connector SDKを使用すると、PythonまたはJavaを使用してプライベート、共有、またはパブリックコネクタを開発することができます。
- SaaSプラットフォームSDK – SaaSプラットフォームにPython SDKなどのSDK(ソフトウェア開発キット)がある場合、これを使用してSageMakerノートブックからデータに直接アクセスすることができます。
- その他のオプション – これらに加えて、SaaSプロバイダがAPI、ファイル、またはエージェントを介してデータを公開しているかどうかによって、他のオプションが存在する場合があります。エージェントはAmazon Elastic Compute Cloud(Amazon EC2)またはAWS Lambdaにインストールすることができます。また、AWS Glueやサードパーティの抽出、変換、ロード(ETL)ツールを使用してデータの転送を行うこともできます。
以下の図は、データアクセスオプションのアーキテクチャを示しています。
モデルのトレーニング
モデルは、データサイエンティストによってSageMaker Studioでトレーニングされることもありますし、データサイエンティストではない人でもAmazon SageMaker Autopilotを使用してトレーニングされることもあります。また、ビジネスアナリストによってSageMaker Canvasでトレーニングされることもあります。SageMaker Autopilotは、特徴エンジニアリング、アルゴリズムの選択、ハイパーパラメータの設定など、MLモデルの構築における重要な作業を代替します。また、SaaSプラットフォームに直接統合することも比較的容易です。SageMaker Canvasは、MLモデルのトレーニングのためのノーコードビジュアルインターフェースを提供します。
さらに、データサイエンティストは、SageMaker JumpStartで利用可能な事前トレーニング済みモデルを使用することもできます。これには、Alexa、AI21 Labs、Hugging Face、Stability AIなどのソースからの基礎モデルが含まれます。これらのモデルを調整して、独自の生成型AIユースケースに適用することができます。
また、モデルは、モデルアーティファクトにアクセス可能で読み取り可能である限り、サードパーティやパートナーが提供するツール、サービス、およびインフラストラクチャでトレーニングすることもできます。
以下の図は、これらのオプションを示しています。
モデルの展開とアーティファクト
モデルのトレーニングとテストが完了した後、モデルをSageMakerモデルエンドポイントにデプロイするか、SageMakerからエクスポートしてSaaSプラットフォームのストレージにインポートすることができます。モデルは、pickle、joblib、およびONNX(Open Neural Network Exchange)などの一般的なMLフレームワークがサポートする標準形式で保存およびインポートすることができます。
MLモデルがSageMakerモデルエンドポイントに展開された場合、追加のモデルメタデータをSageMaker Model Registry、SageMaker Model Cards、またはS3バケット内のファイルに保存することができます。これには、モデルバージョン、モデルの入力と出力、モデルメトリクス、モデル作成日、推論仕様、データのラインナップ情報などが含まれます。モデルパッケージに利用可能なプロパティがない場合、データはカスタムメタデータとして保存されるか、S3ファイルに保存されます。
このようなメタデータを作成することで、SaaSプロバイダはMLモデルのエンドツーエンドのライフサイクルをより効果的に管理することができます。この情報は、SaaSプラットフォームのモデルログに同期させ、MLモデルに対する変更と更新を追跡するために使用することができます。その後、このログは、SaaSプラットフォームでそのMLモデルを使用するダウンストリームデータとアプリケーションを更新する必要があるかどうかを判断するために使用することができます。
以下の図は、このアーキテクチャを説明しています。
モデルの推論
SageMakerでは、MLモデルの推論には4つのオプションがあります:リアルタイム推論、サーバーレス推論、非同期推論、バッチ変換です。最初の3つの場合、モデルはSageMakerモデルエンドポイントにデプロイされ、SaaSプラットフォームはAWS SDKを使用してモデルを呼び出します。推奨されるオプションはPython SDKを使用することです。これらの各オプションの推論パターンは、predict()メソッドまたはpredict_async()メソッドを使用することで類似しています。ロールベースのアクセスにより、クロスアカウントアクセスを実現することができます。
Amazon API Gatewayでバックエンドを保護することも可能であり、これにより、保護されたプライベートネットワーク内でLambda関数を介してエンドポイントを呼び出すことができます。
バッチ変換の場合、まずSaaSプラットフォームからデータをバッチでカスタマーのAWSアカウントのS3バケットにエクスポートする必要があります。その後、このデータ上でバッチで推論を行います。推論は、トランスフォーマージョブまたはオブジェクトを作成し、データのS3ロケーションを指定してtransform()メソッドを呼び出すことで行われます。結果はデータセットとしてバッチでSaaSプラットフォームにインポートされ、バッチパイプラインジョブの一部としてプラットフォーム内の他のデータセットと結合されます。
推論の別のオプションは、SaaSアカウントのコンピュートクラスターで直接行うことです。これは、モデルがSaaSプラットフォームにインポートされている場合に該当します。この場合、SaaSプロバイダーは、ML推論に最適化されたさまざまなEC2インスタンスから選択することができます。
以下の図は、これらのオプションを示しています。
統合の例
いくつかのISVは、SaaSプラットフォームとSageMakerの間で統合を構築しています。いくつかの例統合について詳しくは、以下を参照してください:
- Amazon SageMakerを使用したデータ中心の人工知能の有効化:Snowflakeとの統合
- Amazon SageMaker AutopilotとDomoを使用した誰でものための機械学習
- AWSとDomino Data Labでモデルのエンドツーエンドの開発、モニタリング、およびメンテナンスのアーキテクチャ
結論
この記事では、SaaSプロバイダーがSageMakerをSaaSプラットフォームに統合する方法と理由について、プロセスを4つのパートに分けて一般的な統合アーキテクチャをカバーして説明しました。SageMakerとの統合を構築するためにSaaSプロバイダーはこれらのアーキテクチャを利用することができます。この記事でカバーされていない他のSageMakerコンポーネントを含むカスタム要件がある場合は、AWSアカウントチームに連絡してください。統合が構築され、検証された後、ISVパートナーはSageMakerのAWS Service Ready Programに参加し、さまざまな特典を利用することができます。
また、SaaSプラットフォームのユーザーであるお客様には、Amazon SageMakerとの統合に関心を登録し、AWSアカウントチームと連絡を取るようお願いいたします。これにより、SaaSプロバイダーの開発を進めるためのインスピレーションとプログレスに役立つことがあります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles