Compartir a través de


Plataforma de aplicaciones para cargas de trabajo de inteligencia artificial en Azure

Debe tener en cuenta cuidadosamente la plataforma de hospedaje de aplicaciones en la que se implementa la carga de trabajo de inteligencia artificial para asegurarse de que puede maximizar la eficacia, la seguridad de las operaciones y la confiabilidad.

En este área de diseño se tratan varios tipos de aplicaciones que podrían ser relevantes para la carga de trabajo de IA:

  • Análisis exploratorio de datos (EDA)
  • Entrenamiento y ajuste de modelos
  • Inferencia

En este artículo se proporcionan instrucciones para seleccionar la mejor plataforma para cada una de estas funciones para satisfacer sus necesidades empresariales. También hay recomendaciones generales que se pueden aplicar a todas estas funciones.

Recomendaciones

Este es el resumen de las recomendaciones proporcionadas en este artículo.

Recomendación Descripción
Reutilización de herramientas. Empiece por evaluar las herramientas que ya usa para comprender si se pueden reutilizar para la carga de trabajo de IA. Si admiten la funcionalidad necesaria y pueden cumplir sus requisitos de confiabilidad, seguridad, costo y rendimiento, es posible que la incorporación de una nueva herramienta no valga la pena el costo y el esfuerzo.
Tenga en cuenta los requisitos de cumplimiento de los datos y las regiones en las que planea implementar. Es posible que tenga que limitar las regiones que implemente o aísle partes de la carga de trabajo entre sí para cumplir los requisitos de cumplimiento. Ir a la fase de diseño con esta información puede ayudarle a protegerse de la necesidad de rediseñar más adelante.
Minimice la creación. Considere la posibilidad de soluciones de plataforma como servicio (PaaS) o software como servicio (SaaS) para minimizar la carga operativa que supone crear su propia solución, como la aplicación de revisiones y otro mantenimiento. Minimizar la carga del día 2 necesaria para la nueva tecnología simplifica la adopción. Muchas funciones de inteligencia artificial son complejas, por lo que no se recomienda crear su propia plataforma.
Comprenda sus cuotas y límites. Al diseñar para el uso de soluciones PaaS o SaaS, comprenda las cuotas o límites que se aplican. La capacidad de escalar horizontalmente para satisfacer las demandas de tráfico elevadas podría verse afectada por cuotas o límites, por lo que es posible que tenga que ajustar el diseño para minimizar ese riesgo.
Implemente en la misma región. Intente implementar todos los recursos relacionados en la misma región para reducir la latencia y simplificar el diseño.
Práctica de la implementación segura. En general, debe tratar las API de la carga de trabajo de IA igual que cualquier otra API del entorno. Todas las API deben colocarse detrás de una puerta de enlace y todo el código debe controlarse con los mismos procedimientos de implementación seguros que todos los demás recursos de código.
Establecer pruebas comparativas de rendimiento a través de la experimentación. Cada carga de trabajo de IA es diferente y la cantidad de proceso que necesita depende de su caso de uso. Determine la cantidad y los tipos de proceso que son óptimos para la carga de trabajo mediante la realización de pruebas comparativas exhaustivas. Esta guía le ayuda a elegir una plataforma, pero solo sabrá qué SKU son adecuadas para la carga de trabajo después de las pruebas comparativas.

Consideraciones para la plataforma EDA

EDA es una función preliminar común que los científicos de datos realizan antes de modelar o analizar estadísticas. Por lo tanto, se puede considerar una fase de desarrollo, lo que significa que los objetivos de confiabilidad y rendimiento pueden ser significativamente inferiores a los de los recursos de producción y mantener la productividad es el factor más importante.

En esta sección se proporcionan instrucciones sobre las funcionalidades que se deben tener en cuenta al seleccionar una solución de plataforma de EDA.

Requisitos funcionales

