Share via


Ejecución de modelos de Azure Machine Learning desde Fabric mediante puntos de conexión por lotes (versión preliminar)

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo, aprenderá a consumir implementaciones por lotes de Azure Machine Learning desde Microsoft Fabric. Aunque el flujo de trabajo usa modelos que se implementan en puntos de conexión por lotes, también admite el uso de implementaciones de canalización por lotes de Fabric.

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Requisitos previos

  • Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
  • Inicie sesión en Microsoft Fabric.
  • Suscripción a Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita antes de empezar. Pruebe la versión gratuita o de pago de Azure Machine Learning.
  • Un área de trabajo de Azure Machine Learning. Si no tiene un área de trabajo, siga los pasos descritos en Cómo administrar áreas de trabajo para crear una.
    • Asegúrese de tener los permisos siguientes en el área de trabajo:
      • Crear o administrar implementaciones y puntos de conexión por lotes: usar los roles de Propietario, Colaborador o un rol personalizado que permita Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.
      • Crear implementaciones de ARM en el grupo de recursos del área de trabajo: use roles de Propietario, Colaborador o un rol personalizado que permita Microsoft.Resources/deployments/write en el grupo de recursos donde se implemente el área de trabajo.
  • Un modelo implementado en un punto de conexión por lotes. Si no tiene uno, siga los pasos descritos en Implementación de modelos para la puntuación en puntos de conexión por lotes para crear uno.
  • Descargue el conjunto de datos de ejemplo heart-unlabeled.csv que se usará para la puntuación.

Architecture

Azure Machine Learning no puede acceder directamente a los datos almacenados en OneLake de Fabric. Sin embargo, sí puede usar la funcionalidad de OneLake para crear accesos directos dentro de una instancia de almacén de datos de lago Lakehouse para leer y escribir datos almacenados en Azure Data Lake Gen2. Dado que Azure Machine Learning admite el almacenamiento de Azure Data Lake Gen2, esta configuración le permite usar Fabric y Azure Machine Learning juntos. La arquitectura de datos es la siguiente:

A diagram showing how Azure Storage accounts are used to connect Fabric with Azure Machine Learning.

Configuración del acceso a datos

Para permitir que Fabric y Azure Machine Learning lean y escriban los mismos datos sin tener que copiarlos, puede aprovechar los accesos directos de OneLake y los almacenes de datos de Azure Machine Learning. Al apuntar un acceso directo de OneLake y un almacén de datos a la misma cuenta de almacenamiento, puede asegurarse de que tanto Fabric como Azure Machine Learning leen y escriben en los mismos datos subyacentes.

En esta sección, creará o identificará una cuenta de almacenamiento que se usará para almacenar la información que consumirá el punto de conexión por lotes y que los usuarios de Fabric verán en OneLake. Fabric solamente admite cuentas de almacenamiento con nombres jerárquicos habilitados, como Azure Data Lake Gen2.

Creación de un acceso directo de OneLake a la cuenta de almacenamiento

  1. En Fabric, abra la experiencia de ingeniería de datos Synapse.

  2. En el panel izquierdo, seleccione el área de trabajo de Fabric para abrirlo.

  3. Abra la instancia de almacén de datos de lago Lakehouse que usará para configurar la conexión. Si aún no tiene una instancia de almacén de datos de lago, vaya a la experiencia de ingeniería de datos para crear una instancia de lakehouse. En este ejemplo, se usa una instancia de lakehouse denominada de confianza.

  4. En la barra de navegación de la izquierda, abra más opciones para Archivosy, a continuación, seleccione Nuevo acceso directo para abrir el asistente.

    A screenshot showing how to create a new shortcut in a lakehouse.

  5. Seleccione la opción Azure Data Lake Storage Gen2.

    A screenshot showing how to create an Azure Data Lake Storage Gen2 shortcut.

  6. En la sección Configuración de conexión, pegue la dirección URL asociada a la cuenta de almacenamiento de Azure Data Lake Gen2.

    A screenshot showing how to configure the URL of the shortcut.

  7. En la sección Credenciales de conexión:

    1. En Conexión, seleccione Crear nueva conexión.
    2. Para Nombre de conexión, mantenga el valor que figura rellenado de forma predeterminada.
    3. Para Tipo de autenticación, seleccione Cuenta de organización para usar las credenciales del usuario conectado a través de OAuth 2.0.
    4. Seleccione Iniciar sesión.
  8. Seleccione Siguiente.

  9. Si es necesario, configure la ruta de acceso al acceso directo en relación con la cuenta de almacenamiento. Use esta opción para configurar la carpeta a la que apuntará el acceso directo.

  10. Configure el Nombre del acceso directo. Este nombre será un camino dentro del almacén de datos de lago. En este ejemplo, asigne al acceso directo el nombre datasets.

  11. Guarde los cambios.

