Infrastructures Microsoft Azure ML Studio

Vous pouvez utiliser ML Studio d' Microsoft Azure pour enregistrer des données de charge utile ou de retour d'expérience, et pour mesurer la précision des performances, la détection des biais en exécution, l'explicabilité et les résultats de la correction automatique des biais pour les modèles déployés lorsque vous évaluez ces derniers.

Les frameworks Microsoft Azure Machine Learning Studio suivants sont entièrement 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égression Structuré
Attention : Microsoft Azure Machine Learning Studio (classique) sera abandonné le 31 août 2024. Azure La liste et le système de notation des déploiements dans Studio Classic ne fonctionneront plus après le 31 août 2024.

Azure Les points de terminaison d'instances de conteneurs personnalisés sont pris en charge pour les évaluations de modèles.

Ajouter Microsoft Azure ML Studio

Vous pouvez configurer les évaluations de modèles pour qu'elles fonctionnent avec Microsoft Azure ML Studio en utilisant l'une des méthodes suivantes :

Exemples de bloc-notes

Le cahier suivant explique comment utiliser ML Studio d' Microsoft Azure :

Explorer plus avant

Utiliser un modèle d' Azure Machine Learning s déployé sous forme de service web

Spécification d'une instance Microsoft Azure ML Studio

La première étape dans l'outil « Watson OpenScale » consiste à spécifier une instance d' Microsoft Azure ML Studio. Votre instance Azure ML Studio est l'endroit où vous stockez vos modèles et déploiements d'IA.

Vous pouvez également ajouter votre fournisseur d'apprentissage automatique avec le SDK Python. Pour plus d'informations, consultez la section « Ajouter votre moteur d'apprentissage automatique à l' Microsoft Azure ».

Connecter votre instance Azure ML Studio

Vous pouvez vous connecter à des modèles d'IA et à des déploiements dans une instance d' Azure ML Studio afin d'évaluer ces modèles. Pour connecter votre service, accédez à l'onglet « L'icône de l'onglet « Configuration » Configurer », ajoutez un fournisseur d'apprentissage automatique, puis cliquez sur l'icône L'icône de l'onglet « Configuration » « Modifier ». Outre le nom, la description et la nature de l'environnement ( pré-production ou production ), vous devez fournir les informations suivantes :

  • ID client : chaîne de votre ID client, qui vérifie qui vous êtes et authentifie et autorise les appels que vous faites à Azure Studio.
  • Secret client : chaîne du secret, qui vérifie qui vous êtes et authentifie et autorise les appels que vous faites à Azure Studio.
  • Locataire : votre ID de locataire correspond à votre organisation et est une instance dédiée d'Azure AD. Pour trouver l'ID du tenant, passez la souris sur le nom de votre compte afin d'afficher l'ID du répertoire et du tenant, ou sélectionnez « Azure » Active Directory > Propriétés > ID du répertoire dans le portail Azure.
  • ID d'abonnement : identifiants d'abonnement qui identifient de manière unique votre abonnement à Microsoft Azure. L'ID d'abonnement constitue une partie de l'URI à chaque appel de service. Consultez la rubrique « Comment : utiliser le portail pour créer une application et un principal de service AD d' Azure s pouvant accéder aux ressources » pour obtenir des instructions sur la manière d'obtenir vos identifiants Microsoft Azure.

Journalisation du contenu utile avec le moteur Microsoft Azure Machine Learning Studio

Ajoutez votre moteur d'apprentissage automatique d' Microsoft Azure

Un moteur non- IBM Watson Machine Learning est associé en tant que « Custom », ce qui signifie qu'il s'agit uniquement de métadonnées; il n'y a pas d'intégration directe avec le service non- IBM Watson Machine Learning.

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

Pour consulter votre abonnement au service, exécutez la commande suivante :

client.service_providers.list()

Ajouter un abonnement Microsoft Azure ML Studio

Ajoutez l'abonnement en adaptant l'exemple de 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=''
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

Pour obtenir la liste des abonnés, exécutez le code suivant :

subscription_id = subscription_details.metadata.id
subscription_id
 
details: wos_client.subscriptions.get(subscription_id).result.to_dict()

Activer la journalisation du contenu utile

Pour activer la journalisation des données utiles, exécutez le code suivant :

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
)])

Pour obtenir les détails des journaux, exécutez la commande suivante :

subscription.payload_logging.get_details()

Evaluation et journalisation du contenu utile

Evaluez votre modèle. Pour un exemple complet, consultez le cahier « Utilisation du moteur Studio d' Azure Machine Learning ».

Pour enregistrer la requête et la réponse dans la table de journalisation des données utiles, utilisez le code suivant :

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)

Pour les langages autres qu' Python, vous pouvez également enregistrer les données de charge utile à l'aide d'une API REST.