Creación de una canalización predictiva con Machine Learning Studio (clásico) con Azure Data Factory o Synapse Analytics

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

Importante

La compatibilidad con Azure Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning por esa fecha.

A partir del 1 de diciembre de 2021, no puedes crear nuevos recursos de Machine Learning Studio (clásico) (área de trabajo y plan de servicio web). Hasta el 31 de agosto de 2024, puedes seguir usando los experimentos y servicios web existentes de Machine Learning Studio (clásico). Para más información, vea:

La documentación de Machine Learning Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Nota:

Debido a que los recursos de estudio de Machine Learning (clásico) ya no se pueden crear después del 1 de diciembre de 2021, se recomienda a los usuarios que usen Azure Machine Learning con la actividad de ejecución de canalización del Machine Learning en lugar de usar la actividad de ejecución por lotes para ejecutar los lotes de estudio de Machine Learning (clásico).

ML Studio (clásico) permite compilar, probar e implementar soluciones de análisis predictivo. Desde una perspectiva general, esto se realiza en tres pasos:

  1. Crear un experimento de entrenamiento. Este paso se lleva a cabo mediante ML Studio (clásico). ML Studio (clásico) es un entorno de desarrollo visual de colaboración que se emplea para entrenar y probar un modelo de análisis predictivo con datos de entrenamiento.
  2. Convertirlo en un experimento predictivo. Una vez que el modelo se ha entrenado con datos existentes y está listo para usarlo para puntuar nuevos datos, debe preparar y simplificar el experimento para la puntuación.
  3. Implementarlo como un servicio web. Puede publicar el experimento de puntuación como un servicio web de Azure. Los usuarios pueden enviar datos al modelo a través de este punto de conexión de servicio web y recibir las predicciones de resultado para el modelo.

Uso de Machine Learning Studio (clásico) con Azure Data Factory o Synapse Analytics

Azure Data Factory y Synapse Analytics permiten crear fácilmente canalizaciones que usan un servicio web de Machine Learning Studio (clásico) publicado para realizar análisis predictivos. Con la actividad de ejecución por lotes en una canalización, puede invocar un servicio web de Machine Learning Studio (clásico) para realizar predicciones sobre los datos del lote.

Pasado algún tiempo, los modelos predictivos en los experimentos de puntuación de Machine Learning Studio (clásico) tienen que volver a entrenarse con conjuntos de datos de entrada nuevos. Puede volver a entrenar un modelo a partir de una canalización mediante estos pasos:

  1. Publicar el experimento de entrenamiento (experimento no predictivo) como un servicio web. Tiene que llevar a cabo este paso en ML Studio (clásico), tal como hizo para exponer el experimento predictivo como un servicio web en el escenario anterior.
  2. Usar la actividad de ejecución de lotes de ML Studio (clásico) para invocar el servicio web para el experimento de entrenamiento. Básicamente, puede emplear la actividad de ejecución por lotes de ML Studio (clásico) para invocar el servicio web de entrenamiento y el servicio web de puntuación.

Cuando haya terminado el reciclaje, actualice el servicio web de puntuación (experimento predictivo expuesto como servicio web) con el modelo recién entrenado mediante la actividad de recursos de actualización de ML Studio (clásico) . Para obtener más información, consulte el artículo Updating models using Update Resource Activity (Actualización de modelos mediante la actividad de recursos de actualización).

Servicio vinculado de ML Studio (clásico)

Se crea un servicio vinculado de Machine Learning Studio (clásico) para vincular un servicio web de Machine Learning Studio (clásico). El servicio vinculado lo usan la actividad de ejecución por lotes de Machine Learning Studio (clásico) y la actividad de actualización de recurso.

{
    "type" : "linkedServices",
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "URL to Azure ML Predictive Web Service",
            "apiKey": {
                "type": "SecureString",
                "value": "api key"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Vea en el artículo Compute linked services (Servicios vinculados de proceso) una descripción de las propiedades en la definición de JSON.

Machine Learning Studio (clásico) admite los servicios web clásicos y los servicios web nuevos para el experimento predictivo. Puede elegir el más adecuado en el área de trabajo de Data Factory o Synapse. Si desea la información necesaria para crear el servicio vinculado de Machine Learning Studio (clásico), vaya a https://services.azureml.net, donde se indican todos los servicios web (nuevos) y los servicios web clásicos. Seleccione el servicio web al que le gustaría tener acceso y haga clic en la página Consumir. Copie Clave principal en la propiedad apiKey y Batch Requests (Solicitudes por lotes) en la propiedad mlEndpoint.

ML Studio (classic) Web Services

Actividad de ejecución por lotes de ML Studio (clásico)

El siguiente fragmento JSON define una actividad de ejecución de lotes de ML Studio (clásico). La definición de actividad tiene una referencia al servicio vinculado de ML Studio (clásico) que ha creado anteriormente.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "<web service input name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path1"
            },
            "<web service input name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path2"
            }
        },
        "webServiceOutputs": {
            "<web service output name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path3"
            },
            "<web service output name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path4"
            }
        },
        "globalParameters": {
            "<Parameter 1 Name>": "<parameter value>",
            "<parameter 2 name>": "<parameter 2 value>"
        }
    }
}
Propiedad Descripción Obligatorio
name Nombre de la actividad en la canalización
description Texto que describe para qué se usa la actividad. No
type Para la actividad de U-SQL de Data Lake Analytics, el tipo de actividad es AzureMLBatchExecution.
linkedServiceName Servicios vinculados al servicio vinculado de ML Studio (clásico). Para obtener más información sobre este servicio vinculado, vea el artículo Compute linked services (Servicios vinculados de procesos).
webServiceInputs Pares clave-valor que asignan los nombres de entradas del servicio web de ML Studio (clásico). La clave debe coincidir con los parámetros de entrada definidos en el servicio web publicado de ML Studio (clásico). El valor es un par de propiedades FilePath y servicios vinculados de Azure Storage que especifica las ubicaciones del blob de entrada. No
webServiceOutputs Pares clave-valor que asignan los nombres de entradas del servicio web de ML Studio (clásico). La clave debe coincidir con los parámetros de salida definidos en el servicio web publicado de ML Studio (clásico). El valor es un par de propiedades FilePath y servicios vinculados de Azure Storage que especifica las ubicaciones del blob de salida. No
globalParameters Pares clave-valor que se pasan al punto de conexión del servicio de ejecución de Batch de ML Studio (clásico). Las claves deben coincidir con los nombres de los parámetros del servicio web definidos en el servicio web publicado de ML Studio (clásico). Los valores se pasan en la propiedad GlobalParameters de la solicitud de ejecución de Batch de ML Studio (clásico). No

