Sie können Microsoft Azure ML Studio verwenden, um Nutzlast- oder Feedbackdaten zu protokollieren und die Leistungsgenauigkeit, die Erkennung von Laufzeitverzerrungen, die Erklärbarkeit und die Ergebnisse von automatischen Verzerrungen für bereitgestellte Modelle zu messen, wenn Sie Modelle bewerten.
Die folgenden Microsoft Azure Machine Learning Studio-Frameworks werden für Modellauswertungen vollständig unterstützt:
Tabelle 1. Details zur Frameworkunterstützung
Framework | Problemtyp | Datentyp |
---|---|---|
Nativ | Klassifikation | Strukturiert |
Nativ | Regression | Strukturiert |
Azure Designer-Container-Instanz-Endpunkte werden für Modellbewertungen unterstützt.
Hinzufügen von Microsoft Azure ML Studio
Sie können Modellauswertungen für die Verwendung mit Microsoft Azure ML Studio konfigurieren, indem Sie eine der folgenden Methoden verwenden:
- Wenn Sie zum ersten Mal einen Machine Learning-Anbieter hinzufügen, können Sie die Konfigurationsschnittstelle verwenden. Weitere Informationen finden Sie im Abschnitt Microsoft Azure ML Studio-Instanz angeben.
- Sie können auch Python SDK verwenden, um einen Anbieter für maschinelles Lernen hinzuzufügen. Diese Methode muss verwendet werden, wenn Sie mehr als einen Anbieter verwenden möchten. Weitere Informationen zur programmgesteuerten Ausführung finden Sie unter Microsoft Azure Machine Learning-Engine hinzufügen.
Beispielnotebooks
Das folgende Notebook veranschaulicht die Vorgehensweise zum Arbeiten mit Microsoft Azure ML Studio:
Erkundung fortsetzen
Als Web-Service bereitgestelltes Azure Machine Learning-Modell verarbeiten
Microsoft Azure ML Studio-Instanz angeben
Geben Sie als ersten Schritt im Watson OpenScale-Tool eine Microsoft Azure ML Studio-Instanz an. In dieser Azure ML Studio-Instanz werden Ihre KI-Modelle und Bereitstellungen gespeichert.
Sie können auch Python SDK verwenden, um einen Anbieter für maschinelles Lernen hinzuzufügen. Weitere Informationen finden Sie unter Microsoft Azure Machine Learning-Engine hinzufügen.
Azure ML Studio-Instanz verbinden
Sie können zur Modellauswertung eine Verbindung mit KI-Modellen und Bereitstellungen in einer Azure ML Studio-Instanz herstellen. Um Ihren Dienst zu verbinden, gehen Sie zur Registerkarte konfigurieren “, fügen Sie einen Anbieter für maschinelles Lernen hinzu und klicken Sie auf das Symbol bearbeiten “. Zusätzlich zu einem Namen und einer Beschreibung sowie dazu, ob es sich bei der Umgebung um eine Vorproduktion oder Produktionhandelt, müssen Sie die folgenden Informationen angeben:
- Client-ID: Die tatsächliche Zeichenfolge Ihrer Client-ID, die Sie als berechtigten Benutzer ausweist und Aufrufe authentifiziert und autorisiert, die Sie an Azure Studio absetzen.
- Geheimer Clientschlüssel: Die tatsächliche Zeichenfolge des geheimen Schlüssels, der Sie als berechtigten Benutzer ausweist und Aufrufe authentifiziert und autorisiert, die Sie an Azure Studio absetzen.
- Tenant: Ihre Tenant-ID entspricht Ihrer Organisation und ist eine dedizierte Azure AD-Instanz. Um die Tenant-ID zu finden, bewegen Sie den Mauszeiger über Ihren Kontonamen, um das Verzeichnis und die Tenant-ID abzurufen, oder wählen Sie Azure Active Directory > Eigenschaften > Verzeichnis-ID im Azure-Portal aus.
- Subskriptions-ID: Die Subskriptionsberechtigungsnachweise, die Ihre Microsoft Azure-Subskription eindeutig identifizieren. Die Subskriptions-ID ist ein Bestandteil des URI für jeden Serviceaufruf. Anweisungen dazu, wie Sie Ihre Berechtigungsnachweise für Microsoft Azure beziehen, finden Sie in der zugehörigen Dokumentation unter How to: Use the portal to create an Azure AD application and service principal that can access resources.
Nutzdatenprotokollierung mit der Microsoft Azure Studio-Engine für maschinelles Lernen
Microsoft Azure-Engine für maschinelles Lernen hinzufügen
Eine IBM watsonx.ai Runtime-Engine ist als Custom gebunden, was bedeutet, dass es sich nur um Metadaten handelt; es gibt keine direkte Integration mit dem IBM watsonx.ai Runtime-Service.
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
Führen Sie den folgenden Befehl aus, um Ihre Servicesubskription anzuzeigen:
client.service_providers.list()
Microsoft Azure ML Studio-Subskription hinzufügen
Fügen Sie eine Subskription hinzu, indem Sie das folgende Codebeispiel entsprechend anpassen:
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
Führen Sie den folgenden Code aus, um die Subskriptionsliste abzurufen:
subscription_id = subscription_details.metadata.id
subscription_id
details: wos_client.subscriptions.get(subscription_id).result.to_dict()
Nutzdatenprotokollierung aktivieren
Führen Sie den folgenden Code aus, um die Nutzdatenprotokollierung zu aktivieren:
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
)])
Führen Sie den folgenden Befehl aus, um die Details zur Protokollierung abzurufen:
subscription.payload_logging.get_details()
Scoring und Nutzdatenprotokollierung
Führen Sie einen Scoring-Vorgang für Ihr Modell durch. Ein vollständiges Beispiel finden Sie in Notebook 'Mit Azure Machine Learning Studio-Engine arbeiten'.
Verwenden Sie den folgenden Code, um die Anforderung und die Antwort in der Tabelle für Nutzdatenprotokollierung zu speichern:
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)
Für andere Sprachen als Python können Sie die Nutzdaten auch mithilfe der REST-API protokollieren.
Übergeordnetes Thema: Unterstützte Engines, Frameworks und Modelle für maschinelles Lernen