Creación de un almacén de datos que apunte a la cuenta de almacenamiento

  1. Abra el Estudio de Azure Machine Learning.

  2. Cargue su área de trabajo de Azure Machine Learning.

  3. Vaya a la sección Datos.

  4. Seleccione la pestaña Almacenes de datos.

  5. Seleccione Crear.

  6. Configure el almacén de datos como sigue:

    1. En Nombre del almacén de datos, escriba trusted_blob.

    2. Para el Tipo de almacén de datos, seleccione Azure Blob Storage.

      Sugerencia

      ¿Por qué debe configurar Azure Blob Storage en lugar de Azure Data Lake Gen2? Los puntos de conexión por lotes solamente pueden escribir predicciones en cuentas de Blob Storage. Sin embargo, cada cuenta de almacenamiento de Azure Data Lake Gen2 también es una cuenta de almacenamiento de blobs; por lo tanto, se pueden usar indistintamente.

    3. Seleccione la cuenta de almacenamiento desde el asistente, con el Id. de suscripción, la Cuenta de almacenamiento y el Contenedor de blobs (sistema de archivos).

      A screenshot showing how to configure the Azure Machine Learning data store.

    4. Seleccione Crear.

  7. Asegúrese de que el proceso en el que se ejecuta el punto de conexión por lotes tiene permisos para montar los datos en esta cuenta de almacenamiento. Aunque el acceso todavía lo concede la identidad que invoca el punto de conexión, el proceso en el que se ejecuta el punto de conexión por lotes debe tener permiso para montar la cuenta de almacenamiento que usted proporcione. Para más información, consulte Acceso a servicios de almacenamiento.

Cargar un conjunto de datos de ejemplo

Cargue datos de ejemplo para que el punto de conexión los use como entrada:

  1. Vaya al área de trabajo de Fabric.

  2. Seleccione la instancia de almacén de datos de lago donde haya creado el acceso directo.

  3. Vaya al acceso directo de conjuntos de datos.

  4. Cree una carpeta para almacenar el conjunto de datos de ejemplo que desee puntuar. Asigne a la carpeta el nombre uci-heart-unlabeled.

  5. Use la opción Obtener datos y seleccione Cargar archivos para cargar el conjunto de datos de ejemplo heart-unlabeled.csv.

    A screenshot showing how to upload data to an existing folder in OneLake.

  6. Cargue los datos de ejemplo.

    A screenshot showing how to upload a file to OneLake.

  7. El archivo de ejemplo está listo para consumirse. Anote la ruta de acceso a la ubicación donde lo ha guardado.

Creación de una canalización de inferencia por lotes para Fabric

