0 / 0
資料の 英語版 に戻る
Microsoft Azure ML Studio フレームワーク
最終更新: 2024年11月21日
Microsoft Azure ML Studio フレームワーク

Microsoft Azure ML Studio を使用して、ペイロードまたはフィードバックデータを記録し、モデルを評価するときに、デプロイされたモデルのパフォーマンス精度、実行時のバイアス検出、説明可能性、および自動デバイアスの結果を測定できます。

以下のMicrosoft Azure Machine LearningStudioフレームワークは、モデル評価用に完全にサポートされています:

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

フレームワークのサポート詳細
フレームワーク 問題のタイプ データ・タイプ
ネイティブ 機密区分 構造化
ネイティブ 回帰 構造化
Attention: Microsoft Azure Machine Learning Studio (classic) は 2024 年 8 月 31 日に廃止されます。 Azureスタジオのクラシックな配置リストと採点は、2024年8月31日以降は機能しません。

Azure デザイナー・コンテナ・インスタンス・エンドポイントは、モデル評価用にサポートされています。

Microsoft AzureML Studioの追加

以下のいずれかの方法で、Microsoft AzureML Studio で動作するようにモデル評価を設定できます:

  • 初めて機械学習プロバイダーを追加する場合は、設定インターフェイスを使用することができます。 詳しくは、Microsoft Azure ML Studio インスタンスの指定を参照してください。
  • Python SDK を使用して、機械学習プロバイダーを追加することもできます。 複数のプロバイダーが必要な場合は、この方法を使用する必要があります。 これをプログラマチックに実行する方法について詳しくは、 Microsoft Azure 機械学習エンジンの追加を参照してください。

サンプル・ノートブック

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

詳細はこちら

Consume an Azure Machine Learning model that is deployed as a web service

Microsoft Azure ML Studio インスタンスの指定

Watson OpenScale ツールで最初に実行するステップは、Microsoft Azure ML Studio インスタンスの指定です。 Azure ML Studio インスタンスは、AI モデルとデプロイメントの格納場所となります。

Python SDK を使用して、機械学習プロバイダーを追加することもできます。 詳しくは、 Microsoft Azure 機械学習エンジンの追加を参照してください。

Azure ML Studio Studio インスタンスの接続

AzureML StudioインスタンスのAIモデルやデプロイメントに接続して、モデルの評価を行うことができます。 サービスを接続するには、「Configure'「構成」タブ・アイコンタブで機械学習プロバイダーを追加し、「Edit'「構成」タブ・アイコンアイコンをクリックする。 名前と説明、および環境が 実動前 であるか 生産であるかに加えて、以下の情報を指定する必要があります:

  • クライアント ID: クライアント ID の実際の文字列値。これにより、本人確認を行い、Azure Studio に対する呼び出しを認証および許可します。
  • クライアント・シークレット: シークレットの実際の文字列値。これにより、本人確認を行い、Azure Studio に対する呼び出しを認証および許可します。
  • テナント: テナント ID は、組織に対応する Azure AD の専用インスタンスです。 テナント ID を見つけるには、アカウント名の上にカーソルを移動してディレクトリーとテナント ID を取得するか、Azure ポータルで Azure Active Directory > Properties > Directory ID 選択してください。
  • サブスクリプション ID: Microsoft Azure サブスクリプションを一意に識別するサブスクリプション資格情報。 すべてのサービス呼び出しの URI に、このサブスクリプション ID が含まれます。 Microsoft Azure 資格情報の取得方法の手順に関しては、How to: Use the portal to create an Azure AD application and service principal that can access resources を参照してください。

Microsoft Azure Machine Learning Studio エンジンのペイロード・ロギング

Microsoft Azure Machine Learning エンジンの追加

IBM以外のwatsonx.aiRuntime エンジンは Custom としてバインドされます。つまり、これは単なるメタデータであり、IBM以外のwatsonx.aiRuntime サービスとの直接的な統合はありません。

AZURE_ENGINE_CREDENTIALS = {
    "client_id": "",
    "client_secret": "",
    "subscription_id": "",
    "tenant": ""
}
 
wos_client.service_providers.add(
        name=SERVICE_PROVIDER_NAME,
        description=SERVICE_PROVIDER_DESCRIPTION,
        service_type=ServiceTypes.AZURE_MACHINE_LEARNING,
        #deployment_space_id = WML_SPACE_ID,
        #operational_space_id = "production",
        credentials=AzureCredentials(
            subscription_id= AZURE_ENGINE_CREDENTIALS['subscription_id'],
            client_id = AZURE_ENGINE_CREDENTIALS['client_id'],
            client_secret= AZURE_ENGINE_CREDENTIALS['client_secret'],
            tenant = AZURE_ENGINE_CREDENTIALS['tenant']
        ),
        background_mode=False
    ).result

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

client.service_providers.list()

Microsoft Azure ML Studio サブスクリプションの追加

以下のコード・サンプルを適用して、サブスクリプションを追加します。

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=''
for model_asset_details in asset_deployment_details['resources']:
    if model_asset_details['metadata']['guid']==deployment_id:
        break
 
azure_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',
            input_data_type=InputDataType.STRUCTURED,
            problem_type=ProblemType.BINARY_CLASSIFICATION
        )
 
deployment_scoring_endpoint = model_asset_details['entity']['scoring_endpoint']
scoring_endpoint = ScoringEndpointRequest(url = model_asset_details['entity']['scoring_endpoint']['url'],request_headers = model_asset_details['entity']['scoring_endpoint']['request_headers'],
                                                 credentials = None)  
 
deployment = AssetDeploymentRequest(
    deployment_id=model_asset_details['metadata']['guid'],
    url=model_asset_details['metadata']['url'],
    name=model_asset_details['entity']['name'],
    description=model_asset_details['entity']['description'],
    deployment_type=model_asset_details['entity']['type'],
    scoring_endpoint = scoring_endpoint
)
 
asset_properties = AssetPropertiesRequest(
        label_column="Risk ",
        prediction_field='Scored Labels',
        probability_fields=['Scored Probabilities'],
        training_data_reference=training_data_reference,
        training_data_schema=None,
        input_data_schema=None,
        output_data_schema=None,
    )
 
subscription_details = wos_client.subscriptions.add(
        data_mart_id=data_mart_id,
        service_provider_id=service_provider_id,
        asset=azure_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()

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

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

payload_data_set_id = None
payload_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING, 
                                                target_target_id=subscription_id, 
                                                target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
 
payload store:
 
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
)])

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

subscription.payload_logging.get_details()

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

モデルを評価します。 完全な例については、Azure Machine Learning Studio エンジン・ノートブックの操作を参照してください。

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

records_list = [PayloadRecord(request=request_data, response=response_data, response_time=response_time),
                PayloadRecord(request=request_data, response=response_data, response_time=response_time)]

for i in range(1, 10):
records_list.append(PayloadRecord(request=request_data, response=response_data, response_time=response_time))

subscription.payload_logging.store(records=records_list)

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

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