Al evaluar una plataforma de EDA, tenga en cuenta las siguientes preguntas:

  • ¿La plataforma admite el uso transitorio?

    La plataforma debe admitir áreas de trabajo transitorias y proceso, lo que significa que debe poder detener los recursos necesarios cuando no se usen. Esta funcionalidad ayuda a controlar los costos. Los trabajos de EDA suelen ser interactivos, por lo que los usuarios deben poder iniciar máquinas virtuales y detenerlos a medida que ejecutan trabajos.

  • ¿La plataforma admite la opcionalidad de proceso?

    La plataforma debe habilitar el acceso a petición a las GPU según sea necesario y proporcionar varias opciones de proceso para ayudar a ajustar el tamaño correcto de la plataforma.

  • ¿La plataforma admite MLflow?

    La plataforma EDA debe permitir elegir una tecnología que permita la integración con MLflow para realizar el seguimiento de los experimentos. Se recomienda MLflow como protocolo de desarrollo, implementación y administración de modelos, ya que proporciona las siguientes ventajas:

    • Seguimiento de experimentos. MLflow permite realizar un seguimiento de los experimentos mediante la grabación de parámetros, métricas y artefactos. Esta funcionalidad es esencial durante EDA para que pueda realizar un seguimiento de los diferentes pasos de preprocesamiento de datos y técnicas de ingeniería de características y sus impactos en el rendimiento del modelo.
    • Reproducibilidad. Dado que registra todos los detalles de los experimentos, MLflow ayuda a garantizar que puede reproducir los resultados, lo que es fundamental para validar los resultados.
    • Control de versiones de datos y modelos. MLflow ayuda con los conjuntos de datos y modelos de control de versiones, lo que facilita la administración de diferentes versiones de transformaciones de datos y modelos probados.
    • Trabajo colaborativo. MLflow proporciona una plataforma centralizada en la que los científicos de datos pueden compartir sus experimentos y resultados, lo que facilita la colaboración y el uso compartido de conocimientos.

Requisitos no funcionales

Tenga en cuenta estas preguntas también:

  • ¿Cómo puede la plataforma ayudar a controlar los costos?

    La plataforma debe permitir que los científicos de datos realicen su trabajo según sus requisitos de programación, pero debe tener el tamaño adecuado para garantizar que se cumplan las expectativas de costos.

  • ¿Qué requisitos de seguridad se deben seguir para la plataforma?

    Los datos usados durante la fase de EDA probablemente serán datos de producción, lo que requiere que siga las prácticas de producción para proteger esos datos y supervisar la plataforma. Para ello, la plataforma debe admitir todos los controles de seguridad necesarios, entre los que se incluyen:

    • Acceso y autorización.
    • Cifrado en reposo y en tránsito.
    • Requisitos de protección de datos regionales.
    • Sólida funcionalidad de supervisión y alertas, incluido el registro y la auditoría.
    • Acceso de red privada a repositorios centralizados para imágenes de contenedor, datos y recursos de código.

Herramientas

Use una instancia de proceso de Azure Machine Learning con recursos compartidos de archivos de nivel de equipo como plataforma EDA. Una excepción a esto es si el equipo u organización ya usa una plataforma de hospedaje adecuada, como los clústeres de proceso habilitados para GPU en Databricks, por ejemplo. En ese caso, podría ser más adecuado permanecer en esa plataforma.

Nota:

No cree una plataforma EDA completa a menos que necesite. El proceso optimizado para GPU es costoso y no es adecuado si el caso de uso no lo requiere.

Consideraciones para el entrenamiento del modelo y la plataforma de ajuste preciso

Al pasar al entrenamiento y ajuste del modelo, probablemente necesitará un proceso optimizado para GPU de alto rendimiento para el trabajo intensivo de proceso que requieren esas actividades. La confiabilidad normalmente no es tan importante como el rendimiento porque la mayoría de este trabajo se produce en segundo plano. Si la alta confiabilidad es un requisito, evalúe si es necesario distribuir la carga de trabajo entre zonas de disponibilidad o regiones. La alta confiabilidad es más importante cuando la actualización del modelo se actualiza con frecuencia, lo que requiere que el entrenamiento se complete con una programación más estricta. El RTO debe determinar el diseño de confiabilidad que elija.

Las instrucciones de esta sección se aplican tanto al entrenamiento del modelo como a la optimización. A menos que se le obligue a usar plataformas independientes para estas funciones, debe usar una sola plataforma.

Requisitos funcionales

