Compartir vía


Recomendaciones de procesos para cargas de trabajo de IA en la infraestructura Azure (IaaS)

Este artículo proporciona recomendaciones informáticas para organizaciones que ejecutan cargas de trabajo de IA en la infraestructura Azure (IaaS). El enfoque preferido es comenzar su adopción de IA con las soluciones de plataforma como servicio (PaaS) de IA de Azure. Sin embargo, si tiene acceso a las GPU de Azure, siga esta guía para ejecutar cargas de trabajo de IA en Azure IaaS.

Las cargas de trabajo de IA requieren máquinas virtuales (VM) especializadas para manejar altas demandas de procesos y procesamiento de datos a gran escala. Elegir las máquinas virtuales adecuadas optimiza el uso de recursos y acelera el desarrollo y la implementación de modelos de IA. La siguiente tabla proporciona una visión general de las opciones de procesos recomendadas.

Fase de IA Imagen de máquina virtual IA generativa IA no generativa (modelos complejos) IA no generativa (modelos pequeños)
Entrenamiento de modelos de IA Máquinas virtuales de ciencia de datos GPU (prefiera la familia ND. También se puede utilizar la familia NC con máquinas virtuales interconectadas por Ethernet) GPU (prefiera la familia ND. También se puede utilizar la familia NC con máquinas virtuales interconectadas por Ethernet) Memoria optimizada (CPU)
Inferencia de modelos de IA Máquinas virtuales de ciencia de datos GPU (familia NC o ND) GPU (familia NC o ND) Optimización de procesos (CPU)

Elija la imagen de máquina virtual adecuada

Elija una imagen de máquina virtual adecuada, como las Data Science Virtual Machines, para acceder rápidamente a herramientas preconfiguradas para cargas de trabajo de IA. Esta elección ahorra tiempo y recursos a la vez que proporciona el software necesario para un procesamiento eficiente de la IA

  • Comience con las imágenes de Data Science Virtual Machines. La imagen Data Science Virtual Machine ofrece acceso preconfigurado a herramientas de ciencia de datos. Estas herramientas incluyen PyTorch, TensorFlow, scikit-learn, Jupyter, Visual Studio Code, Azure CLI y PySpark. Cuando se utiliza con GPU, la imagen también incluye drivers Nvidia, CUDA Toolkit y cuDNN. Estas imágenes sirven como imagen de línea base. Si necesita más software, agréguelo a través de un script en tiempo de arranque o inserte en una imagen personalizada. Mantienen la compatibilidad con tus soluciones de orquestación.

  • Busque imágenes alternativas según sea necesario. Si la imagen de la máquina virtual de ciencia de datos no satisface sus necesidades, utilice Azure Marketplace u otros métodos de búsqueda para encontrar imágenes alternativas. Por ejemplo, con GPUs, puede necesitar imágenes Linux que incluyan controladores InfiniBand, controladores NVIDIA, librerías de comunicación, librerías MPI y herramientas de monitorización.

Elija un tamaño de máquina virtual

La selección de un tamaño de máquina virtual adecuado se ajusta a la complejidad del modelo de IA, el tamaño de los datos y las limitaciones de costes. La adecuación del hardware a las necesidades de formación o inferencia maximiza la eficiencia y evita la infrautilización o la sobrecarga.

  • Reduzca sus opciones de máquinas virtuales. Elija las últimas SKU de máquinas virtuales para optimizar los tiempos de entrenamiento e inferencia. Para el entrenamiento, seleccione SKUs que soporten RDMA e interconexiones GPU para una transferencia de datos de alta velocidad entre GPUs. Para la inferencia, evite las SKU con InfiniBand, que es innecesario. Algunos ejemplos son la serie ND MI300X v5, la serie ND H100 v5, la serie NDm A100 v4 y la serie ND A100 v4.

  • Compruebe los precios de las máquinas virtuales. Utilice las páginas de precios de máquinas virtuales Linux y Windows para obtener una visión general de los costes. Para obtener una estimación detallada, utilice la calculadora de precios de canal de Azure.

  • Considere la posibilidad de instancias puntuales.Las instancias puntuales son rentables para escenarios de inferencia con un riesgo mínimo de pérdida de datos. Las instancias de acceso puntual ofrecen un ahorro significativo al utilizar la capacidad no utilizada del centro de datos con un descuento. Sin embargo, esta capacidad puede recuperarse en cualquier momento, por lo que las instancias spot son mejores para cargas de trabajo que puedan soportar interrupciones. Compruebe periódicamente los datos para minimizar las pérdidas en caso de desalojo. Para más información, consulte Uso de máquinas virtuales de acceso puntual en Azure CycleCloud.

