Sie können Amazon SageMaker verwenden, um Nutzlast- und Feedbackdaten zu protokollieren und die Leistungsgenauigkeit, die Erkennung von Verzerrungen, die Erklärbarkeit und die Auto-Debias-Funktion für Modellevaluierungen zu messen.
Die folgenden Amazon SageMaker Frameworks werden für Modellevaluierungen unterstützt:
Tabelle 1. Details der Frameworkunterstützung
Framework | Problemtyp | Datentyp |
---|---|---|
Nativ | Klassifikation | Strukturiert |
Nativ | Regression1 | Strukturiert |
1Die Unterstützung für Regressionsmodelle umfasst nicht das Ausmaß der Drift.
Hinzufügen von Amazon SageMaker
Sie können Modellauswertungen für die Verwendung mit Amazon SageMaker 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 hierzu finden Sie im Abschnitt Amazon SageMaker-Instanz angeben.
- Sie können Ihren Machine-Learning-Provider auch mithilfe des Python-SDK hinzufügen. Diese Methode müssen Sie verwenden, wenn mehrere Provider zur Verfügung stehen sollen. Weitere Informationen finden Sie unter Amazon SageMaker-Engine für maschinelles Lernen hinzufügen.
Beispielnotebooks
In den folgenden Notebooks wird gezeigt, wie Sie mit Amazon SageMaker arbeiten:
Amazon SageMaker ML-Serviceinstanz angeben
Ihr erster Schritt zum Konfigurieren von Modellauswertungen besteht darin, eine Amazon SageMaker Serviceinstanz anzugeben. In Ihrer Amazon SageMaker-Serviceinstanz speichern Sie Ihre KI-Modelle und -Bereitstellungen.
Verbindung zur Amazon SageMaker-Serviceinstanz herstellen
KI-Modelle und Bereitstellungen in einer Amazon SageMaker Serviceinstanz. 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 zur Angabe, ob es sich bei der Umgebung um Vorproduktion oder Produktion handelt, müssen Sie die folgenden Informationen angeben, die für diesen Serviceinstanztyp spezifisch sind:
- Zugriffsschlüssel-ID: Ihre AWS-Zugriffsschlüssel-ID,
aws_access_key_id
, die Sie identifiziert und Ihre AWS-Aufrufe authentifiziert und autorisiert. - Geheimer Zugriffsschlüssel: Ihr geheimer AWS-Zugriffsschlüssel,
aws_secret_access_key
, der erforderlich ist, um Ihre Identität zu verifizieren und Ihre AWS-Aufrufe zu authentifizieren und zu autorisieren. - Region: Geben Sie die Region ein, in der Ihre Zugriffsschlüssel-ID erstellt wurde. Schlüssel werden in der Region gespeichert und verwendet, in der sie erstellt wurden, und können nicht an eine andere Region übertragen werden.
Jetzt sind Sie bereit, bereitgestellte Modelle auszuwählen und Ihre Überwachungen zu konfigurieren. Ihre bereitgestellten Modelle werden im Insights -Dashboard aufgelistet, wo Sie auf „Zum Dashboard hinzufügen“ klicken können. Wählen Sie die Implementierungen aus, die Sie überwachen möchten, und klicken Sie auf Konfigurieren.
Weitere Informationen finden Sie in Überwachungen konfigurieren.
Nutzdatenprotokollierung mit der Amazon SageMaker-Machine Learning-Engine
Amazon SageMaker Machine Learning-Engine hinzufügen
Eine IBM watsonx.ai Runtime-Engine wird durch die Verwendung von Metadaten als Custom gebunden. Eine direkte Integration mit dem IBM watsonx.ai Runtime Service ist nicht möglich.
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
Führen Sie den folgenden Code aus, um Ihr Serviceabonnement anzuzeigen:
client.service_providers.list()
Amazon SageMaker ML-Abonnement hinzufügen
Führen Sie den folgenden Code aus, um das Abonnement hinzuzufügen:
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
Führen Sie den folgenden Befehl aus, um die Abonnementliste 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 Befehl aus, um die Nutzdatenprotokollierung zu aktivieren:
request_data = {'fields': feature_columns,
'values': [[payload_values]]}
Führen Sie den folgenden Befehl aus, um die Protokollierungsdetails abzurufen:
response_data = {'fields': list(result['predictions'][0]),
'values': [list(x.values()) for x in result['predictions']]}
Scoring und Nutzdatenprotokollierung
- Führen Sie ein Scoring für Ihr Modell durch. Ein vollständiges Beispiel finden Sie in Notebook 'Mit SageMaker Machine Learning-Engine' arbeiten.
Führen Sie den folgenden Code aus, um die Anforderung und die Antwort in der Tabelle für Nutzdatenprotokollierung zu speichern:
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ür andere Sprachen als Python können Sie Nutzdaten auch über eine REST-API protokollieren.
Übergeordnetes Thema: Unterstützte Engines, Frameworks und Modelle für maschinelles Lernen