En esta sección, creará una canalización de inferencia de Fabric a lotes en el área de trabajo de Fabric existente e invocará puntos de conexión por lotes.

  1. Vuelva a la experiencia de ingeniería de datos (si ya había salido de ella), mediante el icono del selector de experiencia en la esquina inferior izquierda de la página principal.

  2. Abra el área de trabajo de Fabric.

  3. En la sección Nueva de la página principal, seleccione Canalización de datos.

  4. Asigne un nombre a la canalización y seleccione Crear.

    A screenshot showing where to select the data pipeline option.

  5. Seleccione la pestaña Actividades en la barra de herramientas del lienzo del diseñador.

  6. Seleccione más opciones al final de la pestaña y seleccione Azure Machine Learning.

    A screenshot showing how to add the Azure Machine Learning activity to a pipeline.

  7. Vaya a la pestaña Configuración y configure la actividad de la siguiente manera:

    1. Seleccione Nueva junto a conexión de Azure Machine Learning para crear una nueva conexión al área de trabajo de Azure Machine Learning que contiene la implementación.

      A screenshot of the configuration section of the activity showing how to create a new connection.

    2. En la sección Configuración de conexión del asistente para creación, especifique los valores del Id. de suscripción, el Nombre del grupo de recursos y el Nombre del área de trabajo donde se implementa el punto de conexión.

      A screenshot showing examples of the values for subscription ID, resource group name, and workspace name.

    3. En la sección Credenciales de conexión, seleccione Cuenta de organización como valor del Tipo de autenticación para la conexión. Cuenta de organización usa las credenciales del usuario conectado. Como alternativa, puede usar Entidad de servicio. En la configuración de producción, se recomienda usar una entidad de servicio. Independientemente del tipo de autenticación, asegúrese de que la identidad asociada a la conexión tiene los derechos necesarios para llamar al punto de conexión por lotes que ha implementado.

      A screenshot showing how to configure the authentication mechanism in the connection.

    4. Guarde la conexión. Una vez seleccionada la conexión, Fabric rellena automáticamente los puntos de conexión por lotes disponibles en el área de trabajo seleccionada.

  8. Para Punto de conexión por lotes, seleccione el punto de conexión por lotes al que desea llamar. En este ejemplo, seleccione heart-classifier-....

    A screenshot showing how to select an endpoint once a connection is configured.

    La sección Implementación por lotes se rellena automáticamente con las implementaciones disponibles en el punto de conexión.

  9. Para Implementación por lotes, seleccione una implementación específica de la lista, si es necesario. Si no selecciona una implementación, Fabric invoca la implementación Predeterminada en el punto de conexión, lo que permite al creador del punto de conexión por lotes decidir a qué implementación se llama. En la mayoría de los escenarios, lo más interesante será mantener este comportamiento predeterminado.

    A screenshot showing how to configure the endpoint to use the default deployment.

Configuración de entradas y salidas para el punto de conexión por lotes

En esta sección, configurará entradas y salidas desde el punto de conexión por lotes. Las entradas a los puntos de conexión por lotes proporcionan datos y parámetros necesarios para ejecutar el proceso. La canalización por lotes de Azure Machine Learning en Fabric admite tanto implementaciones de modelos como implementaciones de canalización. El número y el tipo de entradas que proporcione dependen del tipo de implementación. En este ejemplo, se usa una implementación de modelo que requiere exactamente una entrada y genera una salida.

Para obtener más información sobre las entradas y salidas del punto de conexión por lotes, consulte Descripción de las entradas y salidas en puntos de conexión por lotes.

Configuración de la sección de entradas

