0 / 0
資料の 英語版 に戻る
Amazon SageMaker フレームワーク
最終更新: 2024年12月12日
Amazon SageMaker フレームワーク

Amazon SageMaker を使用して、ペイロードとフィードバックのデータを記録し、パフォーマンス精度、バイアス検出、説明可能性、およびモデル評価のための自動デビアス機能を測定できます。

以下の Amazon SageMaker フレームワークがモデル評価でサポートされています:

表 1. フレームワークのサポート詳細

フレームワークのサポート詳細
フレームワーク 問題のタイプ データ・タイプ
ネイティブ 機密区分 構造化
ネイティブ 回帰1 構造化

1 回帰モデルのサポートにはドリフト絶対値は含まれません。

AmazonSageMakerの追加

AmazonSageMakerで動作するようにモデル評価を設定するには、次のいずれかの方法を使用します:

  • 機械学習プロバイダーを初めて追加するときは、設定インターフェイスを使うことができる。 詳しくは、Amazon SageMaker インスタンスの指定を参照してください。
  • Python SDK を使用して、機械学習プロバイダーを追加することもできます。 複数のプロバイダーが必要な場合は、この方法を使用する必要があります。 詳しくは、 Amazon SageMaker 機械学習エンジンの追加を参照してください。

サンプル・ノートブック

以下のノートブックは、Amazon SageMaker と連携する方法を示しています。

Amazon SageMaker ML サービス・インスタンスの指定

モデル評価を設定する最初のステップは、AmazonSageMakerサービスインスタンスを指定することです。 Amazon SageMaker サービス・インスタンスは、AI モデルとデプロイメントの格納場所となります。

Amazon SageMaker サービス・インスタンスの接続

AmazonSageMakerサービスインスタンスにおけるAIモデルとデプロイメント。 サービスを接続するには、「Configure'「構成」タブ・アイコンタブで機械学習プロバイダーを追加し、「Edit'「構成」タブのアイコンが表示されます。アイコンをクリックする。 名前と説明、および環境が 実動前 であるか 生産であるかに加えて、このタイプのサービス・インスタンスに以下の固有情報を提供する必要があります:

  • アクセス・キー ID: AWS のアクセス・キー ID aws_access_key_id。これにより、本人確認を行い、AWS に対する呼び出しを認証および許可します。
  • シークレット・アクセス・キー: AWS のシークレット・アクセス・キー aws_secret_access_key。本人確認を行い、AWS に対する呼び出しを認証および許可するためには、これが必要です。
  • 地域: アクセス・キー ID が作成された地域を入力します。 キーが作成された地域にキーは保管され、そこで使用されます。他の地域に転送することはできません。

これで、デプロイされたモデルを選択し、モニターを構成する準備ができました。 ダッシュボードに追加]をクリックすると、デプロイされたモデルがInsightsダッシュボードに表示されます。 モニターするデプロイメントを選択し、 構成をクリックしてください。

詳しくは、モニタリングの構成を参照してください。

Amazon SageMaker 機械学習エンジンのペイロード・ロギング

Amazon SageMaker 機械学習エンジンの追加

IBM以外のwatsonx.aiランタイム・エンジンは、メタデータを使用してカスタムとしてバインドされます。 IBM以外のwatsonx.aiRuntime サービスと直接統合することはできません。

SAGEMAKER_ENGINE_CREDENTIALS = {
                   'access_key_id':””,
                   'secret_access_key':””,
                   'region': '}

wos_client.service_providers.add(
        name="AWS",
        description="AWS Service Provider",
        service_type=ServiceTypes.AMAZON_SAGEMAKER,
        credentials=SageMakerCredentials(
            access_key_id=SAGEMAKER_ENGINE_CREDENTIALS['access_key_id'],
            secret_access_key=SAGEMAKER_ENGINE_CREDENTIALS['secret_access_key'],
            region=SAGEMAKER_ENGINE_CREDENTIALS['region']
        ),
        background_mode=False
    ).result

サービス・サブスクリプションを表示するには、次のコードを実行します。

client.service_providers.list()

SageMaker ML バインディング

Amazon SageMaker ML サブスクリプションの追加

サブスクリプションを追加するには、以下のコードを実行します。

asset_deployment_details = wos_client.service_providers.list_assets(data_mart_id=data_mart_id, service_provider_id=service_provider_id).result
asset_deployment_details
 
deployment_id='684e35eee8a479470cee05983e1f9d64'
for model_asset_details in asset_deployment_details['resources']:
    if model_asset_details['metadata']['guid']==deployment_id:
        break
 
  
aws_asset = Asset(
        asset_id=model_asset_details['entity']['asset']['asset_id'],
        name=model_asset_details['entity']['asset']['name'],
        url=model_asset_details['entity']['asset']['url'],
        asset_type=model_asset_details['entity']['asset']['asset_type'] if 'asset_type' in model_asset_details['entity']['asset'] else 'model',
        problem_type=ProblemType.BINARY_CLASSIFICATION,
        input_data_type=InputDataType.STRUCTURED,
    )
 
from ibm_watson_openscale.base_classes.watson_open_scale_v2 import ScoringEndpointRequest
deployment_scoring_endpoint = model_asset_details['entity']['scoring_endpoint']
scoring_endpoint = ScoringEndpointRequest(url = model_asset_details['entity']['scoring_endpoint']['url'] )
 
deployment = AssetDeploymentRequest(
        deployment_id=model_asset_details['metadata']['guid'],
        url=model_asset_details['metadata']['url'],
        name=model_asset_details['entity']['name'],
        #description="asset['entity']['description']",
        deployment_type=model_asset_details['entity']['type'],
        scoring_endpoint =  scoring_endpoint
    )
 
asset_properties = AssetPropertiesRequest(
        label_column="Risk",
        prediction_field='predicted_label',
        probability_fields=['score'],
        training_data_reference=training_data_reference,
        training_data_schema=None,
        input_data_schema=None,
        output_data_schema=None,
        feature_fields=feature_columns,
        categorical_fields=categorical_columns
    )
 
subscription_details = wos_client.subscriptions.add(
        data_mart_id=data_mart_id,
        service_provider_id=service_provider_id,
        asset=aws_asset,
        deployment=deployment,
        asset_properties=asset_properties,
        background_mode=False
).result

サブスクリプション・リストを取得するには、以下のコマンドを実行します。

subscription_id = subscription_details.metadata.id
subscription_id
 
details: wos_client.subscriptions.get(subscription_id).result.to_dict()

ペイロード・ロギングの有効化

ペイロード・ロギングを有効にするには、次のコマンドを実行します。

request_data = {'fields': feature_columns, 
                'values': [[payload_values]]}

ロギングの詳細を取得するには、次のコマンドを実行します。

response_data = {'fields': list(result['predictions'][0]),
                 'values': [list(x.values()) for x in result['predictions']]}

評価とペイロード・ロギング

ペイロード・ロギング・テーブルに要求と応答を格納するには、以下のコードを実行します。

wos_client.data_sets.store_records(data_set_id=payload_data_set_id, request_body=[PayloadRecord(
           scoring_id=str(uuid.uuid4()),
           request=request_data,
           response=response_data,
           response_time=460
)])
 

Python 以外の言語の場合は、REST API を使用してペイロードをログに記録することもできます。

親トピック: サポートされる機械学習エンジン、フレームワーク、およびモデル

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細