Al evaluar las plataformas para el entrenamiento del modelo y el ajuste preciso, tenga en cuenta las siguientes preguntas:

  • ¿La plataforma admite el uso transitorio?

    Al igual que las actividades de EDA, el entrenamiento del modelo y el ajuste fino no suelen ejecutarse a tiempo completo, por lo que debe usar una plataforma que se pueda detener cuando no esté en uso para ayudar a controlar los costos. A diferencia de EDA, sin embargo, el entrenamiento del modelo suele ser un proceso por lotes, por lo que el proceso solo es necesario cuando se ejecuta el lote y se puede apagar hasta la siguiente ejecución.

  • ¿La plataforma proporciona orquestación?

    Debido a la complejidad necesaria para administrar el proceso para el entrenamiento del modelo y el ajuste preciso, se recomienda un orquestador.

  • ¿Las tecnologías existentes de su entorno pueden formar parte de la solución?

    Si la plataforma de datos existente tiene funcionalidades de aprendizaje automático, como Azure Databricks , puede usarla para determinados pasos, como la transformación de datos y la ingeniería de características, el entrenamiento, el ajuste preciso y otros pasos de Machine Learning. La combinación de tecnologías puede ayudarle a minimizar el costo y la complejidad implicados en el uso de una plataforma de datos para funciones que podría no ser ideal para.

Requisitos no funcionales

Tenga en cuenta esta pregunta también:

  • ¿Cuál es el equilibrio tolerable entre el costo y el rendimiento?

    Dados los requisitos de proceso optimizados para GPU de alto rendimiento, asegúrese de probar y comparar el entrenamiento y el ajuste exhaustivo para determinar la SKU ideal que equilibra el rendimiento con respecto a los costos.

Herramientas

Se recomienda Azure Machine Learning para el entrenamiento del modelo y la plataforma de ajuste preciso, ya que proporciona funcionalidad de orquestación con compatibilidad con el proceso por lotes. Hay dos opciones de proceso para evaluar:

  • El proceso sin servidor es ideal para ejecuciones cortas y poco frecuentes que pueden tolerar efectos vecinos ruidosos. Puede elegir los precios estándar o los precios puntuales. Los precios puntuales solo se recomiendan para el entrenamiento altamente interrumpible. No use el proceso sin servidor para las operaciones en tiempo completo. Los costos se pueden escalar rápidamente.
  • Los clústeres de proceso proporcionan un control significativo sobre el hardware disponible y están optimizados para el entrenamiento paralelo o distribuido.

Nota:

En el caso de los modelos básicos, la elección de la plataforma de hospedaje de modelos podría limitar las opciones de ajuste. Por ejemplo, el uso del servicio Azure OpenAI para el hospedaje de modelos limita las opciones de ajuste de las opciones de ajuste a la funcionalidad de ajuste de Azure OpenAI integrada.

Consideraciones para la plataforma de hospedaje e inferencia del modelo

Las funciones de hospedaje e inferencia de modelos componen la capa de servicio de la carga de trabajo de IA. Estas funciones se realizan con puntos de conexión específicos del software que se usa. Las soluciones de software de servicio de modelos, como NVIDIA Triton, TorchServe y TensorFlow Serving, son básicamente SDK de Python que frente a un modelo con una API y agregan funcionalidad específica a la solución. Puede elegir su plataforma de hospedaje en función de su elección de software o elegir su software en función de su plataforma de hospedaje.

Al usar soluciones SaaS o PaaS con modelos empaquetados previamente, como los modelos de lenguaje grande que están disponibles en Azure OpenAI, tiene pocas o ninguna oportunidad para seleccionar un software de servicio. En su lugar, el servicio que consume proporciona una API. Esto reduce la flexibilidad en el proceso para crear una implementación de modelo, lo que puede proporcionar ventajas y desventajas. Por ejemplo, puede simplificar el proceso de desarrollo de la carga de trabajo. Por otro lado, reduce la flexibilidad de cómo la aplicación puede llamar e interactuar con el modelo.

Fundamentalmente, las API de la capa de servicio son microservicios, por lo que debe seguir los mismos procedimientos para estas API que sigue para otros microservicios del entorno. Deben incluirse en contenedores, en bloque de otros servicios y tener sus propios ciclos de vida independientes de otros servicios y API. Tenga en cuenta, sin embargo, que las API de capa suelen requerir mucho más potencia de proceso basada en GPU y imágenes de contenedor más grandes que las API tradicionales.

En esta sección se proporcionan instrucciones sobre las funcionalidades que se deben tener en cuenta al seleccionar una plataforma de hospedaje e inferencia de modelos.

Requisitos funcionales

Al evaluar las plataformas para el hospedaje y la inferencia de modelos, tenga en cuenta estas preguntas:

  • ¿La carga de trabajo requiere inferencia por lotes o en línea?

    Los puntos de conexión de inferencia se usan para procesos de inferencia por lotes o en línea, y el método de inferencia ayuda a determinar la plataforma de hospedaje adecuada. La inferencia por lotes se hospeda mejor en una plataforma que admite el uso transitorio y permite que el proceso se apague cuando no se use. La inferencia en línea se hospeda mejor en una plataforma que admite el uso del proceso elástico, que se escala automáticamente en función de la carga en un momento dado.

  • ¿La plataforma admite la rastreabilidad?

    La rastreabilidad es fundamental para mantener la integridad de los modelos usados en la carga de trabajo. Es importante conocer información sobre el modelo, como la versión actual, quién la implementó, cuándo se implementó y el linaje de datos del modelo.

    Aplique etiquetas significativas a las imágenes del registro de contenedor para asegurarse de que el servicio de hospedaje de modelos extrae una versión específica que el equipo pueda identificar fácilmente. Este enfoque ayuda con la gobernanza de datos al reducir el riesgo de que se usen modelos obsoletos o incorrectos en producción.

  • ¿La plataforma de hospedaje será un recurso centralizado?

    Muchas organizaciones usan una plataforma de hospedaje de modelos centralizada que usan los distintos equipos para sus propias cargas de trabajo. Si la plataforma de hospedaje está centralizada, debe tener en cuenta si necesita compatibilidad con la contracargo. Esta funcionalidad le permite realizar un seguimiento del uso de la plataforma por equipo y carga de trabajo.

Requisitos no funcionales

Tenga en cuenta estas preguntas también:

  • ¿Cuáles son los requisitos de confiabilidad de la plataforma?

    Las API de capa de servicio son recursos de producción, por lo que debe aplicar los mismos requisitos de confiabilidad que se aplican a otros flujos de carga de trabajo que coincidan con su clasificación de importancia . Si su importancia requiere alta disponibilidad, la plataforma de hospedaje debe admitir zonas de disponibilidad o un diseño de varias regiones.

  • ¿Qué controles de red son necesarios para la plataforma?

    Determine si necesita redes privadas o un firewall de salida para proporcionar protección para la plataforma.

  • ¿Cuáles son los requisitos de seguridad de identidad y acceso para la plataforma?

    Determine los controles de identidad y acceso necesarios para los puntos de conexión. Tenga en cuenta si necesita el control de acceso basado en rol (RBAC) nativo o la compatibilidad integrada con la plataforma de identidad y acceso, por ejemplo, Microsoft Entra ID.

  • ¿Qué funcionalidades de supervisión admite la plataforma?

    Determine las funcionalidades de supervisión necesarias para los puntos de conexión. En función de la plataforma, es posible que tenga acceso limitado a registros y métricas, lo que podría limitar la capacidad de auditar actividades o detectar errores de funcionamiento.

  • ¿Cuáles son los requisitos de rendimiento de la plataforma?

    La latencia de inferencia es una preocupación común y diferentes plataformas tienen perfiles de rendimiento diferentes. Los servicios paaS y sin servidor que usan un modelo de utilidad pueden verse afectados por el problema de vecino ruidoso y, a menudo, no tienen garantías de rendimiento. Por otro lado, las mismas plataformas pueden ofrecer una opción autohospedada que proporciona un rendimiento garantizado con un modelo de compra previa. También puede considerar el hospedaje automático en Kubernetes para un comportamiento de latencia más predecible.

    Tenga en cuenta los límites y cuotas de servicio que podrían afectar al rendimiento, como los de Azure OpenAI. A menudo, estas cuotas y límites se establecen de forma agresiva para satisfacer las demandas de capacidad, por lo que si su elección de plataforma no proporciona el rendimiento que necesita, es posible que tenga que adoptar estrategias para distribuir la demanda de proceso entre instancias.

    Las arquitecturas avanzadas pueden combinar varias implementaciones para lograr un rendimiento fijo para la mayor parte de la carga de trabajo y las funcionalidades de expansión para un proceso más flexible.

Herramientas

