Recomendaciones de proceso para cargas de trabajo de IA en la infraestructura de Azure (IaaS)
En este artículo se proporcionan recomendaciones de proceso para las organizaciones que ejecutan cargas de trabajo de IA en la infraestructura de Azure (IaaS). El enfoque preferido es iniciar la adopción de la inteligencia artificial con soluciones de plataforma como servicio (PaaS) de Azure AI. Sin embargo, si tiene acceso a las GPU de Azure, siga esta guía para ejecutar cargas de trabajo de IA en IaaS de Azure.
Las cargas de trabajo de inteligencia artificial requieren máquinas virtuales especializadas para controlar las altas demandas computacionales y el procesamiento de datos a gran escala. La elección de las máquinas virtuales adecuadas optimiza el uso de recursos y acelera el desarrollo y la implementación de modelos de IA. En la tabla siguiente se proporciona información general sobre las opciones de proceso recomendadas.
Fase de ia | Imagen de máquina virtual | IA generativa | IA nogenerativa (modelos complejos) | IA nogenerativa (modelos pequeños) |
---|---|---|---|---|
Entrenamiento de modelos de IA | Máquinas virtuales de ciencia de datos | GPU (prefiere la familia ND. También puede usar la familia NC con máquinas virtuales interconectadas por Ethernet). | GPU (prefiere la familia ND. También puede usar la familia NC con máquinas virtuales interconectadas por Ethernet). | Optimizado para memoria (CPU) |
Inferencia de modelos de IA | Máquinas virtuales de ciencia de datos | GPU (familia NC o ND) | GPU (familia NC o ND) | Optimizado para proceso (CPU) |
Selección de la imagen de máquina virtual correcta
Elija una imagen de máquina virtual adecuada, como la Ciencia de datos Virtual Machines, para acceder rápidamente a las herramientas preconfiguradas para cargas de trabajo de IA. Esta opción ahorra tiempo y recursos a la vez que proporciona el software necesario para un procesamiento eficaz de inteligencia artificial
Comience con las imágenes de Ciencia de datos Virtual Machines. La imagen de Ciencia de datos máquina virtual ofrece acceso preconfigurado a las herramientas de ciencia de datos. Estas herramientas incluyen PyTorch, TensorFlow, scikit-learn, Jupyter, Visual Studio Code, la CLI de Azure y PySpark. Cuando se usa con GPU, la imagen también incluye controladores de 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 las soluciones de orquestación.
Busque imágenes alternativas según sea necesario. Si la imagen de Ciencia de datos máquina virtual no satisface sus necesidades, use Azure Marketplace u otros métodos de búsqueda para buscar imágenes alternativas. Por ejemplo, con GPU, es posible que necesite imágenes de Linux que incluyan controladores infiniBand, controladores nvidia, bibliotecas de comunicación, bibliotecas de MPI y herramientas de supervisión.
Selección de un tamaño de máquina virtual
La selección de un tamaño de máquina virtual adecuado se alinea con la complejidad del modelo de IA, el tamaño de los datos y las restricciones de costo. La coincidencia de hardware con las necesidades de entrenamiento o inferencia maximiza la eficacia y evita la infrautilización o sobrecarga.
Restrinja las opciones de la máquina virtual. Elija las SKU de máquina virtual más recientes para obtener tiempos óptimos de entrenamiento e inferencia. Para el entrenamiento, seleccione SKU que admitan rdma e interconexiones de GPU para la transferencia de datos de alta velocidad entre GPU. Para la inferencia, evite las SKU con InfiniBand, lo que no es necesario. 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. Use las páginas de precios de máquinas virtuales Linux y Windows para obtener información general sobre los costos. Para obtener una estimación detallada, use la Calculadora de precios de Azure.
Considere la posibilidad de detectar instancias. Las instancias de acceso puntual son rentables para escenarios de inferencia con un riesgo mínimo de pérdida de datos. Las instancias de spot ofrecen ahorros significativos mediante el uso de la capacidad del centro de datos sin usar con un descuento. Sin embargo, esta capacidad se puede reclamar en cualquier momento, por lo que las instancias puntuales son las mejores para las cargas de trabajo que pueden controlar las interrupciones. Los datos de punto de comprobación periódicamente para minimizar la pérdida cuando se expulsan. Para más información, consulte Uso de máquinas virtuales de acceso puntual en Azure CycleCloud.
Elección de 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 se usa el proceso que necesita durante un período de tiempo específico. Seleccione una herramienta de orquestación basada en la programación, la contenedorización y el escalado que necesite para mejorar las operaciones y la escalabilidad.
Use 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 funcionalidades de programación avanzadas, configuraciones personalizables y administración de clústeres flexibles. Las máquinas virtuales 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 más información, consulte Azure CycleCloud Workspace for Slum( Área de trabajo de Azure CycleCloud for Slum).
Use Azure Batch para la programación integrada. Azure Batch ofrece características de programación integradas sin necesidad de instalación o administración de software adicional. Tiene un modelo de precios de consumo y sin tarifas de licencia. También admite tareas en contenedores de forma nativa. Para conocer los procedimientos recomendados de implementación, consulte Acelerador de Azure Batch.
Use Azure Kubernetes Service (AKS) para el escalado de contenedores. AKS es un servicio administrado para implementar, escalar y administrar contenedores en un clúster. Es adecuado para ejecutar cargas de trabajo de inteligencia artificial en contenedores a escala. Para más información, consulte Uso de Azure Kubernetes Service para hospedar cargas de trabajo basadas en GPU.
Organizar manualmente trabajos para tareas más sencillas. Si las necesidades de orquestación son mínimas, administre manualmente los recursos de inteligencia artificial. Tenga en cuenta los pasos siguientes para cargas de trabajo a pequeña escala:
- Defina el flujo de trabajo. Comprenda el flujo de trabajo de un extremo a otro, incluidas las dependencias y la secuencia de trabajos. Considere cómo controlar los errores en cualquier paso.
- Registrar y supervisar trabajos. Implemente marcos de registro y supervisión claros para los trabajos.
- Valide los requisitos previos. Asegúrese de que el entorno cumple todos los requisitos de flujo de trabajo, incluidas las bibliotecas y marcos necesarios.
- Usar el control de versiones. Realice un seguimiento y administre los cambios mediante el control de versiones.
- Automatizar las tareas. Use scripts para automatizar el preprocesamiento, el entrenamiento y la evaluación de datos.
Considere la posibilidad de usar contenedores
Los contenedores proporcionan un entorno coherente y reproducible que se escala de forma eficaz. Los contenedores simplifican las transiciones entre entornos, lo que las convierte en esenciales para las soluciones de inteligencia artificial escalables.
Instalar controladores. Asegúrese de que los controladores necesarios están instalados para habilitar la funcionalidad del contenedor en varios escenarios. En el caso de las configuraciones de clúster, a menudo se requieren herramientas como Pyxis y Enroot.
Use NVIDIA Container Toolkit. Este kit de herramientas habilita los recursos de GPU dentro de los contenedores. Instale todos los controladores necesarios, como CUDA y controladores de GPU, y use el motor y el entorno de ejecución de contenedor preferidos para la ejecución de cargas de trabajo de IA.