Escenario 1: experimentos mediante entradas y salidas de servicios web que hacen referencia a datos de Azure Blob Storage

En este escenario, el servicio web de Machine Learning Studio (clásico) realiza predicciones mediante datos de un archivo de un almacenamiento de blobs de Azure y almacena los resultados de predicción en el almacenamiento de blobs. El siguiente código JSON define una canalización con una actividad AzureMLBatchExecution. Se hace referencia a los datos de entrada y salida en Azure Blob Storage mediante un par LinkedName y FilePath. En el servicio vinculado de ejemplo las entradas y salidas son diferentes. Puede usar servicios vinculados diferentes para cada una de las entradas o salidas, de modo que el servicio pueda seleccionar los archivos correctos y enviarlos al servicio web de Machine Learning Studio (clásico).

Importante

En el experimento de ML Studio (clásico), los puertos de entrada y salida del servicio web y los parámetros globales tienen nombres predeterminados ("input1", "input2") que se pueden personalizar. Los nombres que se utilizan para la configuración de globalParameters, webServiceOutputs y webServiceInputs deben coincidir exactamente con los de los experimentos. Puede ver la carga útil de la solicitud de ejemplo en la página de ayuda de ejecución de lotes del punto de conexión de ML Studio (clásico) para comprobar la asignación esperada.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "input1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in1.csv"
            },
            "input2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in2.csv"
            }
        },
        "webServiceOutputs": {
            "outputName1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out1.csv"
            },
            "outputName2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out2.csv"
            }
        }
    }
}

Escenario 2: experimentos mediante módulos lector y escritor para hacer referencia a datos de varios almacenamientos

Otro escenario común al crear experimentos de ML Studio (clásico) es usar módulos Importar datos y Exportar datos. El módulo Importar datos se usa para cargar datos en un experimento y el módulo Exportar datos se usa para guardar los datos de los experimentos. Para obtener más información sobre los módulos Importar datos y Exportar datos, vea los temas Importar datos y Exportar datos en MSDN Library.

Al usar los módulos Importar datos y Exportar datos, es recomendable emplear un parámetro de servicio web para cada propiedad de estos módulos. Estos parámetros web permiten configurar los valores en tiempo de ejecución. Por ejemplo, puede crear un experimento con un módulo de importación de datos que usa una base de datos de Azure SQL: XXX.database.windows.net. Una vez implementado el servicio web, quiere habilitar los consumidores del servicio web con el fin de especificar otro servidor SQL lógico denominado YYY.database.windows.net. Puede usar un parámetro de servicio web para permitir que se configure este valor.

Nota

Las entradas y salidas de servicio web son diferentes de los parámetros de servicio web. En el primer escenario, ha visto cómo pueden especificarse una entrada y una salida para un servicio web de ML Studio (clásico). En este escenario, se pasan parámetros para un servicio web que corresponden a las propiedades de los módulos Importar datos y Exportar datos.

Echemos un vistazo a un escenario de uso de parámetros de servicio web. Tiene un servicio web de ML Studio (clásico) implementado que usa un módulo lector para leer datos de uno de los orígenes de datos compatibles con ML Studio (clásico) (por ejemplo: Azure SQL Database). Después de realizar la ejecución de lotes, los resultados se escriben con un módulo escritor (Azure SQL Database). No hay entradas ni salidas de servicio web definidas en los experimentos. En este caso, se recomienda que configure los parámetros de servicio web pertinentes para los módulos lector y escritor. De esta forma, se podrán configurar los módulos lector y escritor cuando se use la actividad AzureMLBatchExecution. Los parámetros de servicio web se especifican en la sección globalParameters de la actividad JSON como se indica a continuación.

"typeProperties": {
    "globalParameters": {
        "Database server name": "<myserver>.database.windows.net",
        "Database name": "<database>",
        "Server user account name": "<user name>",
        "Server user account password": "<password>"
    }
}

Nota

Los parámetros de servicio web distinguen entre mayúsculas y minúsculas para garantizar que los nombres que especifica en JSON de actividad coinciden con los que muestra el servicio web.

Cuando haya terminado el reciclaje, actualice el servicio web de puntuación (experimento predictivo expuesto como servicio web) con el modelo recién entrenado mediante la actividad de recursos de actualización de ML Studio (clásico) . Para obtener más información, consulte el artículo Updating models using Update Resource Activity (Actualización de modelos mediante la actividad de recursos de actualización).

Vea los siguientes artículos, en los que se explica cómo transformar datos de otras maneras: