0 / 0
Retourner à la version anglaise de la documentation
Infrastructures Amazon SageMaker
Dernière mise à jour : 12 déc. 2024
Infrastructures Amazon SageMaker

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

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 :

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 " Icône de l'onglet de configuration, ajoutez un fournisseur d'apprentissage automatique et cliquez sur l'icône Modifier " L'icône de l'onglet de configuration s'affiche.. 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()

Liaison ML SageMaker

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

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

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus