0 / 0
Volver a la versión inglesa de la documentación
Infraestructuras de Microsoft Azure ML Service
Última actualización: 22 nov 2024
Infraestructuras de Microsoft Azure ML Service

Puede utilizar Microsoft Azure ML Service para realizar el registro de carga útil, el registro de retroalimentación y para medir la precisión del rendimiento, la detección de sesgos en tiempo de ejecución, la explicabilidad y la función de autodebias para las evaluaciones de modelos.

Los siguientes marcos de servicios Microsoft Azure Machine Learning son compatibles con las evaluaciones de modelos:

Tabla 1. Detalles del soporte de las infraestructuras

Detalles del soporte de las infraestructuras
Infraestructura Tipo de problema Tipo de datos
Nativa Clasificación Estructurada
scikit-learn Clasificación Estructurada
scikit-learn Regresión Estructurada

Para generar el modelo de detección de desviación, debe utilizar la versión de scikit-learn 0.20.2 en cuadernos.

Azure Automated Machine Learning managed endpoints y Azure models se gestionan con cuadernos para evaluaciones de modelos.

Añadir el servicio Microsoft Azure ML

Puede configurar las evaluaciones de modelos para que funcionen con Microsoft Azure ML Service mediante uno de los métodos siguientes:

Se llama a varios puntos finales REST necesarios para interactuar con el servicio Azure ML. Para ello, debe vincular Azure Machine Learning Service.

  1. Cree un principal de Azure Active Directory Service.
  2. Especifique los detalles de las credenciales cuando añada la vinculación del servicio Azure ML Service, ya sea a través de la interfaz de usuario o del SDK de Python.

Requisitos de los archivos de solicitud y respuesta JSON

Para que las evaluaciones de modelos funcionen con Azure ML Service, las implementaciones de servicios web que cree deben cumplir ciertos requisitos. Los despliegues del servicio web que se crean deben aceptar solicitudes JSON y devolver respuestas JSON, de acuerdo con los siguientes requisitos.

Formato de solicitud JSON de servicio web necesario

  • El cuerpo de la solicitud de API REST debe ser un documento JSON que contenga una sola matriz JSON de objetos JSON
  • La matriz JSON debe denominarse "input".
  • Cada objeto JSON solo puede incluir pares de clave-valor simples, donde los valores pueden ser una serie, un número, true, false o null
  • Los valores no pueden ser un objeto o matriz JSON
  • Cada objeto JSON de la matriz debe tener todas las mismas claves (y, por lo tanto, el número de claves) especificadas, independientemente de si hay un valor no null disponible

El siguiente archivo JSON de ejemplo cumple los requisitos anteriores y se puede utilizar como plantilla para crear sus propios archivos de solicitud JSON:

{
  "input": [
    {
      "field1": "value1",
      "field2": 31,
      "field3": true,
      "field4": 2.3
    },
    {
      "field1": "value2",
      "field2": 15,
      "field3": false,
      "field4": 0.1
    },
    {
      "field1": null,
      "field2": 5,
      "field3": true,
      "field4": 6.1
    }
  ]
}

Formato de respuesta JSON de servicio web necesario

