Vous pouvez utiliser Amazon SageMaker pour enregistrer les données de charge utile et de retour d'information, et pour mesurer la précision des performances, la détection des biais, l'explicabilité et la fonction d'autodébit pour l'évaluation des modèles.
Les cadres Amazon suivants SageMaker sont pris en charge pour l'évaluation des modèles :
Tableau 1. Détails des infrastructures prises en charge
Infrastructure | Type de problème | Type de données |
---|---|---|
Natif | Classification | Structuré |
Natif | Régression1 | Structuré |
1La prise en charge des modèles de régression n'inclut pas l'ampleur de la dérive.
Ajout d'Amazon SageMaker
Vous pouvez configurer les évaluations de modèles pour qu'elles fonctionnent avec Amazon SageMaker en utilisant l'une des méthodes suivantes :
- La première fois que vous ajoutez un fournisseur d'apprentissage automatique, vous pouvez utiliser l'interface de configuration. Pour plus d'informations, consultez Spécification d'une instance Amazon SageMaker.
- Vous pouvez également ajouter votre fournisseur d'apprentissage automatique avec le SDK Python. Cette méthode est obligatoire si vous voulez avoir plusieurs fournisseurs. Pour plus d'informations, voir Ajoutez votre moteur d'apprentissage automatique Amazon SageMaker.
Exemples de blocs-notes
Les blocs-notes suivants montrent comment utiliser Amazon SageMaker :
Spécification d'une instance de service Amazon SageMaker ML
La première étape de la configuration des évaluations de modèles consiste à spécifier une instance de service Amazon SageMaker. Votre instance de service Amazon SageMaker est l'endroit où vous stockez vos modèles et déploiements d'IA.
Connecter votre instance de service Amazon SageMaker
Les modèles d'IA et les déploiements dans une instance de service Amazon SageMaker. Pour connecter votre service, allez dans l'onglet Configurer " , ajoutez un fournisseur d'apprentissage automatique et cliquez sur l'icône Modifier " . Outre un nom et une description et si l'environnement est en préproduction ou en production, vous devez fournir les informations suivantes spécifiques à ce type d'instance de service :
- ID clé d'accès : votre ID clé d'accès AWS,
aws_access_key_id
, qui vérifie qui vous êtes et authentifie et autorise les appels que vous faites à AWS. - Clé d'accès secrète : votre clé d'accès secrète AWS,
aws_secret_access_key
, qui est nécessaire pour vérifier qui vous êtes et pour authentifier et autoriser les appels que vous faites à AWS. - Région : entrez la région où votre ID clé d'accès a été créé. Les clés sont stockées et utilisées dans la région dans laquelle elles ont été créées et elles ne peuvent pas être transférées dans une autre région.
Vous êtes maintenant prêt à sélectionner des modèles déployés et à configurer vos moniteurs. Les modèles déployés sont répertoriés dans le tableau de bord Insights, où vous pouvez cliquer sur Ajouter au tableau de bord. Sélectionnez les déploiements à surveiller et cliquez sur Configurer.
Pour plus d'informations, consultez Configurer les moniteurs.
Consignation de la charge utile avec le moteur d'apprentissage automatique Amazon SageMaker
Ajouter votre moteur d'apprentissage automatique Amazon SageMaker
Un moteur d'exécution watsonx.ai IBM IBM est lié comme Custom en utilisant des métadonnées. Aucune intégration directe avec le service Runtime watsonx.ai non IBM n'est possible.
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
Pour voir votre abonnement au service, exécutez le code suivant :
client.service_providers.list()
Ajouter un abonnement Amazon SageMaker ML
Pour ajouter l'abonnement, exécutez le code suivant :
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
Pour obtenir la liste des abonnements, exécutez la commande suivante :
subscription_id = subscription_details.metadata.id
subscription_id
details: wos_client.subscriptions.get(subscription_id).result.to_dict()
Activer la consignation de la charge utile
Pour activer la journalisation de contenu, exécutez la commande suivant :
request_data = {'fields': feature_columns,
'values': [[payload_values]]}
Pour obtenir les détails de journalisation, exécutez la commande suivante :
response_data = {'fields': list(result['predictions'][0]),
'values': [list(x.values()) for x in result['predictions']]}
Evaluation et consignation de la charge utile
- Evaluez votre modèle. Pour un exemple complet, consultez le Bloc-notes Working with SageMaker machine learning Engine.
Pour stocker la demande et la réponse dans la table de consignation de la charge utile, exécutez le code suivant :
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
)])
Pour les langages autres que Python, vous pouvez également consigner la charge utile, à l'aide d'une API REST.
Rubrique parent : Moteurs d'apprentissage automatiques, infrastructures et modèles pris en charge