Elija una solución de orquestación de proceso

Las soluciones de orquestación de proceso facilitan la administración de tareas de inteligencia artificial en clústeres de máquinas virtuales. Incluso para implementaciones sencillas, un orquestador puede ayudar a reducir los costos y asegurarse de que un entorno es reproducible. Los orquestadores ayudan a garantizar que solo uses la capacidad de cómputo que necesitas durante un tiempo específico. Seleccione una herramienta de orquestación basada en sus necesidades de programación, contenedorización y escalado para mejorar las operaciones y la escalabilidad.

  • Utilice Azure CycleCloud para programadores de código abierto. Azure CycleCloud es ideal para programadores de código abierto como Slurm, Grid Engine o Torque/PBS. Proporciona una administración de clúster flexible, configuraciones personalizables y capacidades de programación avanzadas. Las máquinas virtuales dentro del clúster necesitan configuración para la ejecución de cargas de trabajo de IA. Las máquinas virtuales para CycleCloud y Batch no son persistentes. El orquestador crea y quita las máquinas virtuales cuando sea necesario para ayudar con el ahorro de costos. Para obtener más información, consulte Área de trabajo de Azure CycleCloud for Slum.

  • Utilice Azure Batch para la programación integrada. Azure Batch ofrece funciones de programación integradas sin necesidad de instalar o administrar software adicional. Tiene un modelo de precios de consumo y no hay cuotas de licencia. También admite tareas en contenedores de forma nativa. Para conocer las mejores prácticas de implementación, consulte Azure Batch Accelerator.

  • Utilice Azure Kubernetes Service (AKS) para el escalado de contenedores. AKS es un servicio administrado para desplegar, escalar y administrar contenedores en un clúster. Es adecuado para ejecutar cargas de trabajo de IA en contenedores a escala. Para obtener más información, consulte Uso del servicio Azure Kubernetes para alojar cargas de trabajo basadas en GPU.

  • Orqueste manualmente los trabajos para tareas más sencillas. Si las necesidades de orquestación son mínimas, administre los recursos de IA manualmente. Considere los siguientes pasos para cargas de trabajo a pequeña escala:

    • Defina su flujo de trabajo. Comprenda su flujo de trabajo de principio a fin, incluidas las dependencias y la secuencia de trabajos. Considere cómo administrar los fallos en cualquier paso.
    • Registre y supervise los trabajos. Implemente marcos claros de registro y supervisión para sus trabajos.
    • Valide los requisitos previos. Asegúrese de que su entorno cumple todos los requisitos del flujo de trabajo, incluidas las bibliotecas y los marcos necesarios.
    • Usar el control de versiones. Siga y administre los cambios mediante el control de versiones.
    • Automatizar las tareas. Utilice secuencias de comandos para automatizar el preprocesamiento de datos, la formación y la evaluación.

Considere los contenedores

Los contenedores proporcionan un entorno coherente y reproducible que se amplía de forma eficiente. Los contenedores agilizan las transiciones entre entornos, por lo que son esenciales para las soluciones de IA escalables.

  • Instalar controladores. Asegúrese de que están instalados los controladores necesarios para permitir la funcionalidad de los contenedores en distintos escenarios. Para las configuraciones de clúster, a menudo se requieren herramientas como Pyxis y Enroot.

  • Utilice NVIDIA Container Toolkit. Este kit de herramientas habilita los recursos de la GPU dentro de los contenedores. Instale todos los controladores necesarios, como los controladores CUDA y GPU, y utilice su motor y tiempo de ejecución de contenedores preferido para la ejecución de cargas de trabajo de IA.

Paso siguiente