「Amazon SageMaker Canvasを使用したノーコードでSalesforce Data CloudでのMLの民主化」
「Amazon SageMaker Canvasを活用してSalesforce Data Cloudでの機械学習を手軽に民主化する方法」
この記事はSalesforce Einstein AIの製品ディレクター、Daryl Martis氏と共同執筆されました。
これはSalesforce Data CloudとAmazon SageMakerの統合について議論するシリーズの3番目の投稿です。
「Part 1」と「Part 2」では、Salesforce Data CloudとEinstein StudioがSageMakerと統合され、SageMakerを使用してSalesforceデータに安全にアクセスし、モデルを構築、トレーニング、展開してSageMaker上にホストされたエンドポイントにデプロイする方法を説明しています。SageMakerのエンドポイントはSalesforce Data Cloudに登録することで、Salesforceでの予測をアクティベートすることができます。
この投稿では、ビジネスアナリストや市民データサイエンティストが、コードを書かずにAmazon SageMaker Canvasで機械学習(ML)モデルを作成し、トレーニング済みモデルを展開してSalesforce Einstein Studioと統合し、パワフルなビジネスアプリケーションを作成する方法を示します。SageMaker CanvasはSalesforce Data Cloudからのデータへのアクセスと、わずかなクリックでモデルの構築、テスト、展開ができるノーコードの体験を提供します。SageMaker Canvasは、特徴の重要性やSHAP値を使用して予測結果を理解できるため、MLモデルによる予測を説明するのが簡単です。
- 「Amazon SageMaker Data Wranglerを使用して、生成型AIのデータ準備をシンプルにする」
- クラウド移行のマスタリング:成功させるためのベストプラクティス
- クラウドの保護:クラウドセキュリティのフロンティアを航海する
SageMaker Canvas
SageMaker Canvasは、ビジネスアナリストとデータサイエンスチームが、一行のコードを書かずにMLと生成AIモデルを作成および使用できるようにするツールです。SageMaker Canvasは、視覚的なポイントアンドクリックインターフェースを提供し、分類、回帰、予測、自然言語処理(NLP)、コンピュータビジョン(CV)の正確なML予測を生成します。また、Amazon Bedrockからのファウンデーションモデル(FM)やAmazon SageMaker JumpStartからのパブリックFMにアクセスし、生成AIソリューションのための内容生成、テキスト抽出、テキスト要約をサポートします。SageMaker Canvasを使用すると、任意の場所で構築されたMLモデルを持ち込んで、直接SageMaker Canvasで予測を生成することができます。
Salesforce Data CloudとEinstein Studio
Salesforce Data Cloudは、すべてのタッチポイントからの顧客データのリアルタイム更新をビジネスに提供するデータプラットフォームです。
Einstein Studioは、Salesforce Data Cloud上のAIツールへのゲートウェイです。Einstein Studioを使用すると、管理者やデータサイエンティストは、わずかなクリックまたはコードを使用して簡単にモデルを作成することができます。Einstein Studioの「ユーザーモデルの持ち込み(BYOM)」機能を使用すると、SageMakerなどの外部プラットフォームからカスタムまたは生成AIモデルをSalesforce Data Cloudに接続することができます。
ソリューションの概要
Salesforce Data Cloudのデータを使用してSageMaker Canvasを使用してMLモデルを構築する方法を示すために、製品の推奨を行う予測モデルを作成します。このモデルは、顧客のデモグラフィック、マーケティングの関与、購入履歴など、Salesforce Data Cloudに保存されている特徴を使用します。製品の推奨モデルは、Salesforce Data Cloudのデータを使用してSageMaker Canvasのノーコードユーザーインターフェースを使用して構築および展開されます。
Salesforce Data Cloudに格納されたサンプルデータセット(Amazon S3で保管)を使用します。Salesforce Data Cloudでこのデータセットを使用するには、Data CloudでAmazon S3データストリームを作成するを参照してください。モデルの作成には、次の属性が必要です:
- クラブ会員 – 顧客がクラブ会員かどうか
- キャンペーン – 顧客が参加しているキャンペーン
- 州 – 顧客の居住州または省
- 月 – 購入月
- ケースの数 – 顧客が発生させたケースの数
- ケースの返品 – 顧客が過去1年間に製品を返品したかどうか
- ケースの出荷破損 – 顧客が過去1年間に出荷された商品を破損させたかどうか
- 参加スコア – 顧客のエンゲージメントレベル(メーリングキャンペーンへの応答、オンラインストアへのログインなど)
- テニュア – 顧客と企業の関係の継続期間
- クリック数 – 購入の1週間前に顧客が行った平均クリック数
- 訪問ページ数 – 購入の1週間前に顧客が訪れた平均ページ数
- 購入商品 – 実際に購入された商品
以下の手順は、Salesforce Data Cloudコネクタを使用して企業データにアクセスし、予測モデルを構築するためのSageMaker Canvasでの使用方法の概要を示しています:
- Salesforceの連携アプリを構成して、SageMaker Canvasドメインを登録します。
- SageMaker CanvasでSalesforce Data CloudのOAuthを設定します。
- 内蔵のSageMaker Canvas Salesforce Data Cloudコネクタを使用してSalesforce Data Cloudデータに接続し、データセットをインポートします。
- SageMaker Canvasでモデルを構築してトレーニングします。
- SageMaker Canvasでモデルを展開し、予測を行います。
- SageMaker推論エンドポイントへのフロントエンド接続としてAmazon API Gatewayエンドポイントを展開します。
- Bring Your Own AI Models to Data Cloudを参照して、Einstein StudioでAPI Gatewayエンドポイントを登録します。
次の図は、ソリューションアーキテクチャの概要を示しています。
事前準備
始めるには、以下の前提条件を満たし、SageMakerドメインを作成してSageMaker Canvasを有効にする必要があります:
- Amazon SageMaker Studioドメインを作成します。詳しい手順は、Onboard to Amazon SageMaker Domainを参照してください。
- 作成されたドメインIDと実行ロールをメモして、ユーザープロファイルで使用されることを確認します。後続の手順でこのロールに権限を追加します。
次のスクリーンショットは、この投稿に作成したドメインを示しています。
- 次に、ユーザープロファイルに移動して編集を選択します。
- Amazon SageMaker Canvas設定セクションに移動し、Canvas基本権限を有効化を選択します。
- Canvasモデルへの直接デプロイを有効化とモデルレジストリの権限をすべてのユーザーに与えるを選択します。
これにより、SageMaker CanvasがSageMakerコンソール上のエンドポイントにモデルを展開できるようになります。これらの設定はドメインまたはユーザープロファイルレベルで構成できます。ユーザープロファイルの設定がドメインの設定より優先されます。
Salesforce連携アプリの作成または更新
次に、SageMaker CanvasからSalesforce Data CloudへのOAuthフローを有効化するために、Salesforce連携アプリを作成します。以下の手順を完了してください:
- Salesforceにログインし、Setupに移動します。
- App Managerを検索して、新しい連携アプリを作成します。
- 次の入力を行います:
- 連携アプリ名には名前を入力します。
- API名はデフォルトのままにします(自動的に入力されます)。
- 連絡先メールに連絡先メールアドレスを入力します。
- OAuth設定を有効化を選択します。
- Callback URLには、
https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default/lab
を入力し、SageMakerドメインのドメインIDとリージョンを指定します。
- 連携アプリに以下のスコープを設定します:
- APIを介してユーザーデータを管理する(
api
)。 - いつでもリクエストを実行する(
refresh_token
、offline_access
)。 - Salesforce Data CloudデータでANSI SQLクエリを実行する(Data
Cloud_query_api
)。 - Data Cloudプロファイルデータを管理する(
Data Cloud_profile_api
)。 - Identity URLサービスにアクセスする(
id
、profile
、email
、address
、phone
)。 - 一意のユーザー識別子にアクセスする(
openid
)。
- APIを介してユーザーデータを管理する(
- 連携アプリのIPリラクゼーション設定をIP制限を緩和に設定します。
SalesforceデータクラウドコネクターのOAuth設定を構成する
SageMaker Canvasは、Salesforce接続アプリからの接続情報を安全に保存するためにAWS Secrets Managerを使用します。SageMaker Canvasは、管理者が個々のユーザープロファイルまたはドメインレベルでOAuth設定を構成できるようにします。ドメインとユーザープロファイルの両方に秘密を追加できますが、SageMaker Canvasはまずユーザープロファイル内の秘密を探します。
OAuth設定を構成するには、次の手順を完了します:
- SageMakerコンソールで、ドメインまたはユーザープロファイルの設定の編集に移動します。
- ナビゲーションペインでCanvas設定を選択します。
- OAuthの設定の下で、データソースとしてSalesforceデータクラウドを選択します。
- Secretの設定では、新しい秘密を作成するか、既存の秘密を使用できます。この例では、Salesforce接続アプリのクライアントIDとクライアントシークレットを入力し、新しい秘密を作成します。
SageMaker CanvasでOAuthを有効にする詳細については、Salesforceデータクラウド用のOAuthの設定を参照してください。
これにより、SalesforceデータクラウドからSageMaker Canvasへのデータアクセスを有効にするための設定が完了します。
Salesforceデータクラウドからデータをインポートする
データをインポートするには、次の手順を完了します:
- SageMakerドメインで作成したユーザープロファイルから起動を選択し、Canvasを選択します。
Canvasアプリに初めてアクセスする場合は、約10分かかります。
- ナビゲーションペインでData Wranglerを選択します。
- 作成メニューで、Tabularを選択してタブularデータセットを作成します。
- データセットに名前を付け、作成を選択します。
- データソースとしてSalesforceデータクラウドを選択し、データレイクオブジェクトをインポートするために接続を追加します。
以前にSalesforceデータクラウドへの接続を構成した場合、新規に作成する代わりにその接続を使用するオプションが表示されます。
- 新しいSalesforceデータクラウド接続の名前を入力し、接続を追加を選択します。
完了まで数分かかります。
- 接続を承認するために、Salesforceログインページにリダイレクトされます。
ログインが成功したら、リクエストはデータレイクオブジェクトリストを持つSageMaker Canvasにリダイレクトされます。
- Amazon S3を介してアップロードされたモデルトレーニングの特徴を含むデータセットを選択します。
- ファイルをドラッグアンドドロップして、SQLで編集を選択します。
Salesforceはすべてのデータクラウドオブジェクトフィールドに“__c
”を追加します。SageMaker Canvasの命名規則では、”__“
はフィールド名には使用できません。
-
SQLを編集して、モデルトレーニングに関係のないメタデータをリネームし、削除します。テーブル名をオブジェクト名に置き換えます。
SELECT "state__c" as state, "case_type_shipment_damaged__c" as case_type_shipment_damaged, "campaign__c" as campaign, "engagement_score__c" as engagement_score, "case_count__c" as case_count, "case_type_return__c" as case_type_return, "club_member__c" as club_member, "pages_visited__c" as pages_visited, "product_purchased__c" as product_purchased, "clicks__c" as clicks, "tenure__c" as tenure, "month__c" as month FROM product_recommendation__dlm;
-
SQLを実行し、データセットを作成します。
-
データセットを選択し、モデルを作成します。
-
製品の推奨を予測するためのモデルを作成するには、モデル名を指定し、予測分析を選択し、作成を選択します。
モデルの構築とトレーニング
以下の手順を完了して、モデルを構築およびトレーニングします。
- モデルが起動された後、ターゲットカラムを
product_purchased
に設定します。
SageMaker Canvasでは、各列の主な統計情報とターゲットカラムとの相関を表示します。SageMaker Canvasは、モデルのプレビューとデータの検証に役立つツールを提供します。
- モデルの正確さを確認し、モデルの構築中に問題が発生しないようにデータセットを検証するため、プレビューモデル機能を使用します。
- データを確認し、データセットに変更が必要な場合は、ビルドタイプを選択します。 クイックビルドオプションは速くなるかもしれませんが、モデルを構築するためにデータの一部しか使用しません。この投稿の目的で、スタンダードビルドオプションを選択しました。
通常、スタンダードなビルドは2〜4時間かかります。
SageMaker Canvasは、モデルのビルド中にデータセットの欠損値を自動的に処理します。また、MLにデータを準備するための他のデータ準備変換も適用します。
- モデルのビルドが開始されたら、このページを離れることができます。
モデルが準備完了となり、マイモデルページに表示されると、分析と予測の準備が整いました。
- モデルがビルドされた後、マイモデルに移動し、作成したモデルを表示し、最新のバージョンを選択します。
- 解析タブに移動して、各特徴が予測に与える影響を確認します。
- モデルの予測に関する詳細情報については、スコアリングタブに移動します。
- 予測を選択して、製品の予測を開始します。
モデルのデプロイと予測の実行
次の手順を完了して、モデルをデプロイして予測を実行します:
- バッチ予測またはシングル予測のいずれかを選択できます。この記事では、シングル予測を選択します。
シングル予測を選択すると、SageMaker Canvasは、入力を提供できる特徴を表示します。
- アップデートを選択して値を変更し、リアルタイムの予測結果を表示できます。
モデルの精度およびその特定の予測に対する各特徴の影響が表示されます。
- モデルをデプロイするには、デプロイ名を指定し、インスタンスのタイプと数を選択し、デプロイを選択します。
モデルのデプロイには数分かかります。
デプロイが成功した後、モデルの状態はサービス中に更新されます。
SageMaker Canvasでは、デプロイをテストするオプションが提供されます。
- 詳細を表示を選択します。
The 詳細 タブは、モデルのエンドポイントの詳細を提供します。インスタンスタイプ、数、入力形式、応答コンテンツ、エンドポイントなどが表示されます。
- テストデプロイ を選択して、デプロイされたエンドポイントをテストします。
単発の予測と同様に、表示では入力機能が表示され、リアルタイムでエンドポイントを更新してテストするオプションが提供されます。
新しい予測とエンドポイントの呼び出し結果は、ユーザーに返されます。
SageMakerエンドポイントを公開するAPIを作成する
Salesforceのビジネスアプリケーションのパワーを支える予測を生成するには、SageMaker Canvasのデプロイによって作成されたSageMaker推論エンドポイントをAPI Gatewayで公開し、Salesforce Einsteinに登録する必要があります。
要求と応答の形式は、Salesforce EinsteinとSageMaker推論エンドポイント間で異なります。API Gatewayを使用して変換を行うか、リクエストと応答を変換するためにAWS Lambdaを使用することができます。SageMakerエンドポイントをLambdaとAPI Gatewayを介して公開する方法については、Amazon API GatewayとAWS Lambdaを使用してAmazon SageMakerモデルエンドポイントを呼び出すを参照してください。
次のコードスニペットは、リクエストとレスポンスを変換するLambda関数です
import jsonimport boto3import osclient = boto3.client("runtime.sagemaker")endpoint = os.environ['SAGEMAKER_ENDPOINT_NAME']prediction_label = 'product_purchased__c'def lambda_handler(event, context): features=[] # Input Sample : {"instances": [{"features": ["Washington", 1, "New Colors", 1, 1, 1, 1, 1, 1, 1, 1]}, {"features": ["California", 1, "Web", 100, 1, 1, 100, 1, 10, 1, 1]}]} for instance in event["instances"]: features.append(','.join(map(str, instance["features"]))) body='\n'.join(features) response = client.invoke_endpoint(EndpointName=endpoint,ContentType="text/csv",Body=body,Accept="application/json") response = json.loads(response['Body'].read().decode('utf-8')) prediction_response={"predictions":[]} for prediction in response.get('predictions'): prediction_response['predictions'].append({prediction_label:prediction['predicted_label']}) return prediction_response
構成に基づいてLambda関数内でendpoint
とprediction_label
の値を更新してください。
SAGEMAKER_ENDPOINT_NAME
という環境変数を追加して、SageMaker推論エンドポイントを取得します。- モデルの出力JSONキーと一致する予測ラベルを設定します。Einstein Studioに登録されている
Lambda関数のデフォルトのタイムアウトは3秒です。予測のリクエスト入力サイズに応じて、SageMakerのリアルタイム推論APIは3秒以上かかることがあります。
- Lambda関数のタイムアウトを増やすが、API Gatewayのデフォルトの統合タイムアウトである29秒以下に保ちます。
Salesforce Einstein Studioにモデルを登録する
API GatewayエンドポイントをEinstein Studioに登録するには、データクラウドへの独自のAIモデルの持ち込みを参照してください。
結論
この記事では、SageMaker Canvasを使用して、コードを1行も書かずにSalesforce Data Cloudに接続し、自動化された機械学習機能を使用して予測を生成する方法を説明しました。SageMaker Canvasのモデル構築機能を使用して、フルデータセットでモデルをトレーニングする前に、モデルパフォーマンスの早期プレビューを実施する方法も示しました。また、SageMaker Canvas内の単一の予測インターフェースを使用して予測を理解する方法や、特徴の重要性を把握する方法など、モデル作成後の活動も紹介しました。さらに、SageMaker Canvasで作成したSageMakerエンドポイントをAPIとして利用し、Salesforce Einstein Studioと統合して強力なSalesforceアプリケーションを作成する方法もご紹介しました。
次回の記事では、Salesforce Data CloudのデータをSageMaker Canvasで使用して、ビジュアルインターフェースと簡単な自然言語のプロンプトを使用してデータの洞察と準備をさらに簡単に行う方法をご紹介します。
SageMaker Canvasの利用を開始するには、SageMaker Canvasイマージョンデーを参照し、Amazon SageMaker Canvasの始め方を参照してください。
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