Configure la sección Entradas de trabajo como se indica a continuación:

  1. Expanda la sección Entradas de trabajo.

  2. Seleccione Nuevo para agregar una nueva entrada al punto de conexión.

  3. Asigne un nombre a la entrada input_data. Puesto que usa una implementación de modelos, puede usar cualquier nombre. Sin embargo, para las implementaciones de canalización, debe indicar el nombre exacto de la entrada que espera el modelo.

  4. Seleccione el menú desplegable situado junto a la entrada que acaba de agregar para abrir la propiedad de la entrada (nombre y campo de valor).

  5. Escriba JobInputType en el campo Nombre para indicar el tipo de entrada que quiere crear.

  6. Escriba UriFolder en el campo Valor para indicar que la entrada es una ruta de acceso de carpeta. Otros valores admitidos para este campo son UriFile (una ruta de acceso de archivo) o Literal (cualquier valor literal como cadena o entero). Debe usar el tipo correcto que espera la implementación.

  7. Seleccione el signo más (+) situado junto a la propiedad para agregar otra propiedad a esta entrada.

  8. Escriba Uri en el campo Nombre para indicar la ruta de acceso a los datos.

  9. Escriba azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled, la ruta de acceso para buscar los datos, en el campo Valor. Aquí se usa una ruta de acceso que conduce a la cuenta de almacenamiento que está vinculada a OneLake en Fabric y a Azure Machine Learning. azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled es la ruta de acceso a los archivos CSV con los datos de entrada esperados para el modelo que se implementa en el punto de conexión por lotes. También puede usar una ruta de acceso directa a la cuenta de almacenamiento, como https://<storage-account>.dfs.azure.com.

    A screenshot showing how to configure inputs in the endpoint.

    Sugerencia

    Si la entrada es de tipo Literal, reemplace la propiedad Uri por "Valor".

Si el punto de conexión requiere más entradas, repita los pasos anteriores para cada una de ellas. En este ejemplo, las implementaciones de modelos requieren exactamente una entrada.

Configuración de la sección de salidas

Configure la sección Salidas de trabajo como se indica a continuación:

  1. Expanda la sección Salidas de trabajo.

  2. Seleccione Nueva para agregar una nueva salida al punto de conexión.

  3. Asigne el nombre output_data a la salida. Puesto que usa una implementación de modelos, puede usar cualquier nombre. Sin embargo, para las implementaciones de canalización, debe indicar el nombre exacto de la salida que espera el modelo.

  4. Seleccione el menú desplegable situado junto a la salida que acaba de agregar para abrir la propiedad de la salida (nombre y campo de valor).

  5. Escriba JobOutputType en el campo Nombre para indicar el tipo de salida que quiere crear.

  6. Escriba UriFile en el campo Valor para indicar que la salida es una ruta de acceso de carpeta. El otro valor admitido para este campo es UriFolder (una ruta de acceso de carpeta). A diferencia de la sección de entrada del trabajo, no se admiteLiteral (cualquier valor literal como una cadena o un número entero) como salida.

  7. Seleccione el signo más (+) situado junto a la propiedad para agregar otra propiedad a esta salida.

  8. Escriba Uri en el campo Nombre para indicar la ruta de acceso a los datos.

  9. Escriba @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv'), la ruta de acceso a donde se debe colocar la salida, en el campo Valor. Los puntos de conexión por lotes de Azure Machine Learning solamente admiten usar rutas de almacenes de datos como salidas. Dado que las salidas deben ser únicas para evitar conflictos, ha usado una expresión dinámica, @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv'), para construir la ruta de acceso.

    A screenshot showing how to configure outputs in the endpoint

Si el punto de conexión devuelve más salidas, repita los pasos anteriores para cada una de ellas. En este ejemplo, las implementaciones de modelos producen exactamente una salida.

(Opcional) Configuración de los valores de configuración de trabajo

También puede configurar la Configuración de trabajos agregando las siguientes propiedades:

Para implementaciones de modelos:

Configuración Descripción
MiniBatchSize Tamaño del lote.
ComputeInstanceCount Número de instancias de proceso que se van a solicitar desde la implementación.

Para implementaciones de canalizaciones:

Configuración Descripción
ContinueOnStepFailure Indica si la canalización debe detener el procesamiento de nodos después de un error.
DefaultDatastore Indica el almacén de datos predeterminado que se va a usar para las salidas.
ForceRun Indica si la canalización debe obligar a que se ejecuten todos los componentes, incluso si la salida se puede deducir de una ejecución anterior.

Una vez finalizada la configuración, puede probar la canalización.