Framework Amazon SageMaker
È possibile utilizzare Amazon SageMaker per registrare i dati di payload e feedback e per misurare l'accuratezza delle prestazioni, il rilevamento dei bias, la spiegabilità e la funzione di auto-debias per le valutazioni dei modelli.
I seguenti framework Amazon SageMaker sono supportati per le valutazioni dei modelli:
Tabella 1. Dettagli supporto framework
Framework | Tipo di problema | Tipo di dati |
---|---|---|
Nativo | Classificazione | Structured |
Nativo | Regressione1 | Structured |
1Il supporto per i modelli di regressione non include l'evidenziazione della deviazione.
Aggiunta di Amazon SageMaker
È possibile configurare le valutazioni dei modelli per lavorare con Amazon SageMaker utilizzando uno dei seguenti metodi:
- La prima volta che si aggiunge un provider di apprendimento automatico, si può usare l'interfaccia di configurazione. Per ulteriori informazioni, vedere Specificare un'istanza di Amazon SageMaker.
- È anche possibile aggiungere il provider di machine learning utilizzando l'SDK Python. È necessario utilizzare questo metodo se si desidera avere più di un provider. Per ulteriori informazioni, vedi Add your Amazon SageMaker machine learning engine.
Notebook di esempio
I seguenti notebook mostrano come operare con Amazon SageMaker:
Specifica di un'istanza del servizio Amazon SageMaker ML
Il primo passo per configurare le valutazioni dei modelli è specificare un'istanza del servizio Amazon SageMaker. L'istanza del servizio Amazon SageMaker è il luogo dove si memorizzano i modelli AI e le distribuzioni.
Connessione dell'istanza del servizio Amazon SageMaker
Modelli e implementazioni AI in un'istanza del servizio Amazon SageMaker. Per collegare il servizio, andare alla scheda Configura ', aggiungere un provider di apprendimento automatico e fare clic sull'icona Modifica '
. Oltre ad un nome e una descrizione e se l'ambiente Preproduzione o Produzione, è necessario fornire le seguenti informazioni specifiche per questo tipo di istanza di servizio:
- ID chiave di accesso: l'ID chiave di accesso AWS,
aws_access_key_id
, che verifica chi è l'utente e autentica e autorizza le chiamate che si fanno a AWS. - Chiave di accesso segreta: la chiave di accesso segreta AWS,
aws_secret_access_key
, che è richiesta per verificare chi è l'utente e per autenticare e autorizzare le chiamate che si fanno a AWS. - Regione: immettere la regione in cui è stato creato l'ID chiave di accesso. Le chiavi sono memorizzate e utilizzate nella regione in cui sono state create e non possono essere trasferite in un'altra regione.
Ora si è pronti per selezionare i modelli distribuiti e configurare i monitor. I modelli distribuiti sono elencati nella dashboard Insights, dove è possibile fare clic su Aggiungi alla dashboard. Selezionare le distribuzioni che si desidera monitorare e fare clic su Configura.
Per ulteriori informazioni, consultare Configura monitor.
Registrazione del payload con il motore di machine learning Amazon SageMaker
Aggiungi il tuo motore di machine learning Amazon SageMaker
Un motore Runtime watsonx.ai IBM IBM è vincolato come Custom utilizzando i metadati. Non è possibile un'integrazione diretta con il servizio watsonx.ai Runtime non IBM.
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
Per vedere la sottoscrizione del servizio, eseguire il seguente codice:
client.service_providers.list()
Aggiungere la sottoscrizione Amazon SageMaker ML
Per aggiungere l'abbonamento, eseguire il seguente codice:
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
Per ottenere l'elenco di abbonamento, eseguire il seguente comando:
subscription_id = subscription_details.metadata.id
subscription_id
details: wos_client.subscriptions.get(subscription_id).result.to_dict()
Abilitare la registrazione del payload
Per abilitare la registrazione del payload, eseguire il seguente comando:
request_data = {'fields': feature_columns,
'values': [[payload_values]]}
Per ottenere i dettagli di registrazione, eseguire il seguente comando:
response_data = {'fields': list(result['predictions'][0]),
'values': [list(x.values()) for x in result['predictions']]}
Calcolare il punteggio e registrare il payload
- Calcolare il punteggio del modello.
Per memorizzare la richiesta e la risposta nella tabella di registrazione del payload, eseguire il seguente codice:
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
)])
Per le lingue diverse da Pythonè possibile anche registrare payload utilizzando un'API REST.
Argomento principale: Motori di machine learning supportati, quadri e modelli