Esta arquitectura de referencia muestra cómo usar Azure Stack Edge para ampliar la inferencia rápida de aprendizaje automático desde la nube hasta escenarios locales o perimetrales. Azure Stack Hub ofrece funcionalidades de Azure, como proceso, almacenamiento, redes y aprendizaje automático con aceleración por hardware, a cualquier ubicación perimetral.
Architecture
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
La arquitectura consta de los siguientes pasos:
- Azure Machine Learning . Machine Learning le permite crear, entrenar, implementar y administrar modelos de Machine Learning en entornos basados en la nube. Después, estos modelos se pueden implementar en servicios de Azure, incluidos (entre otros) Azure Container Instances, Azure Kubernetes Service (AKS) y Azure Functions.
- Azure Container Registry . Container Registry es un servicio que crea y administra el registro de Docker. Container Registry compila, almacena y administra imágenes de contenedor de Docker y puede almacenar modelos de Machine Learning en contenedores.
- Azure Stack Edge . Azure Stack Edge es un dispositivo de proceso perimetral diseñado para realizar inferencias de aprendizaje automático en el perímetro. Los datos se preprocesan en el perímetro antes de transferirse a Azure. Azure Stack Edge incluye hardware de aceleración de procesos diseñado para mejorar el rendimiento de inferencia de IA en el perímetro.
- Datos locales. Los datos locales hacen referencia a los datos que se usan en el entrenamiento del modelo de Machine Learning. Los datos pueden estar en cualquier solución de almacenamiento local, incluidas las implementaciones de Azure Arc.
Componentes
Detalles del escenario
Posibles casos de uso
Esta solución es ideal para el sector de las telecomunicaciones. Entre los usos típicos para extender la inferencia se incluyen los siguientes:
- Ejecución de la inferencia local y rápida de aprendizaje automático en los datos a medida que se ingieren y se cuenta con una superficie de hardware local importante.
- Creación de soluciones de investigación a largo plazo en las que los datos locales existentes se limpian y se usan para generar un modelo. Después, el modelo se usa tanto en el entorno local como en la nube. Se vuelve a entrenar periódicamente a medida que llegan nuevos datos.
- Compilación de aplicaciones de software que necesitan realizar inferencias sobre los usuarios, tanto en una ubicación física como en línea.
Recomendaciones
Ingesta, transformación y transferencia de datos almacenados localmente
Azure Stack Edge puede transformar los datos con origen en el almacenamiento local antes de transferirlos a Azure. Esta transformación se realiza mediante un dispositivo Azure IoT Edge implementado en el dispositivo de Azure Stack Edge. Estos dispositivos IoT Edge están asociados a un recurso de Azure IoT Hub en la plataforma en la nube de Azure.
Cada módulo de IoT Edge es un contenedor de Docker que cumple una tarea específica en un flujo de trabajo de ingesta, transformación y transferencia. Por ejemplo, un módulo de IoT Edge puede recopilar datos de un recurso compartido local de Azure Stack Edge y transformar los datos en un formato listo para el aprendizaje automático. A continuación, el módulo transfiere los datos transformados a un recurso compartido en la nube de Azure Stack Edge. Puede agregar módulos personalizados o integrados al dispositivo de IoT Edge o desarrollar módulos de IoT Edge personalizados.
Nota
Los módulos de IoT Edge se registran como imágenes de contenedor de Docker en Container Registry.
En el recurso de Azure Stack Edge en la plataforma en la nube de Azure, el recurso compartido en la nube está respaldado por un recurso de la cuenta de Azure Blob Storage. Todos los datos del recurso compartido en la nube se cargarán automáticamente en la cuenta de almacenamiento asociada. Para comprobar la transformación de los datos y la transferencia, monte el recurso compartido local o en la nube o recorra la cuenta de Azure Storage.
Entrenamiento e implementación de un modelo
Después de preparar y almacenar los datos en Blob Storage, puede crear un conjunto de datos de Machine Learning que se conecte a Azure Storage. Un conjunto de datos representa una copia única de los datos en el almacenamiento a la que Machine Learning hace referencia directamente.
Puede usar la interfaz de la línea de comandos (CLI) de Machine Learning, el SDK de R, el SDK de Python, el diseñador o Visual Studio Code para compilar los scripts necesarios para entrenar el modelo.
Después de entrenar y preparar el modelo para su implementación, puede implementarlo en diversos servicios de Azure, incluidos, entre otros, los siguientes:
- Azure Container Registry . Puede implementar los modelos en un registro privado de Docker, como Azure Container Registry, porque son imágenes de contenedor de Docker.
- Azure Container Instances . Puede implementar la imagen de contenedor de Docker del modelo directamente en un grupo de contenedores.
- Azure Kubernetes Service . Puede usar Azure Kubernetes Service para escalar automáticamente la imagen del contenedor de Docker del modelo para implementaciones de producción a gran escala.
- Azure Functions . Puede empaquetar un modelo para que se ejecute directamente en una instancia de Functions.
- Azure Machine Learning . Puede usar instancias de proceso, así como estaciones de trabajo de desarrollo administradas basadas en la nube, tanto para el entrenamiento como para la inferencia de modelos. También puede implementar el modelo de forma similar en dispositivosIoT Edge y Azure Stack Edge locales.
Nota
Para esta arquitectura de referencia, el modelo se implementa en Azure Stack Edge para que esté disponible para la inferencia en el entorno local. Asimismo, el modelo se implementa en Container Registry para garantizar que esté disponible para la inferencia en la más amplia variedad de servicios de Azure.
Inferencia con un modelo recién implementado
Azure Stack Edge puede ejecutar modelos de Machine Learning localmente de manera rápida con los datos locales mediante su hardware integrado de aceleración de procesos. Este cálculo se produce completamente en el perímetro. El resultado es la obtención rápida de información a partir de los datos mediante el uso de hardware que esté más cerca del origen de datos que una región de nube pública.
Además, Azure Stack Edge sigue transfiriendo datos a Machine Learning para volver a entrenar y mejorar de manera continua mediante una canalización de aprendizaje automático que está asociada con el modelo que ya se ejecuta con los datos almacenados localmente.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Disponibilidad
- Considere la posibilidad de colocar el recurso de Azure Stack Edge en la misma región de Azure que los otros servicios de Azure que accederán a él. Para optimizar el rendimiento de la carga, considere la posibilidad de colocar la cuenta de Azure Blob Storage en la región en la que el dispositivo tiene la mejor conexión de red.
- Considere la posibilidad de usar Azure ExpressRoute para una conexión estable y redundante entre el dispositivo y Azure.
Facilidad de uso
- Los administradores pueden comprobar que el origen de datos del almacenamiento local se haya transferido al recurso de Azure Stack Edge correctamente. Para ello, pueden montar el recurso compartido de archivos del Bloque de mensajes del servidor (SMB) o Network File System (NFS) o conectarse a la cuenta de Blob Storage asociada mediante el Explorador de Azure Storage.
- Use conjuntos de datos de Machine Learning para hacer referencia a los datos en Blob Storage mientras se entrena el modelo. Hacer referencia al almacenamiento elimina la necesidad de insertar secretos, rutas de acceso de datos o cadenas de conexión en los scripts de entrenamiento.
- En el área de trabajo de Machine Learning, registre y haga un seguimiento de los modelos de aprendizaje automático para hacer un seguimiento de las diferencias entre los modelos en distintos momentos. También puede reflejar de forma similar los metadatos de seguimiento y control de versiones en las etiquetas que se usan para las imágenes de contenedor de Docker que se implementan en Container Registry.
DevOps
- Revise el enfoque de administración del ciclo de vida de MLOps para Machine Learning. Por ejemplo, use GitHub o Azure Pipelines para crear un proceso de integración continua que entrene y vuelva a entrenar automáticamente un modelo. El entrenamiento se puede desencadenar cuando los nuevos datos rellenan el conjunto de datos o se hace un cambio en los scripts de entrenamiento.
- El área de trabajo de Azure Machine Learning registrará y administrará automáticamente las imágenes de contenedor de Docker para los modelos de Machine Learning y los módulos de IoT Edge.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.
- Puede usar la calculadora de precios de Azure para calcular los costos.
- Los precios de Azure Stack Edge se calculan como una suscripción mensual de tarifa plana con un precio de envío único.
- Azure Machine Learning también implementa los servicios Container Registry, Azure Storage y Azure Key Vault, lo que supone costos adicionales. Para obtener más información, consulte Funcionamiento de Azure Machine Learning: Arquitectura y conceptos.
- Los precios de Azure Machine Learning incluyen los cargos de las máquinas virtuales que se usan para entrenar el modelo en la nube pública.
Pasos siguientes
Documentación del producto
Módulos de Microsoft Learn: