Microsoft Azure ML Studio を使用して、ペイロードまたはフィードバックデータを記録し、モデルを評価するときに、デプロイされたモデルのパフォーマンス精度、実行時のバイアス検出、説明可能性、および自動デバイアスの結果を測定できます。
以下のMicrosoft Azure Machine LearningStudioフレームワークは、モデル評価用に完全にサポートされています:
表 1. フレームワークのサポート詳細
フレームワーク | 問題のタイプ | データ・タイプ |
---|---|---|
ネイティブ | 機密区分 | 構造化 |
ネイティブ | 回帰 | 構造化 |
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 を使用してペイロードをログに記録することもできます。