Inferencia por lotes

  • Si va a realizar la inferencia en los datos que residen en una plataforma que admite el hospedaje de modelos, como Databricks, considere la posibilidad de usar esa plataforma para la inferencia. Asegúrese de aislar el proceso de inferencia de otras funciones realizadas por la plataforma de datos.

  • Se recomienda Azure OpenAI Batch API para modelos de base.

  • Para los modelos no fundamentales, tenga en cuenta estas recomendaciones:

    • Considere la posibilidad de usar puntos de conexión por lotes de Azure Machine Learning para los escenarios siguientes:

      • Debe realizar la inferencia en un conjunto de datos grande que se distribuye en varios archivos y no requiere una latencia baja.

      • Debe realizar operaciones por lotes de larga duración en grandes conjuntos de datos y puede aprovechar las ventajas de la paralelización.

      • Debe implementar componentes de canalización para el procesamiento por lotes.

    • Si necesita ejecutar trabajos de Spark para el procesamiento de datos distribuidos, considere la posibilidad de usar Azure Synapse Analytics, Databricks o proceso de Spark sin servidor de Machine Learning.

    • Si no se aplica ninguno de estos escenarios, se recomiendan puntos de conexión por lotes de Machine Learning.

Inferencia en línea

  • Evalúe paaS de plataforma y soluciones sin servidor como primer paso. Estos servicios suelen ser los más fáciles de adoptar y administrar porque simplifican el diseño y minimizan la carga operativa. Por ejemplo, Azure OpenAI es una buena opción para los modelos de base.

    • Considere la posibilidad de usar la API sin servidor de Azure Machine Learning para agregar el acceso al punto de conexión incluso si usa Azure OpenAI u otra solución de hospedaje de modelos fundamentales.
  • Considere machine Learning con clústeres de proceso administrados cuando PaaS o soluciones sin servidor no son la mejor opción. El proceso administrado por Machine Learning admite la división y la creación de reflejo del tráfico para pruebas de A/B, depuración y auditoría sólida. Dado que el servicio administra el proceso, las operaciones de día 2 son más fáciles cuando se hospeda automáticamente el modelo. El proceso administrado también ofrece una amplia selección de configuraciones de proceso y funcionalidades de escalado.

  • Si decide hospedar automáticamente el modelo en un clúster de Azure Kubernetes Service (AKS) asociado a Machine Learning u otra plataforma basada en contenedores, asegúrese de que el grupo de nodos está aislado de otras API o de cualquier otra carga de trabajo del clúster para lograr un rendimiento predecible y optimizar la seguridad. Evite usar el proceso optimizado para GPU o basado en GPU para cualquier cosa que no sea las funciones de carga de trabajo de IA para reducir los costos. En su lugar, establezca la línea de base de rendimiento a través de pruebas y ajuste el tamaño adecuado del proceso para satisfacer los requisitos de rendimiento sin aprovisionamiento excesivo.

  • También puede hospedar automáticamente el modelo mediante soluciones de infraestructura como servicio (IaaS), como Azure Ciencia de datos Virtual Machine.

Consideraciones para la plataforma de orquestación

La orquestación, en el contexto de las plataformas de aplicaciones de carga de trabajo de IA, hace referencia a herramientas como el flujo de mensajes en Machine Learning y Azure AI Studio. Estas herramientas están diseñadas para simplificar todo el ciclo de desarrollo de las aplicaciones de inteligencia artificial mediante la automatización de muchas funciones comunes de flujo de trabajo.

Requisitos no funcionales

Al igual que con todas las demás cargas de trabajo de producción del patrimonio de la nube, al evaluar las herramientas de orquestación, debe tener en cuenta lo siguiente:

  • Confiabilidad, seguridad y supervisión. Las herramientas de orquestación deben cumplir los estándares de confiabilidad, seguridad y supervisión de las cargas de trabajo de producción.

  • Rendimiento. Las herramientas de orquestación no requieren proceso basado en GPU o optimizado para GPU, considere la posibilidad de usar SKU de uso general.

  • Optimización de los costos. Las herramientas de orquestación están siempre activadas, considere las opciones de proceso elásticas para minimizar los costos de uso.

Herramientas

  • Prefiere una solución fuera del estante, como el flujo de avisos. Determine si sus funcionalidades coinciden con las necesidades de orquestación antes de examinar el hospedaje personalizado con herramientas como LangChain o Kernel semántico.

  • Puntos de conexión de host para soluciones como el flujo de solicitud en Machine Learning con instancias de proceso o en AKS con autohospedaje.

Pasos siguientes