Tome nota de las consideraciones siguientes al crear un archivo de respuesta JSON:

  • El cuerpo de respuesta de API REST debe ser un documento JSON que contenga una matriz JSON de objetos JSON

  • La matriz JSON debe denominarse "output".

  • Cada objeto JSON solo puede incluir pares de clave-valor, donde los valores pueden ser una serie, un número, true, false, null o una matriz que no contenga ningún otro objeto JSON o matrices

  • Los valores no pueden ser un objeto JSON

  • Cada objeto JSON de la matriz debe tener todas las mismas claves (y número de claves) especificadas, independientemente de si hay un valor no null disponible

  • Para modelos de clasificación: el servicio web debe devolver una matriz de probabilidades para cada clase y la ordenación de las probabilidades debe ser coherente para cada objeto JSON de la matriz

    • Ejemplo: supongamos que tiene un modelo de clasificación binaria que predice el riesgo de crédito, donde las clases son Risk o No Risk
    • Para cada resultado devuelto en la matriz "output", los objetos deben contener un par de clave-valor que incluya las probabilidades en un orden fijo, de la forma siguiente:
    {
    "output": [
      {
        "Scored Probabilities": ["Risk" probability,"No Risk" probability
        ]
        },
        {
          "Scored Probabilities": ["Risk" probability,"No Risk" probability
            ]
           }
        ]
    

Para ser coherente con las herramientas visuales de Azure ML que se utilizan en Azure ML Studio y Service, utilice los siguientes nombres de claves:

  • el nombre de clave "Scored Labels" para la clave de salida que indica el valor predicho del modelo
  • el nombre de clave "Scored Probabilities" para la clave de salida que indica una matriz de probabilidades para cada clase

El siguiente archivo JSON de ejemplo cumple los requisitos anteriores y se puede utilizar como plantilla para crear sus propios archivos de respuesta JSON:

{
  "output": [
    {
      "Scored Labels": "No Risk",
      "Scored Probabilities": [
        0.8922524675865824,
        0.10774753241341757
      ]
    },
    {
      "Scored Labels": "No Risk",
      "Scored Probabilities": [
        0.8335192848546905,
        0.1664807151453095
      ]
    }
  ]
}

Cuadernos de ejemplo

Los siguientes cuadernos muestran cómo trabajar con Microsoft Azure ML Service:

Especificación de una instancia de Microsoft Azure ML Service

El primer paso para configurar las evaluaciones de modelos es especificar una instancia de Microsoft Azure ML Service. La instancia de Azure ML Service es dónde se almacenan los modelos y despliegues de inteligencia artificial.

Los modelos y despliegues de IA se conectan en una instancia de Azure ML Service para las evaluaciones de los modelos. Para conectar su servicio a, vaya a la pestaña Configurar ' El icono de pestaña de configuración, añada un proveedor de aprendizaje automático y haga clic en el icono Editar ' Icono de editar. Además de un nombre y una descripción y de especificar si el entorno es Preproducción o Producción, debe proporcionar la siguiente información:

  • ID de cliente: El valor de serie real del ID de cliente, que verifica quién es y autentica y autoriza las llamadas que realiza a Azure Service.
  • Secreto de cliente: El valor de serie real del secreto, que verifica quién es y autentica y autoriza las llamadas que realiza a Azure Service.
  • Arrendatario: El ID de arrendatarioo correspondiente a su organización y que es una instancia dedicada de Azure AD. Para buscar el ID de arrendatario, pase el puntero del ratón sobre el nombre de la cuenta para obtener el directorio y el ID de arrendatario, o seleccione Azure Active Directory > Propiedades > ID de directorio en el portal de Azure.
  • ID de suscripción: Credenciales de suscripción que identifican de forma exclusiva su suscripción a Microsoft Azure. El IDforms de suscripción forma parte del URI para cada llamada de servicio.

Consulte Cómo utilizar el portal para crear una entidad de servicio y una aplicación de Azure AD que puedan acceder a recursos para ver instrucciones sobre cómo obtener sus credenciales de Microsoft Azure.

Ahora está preparado para seleccionar los modelos desplegados y configurar los supervisores. Sus modelos desplegados en el panel Insights, donde puede hacer clic en Añadir al panel. Seleccione los despliegues que desea supervisar y pulse Configurar.

Para obtener más información, consulte Configurar supervisores.

Registro de carga útil con el motor de Microsoft Azure ML Service

Añadir el motor de Microsoft Azure ML Service

Un motor de ejecución watsonx.ai que no sea IBM IBM se vincula como Personalizado y consta de metadatos. No hay integración directa con el servicio watsonx.ai Runtime que IBM sea de IBM.

service_type = "azure_machine_learning_service"
added_service_provider_result = wos_client.service_providers.add(
        name=SERVICE_PROVIDER_NAME,
        description=SERVICE_PROVIDER_DESCRIPTION,
        service_type = service_type,
        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

Puede ver el enlace de servicio con el mandato siguiente:

client.service_providers.list()

Salida de ejemplo:

uid	                                   name	                      service_type	                   created
410e730f-8462-45fe-8b41-a029d6d6043a	My Azure ML Service engine azure_machine_learning_service2019-06-10T22:10:29.398Z

Añadir suscripción de Microsoft Azure ML Service

Añadir suscripción

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

Obtener lista de suscripciones

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

Habilitar registro de carga útil

Habilitar el registro de carga útil en la suscripción

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

Obtener detalles de registro

subscription.payload_logging.get_details()

Puntuación y registro de carga útil

Puntúe el modelo. Para ver un ejemplo completo, consulte el cuaderno Trabajar con Azure Machine Learning Service Engine.

Almacene la solicitud y respuesta en la tabla de registro de carga útil:

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

Para los idiomas distintos de Python, también puede registrar la carga útil utilizando una API REST.

Tema principal: Motores, infraestructuras y modelos de aprendizaje automático soportados

Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información