BLOG

Optimizar los costes de ML con Azure Machine Learning

Table of contents

Ampliar las iniciativas de Aprendizaje Automático (Machine Learning, ML) puede resultar caro. En este post se describen los retos financieros habituales en ML y se ofrecen estrategias procesables utilizando Azure Machine Learning (AML) para optimizar tu gasto. La idea clave es que las soluciones puntuales no bastan: Un enfoque sistemático es la forma de gestionar los costes con eficacia.

MLOps es caro

El alto coste de la LD: Comprende la presión sobre tu presupuesto

Varias características inherentes al desarrollo y despliegue del ML lo hacen costoso.

  • Los modelos modernos de ML, especialmente en el aprendizaje profundo, requieren conjuntos de datos masivos. Almacenar, mover y procesar estos datos contribuye significativamente a los costes.
  • Los propios algoritmos complejos, como las redes neuronales profundas con numerosas capas o las técnicas de aprendizaje por refuerzo, exigentes desde el punto de vista computacional, requieren una potencia de procesamiento considerable.
  • La dependencia de hardware especializado y escaso, como las GPU, tanto para el entrenamiento como para la inferencia, añade una prima a los costes de cálculo.
  • El desarrollo del ML es iterativo. Volver a entrenar múltiples veces con hiperparámetros variados, diferentes divisiones de datos o datos significa que cada ejecución experimental incurre en gastos de cálculo adicionales. Por ejemplo, un único barrido de ajuste de hiperparámetros podría lanzar cientos de trabajos de entrenamiento individuales.
  • El desarrollo del ML es un proceso complejo de varios pasos: Ingesta de datos, limpieza, transformación, entrenamiento, hipertuning, predicción y mucho más. El proceso de Operaciones de Aprendizaje Automático (MLOps) plantea el riesgo de repeticiones y operaciones innecesarias que añaden costes.

Los clientes me han preguntado: "¿Cuánto cuesta la formación en ML?". Les digo que estos factores pueden elevar los costes a cualquier nivel arbitrario: La formación en ML ha costado más de 150 millones de dólares, y la formación en general, miles de millones. Tú no pagarás tanto, pero tienes que entender que no hay techo.

AML para la optimización de costes

Aunque los puntos aquí expuestos son universales para todos los sistemas de MLOps, el propio ML te ayuda a ahorrar dinero. La completa plataforma de ML basada en la nube de Microsoft está diseñada para agilizar todo el ciclo de vida de los modelos de aprendizaje automático, desde la creación y la formación hasta la implantación y la gestión continua. Los servicios de AML pueden utilizarse cada uno por su cuenta a través de interfaces REST, pero también se integran profundamente entre sí y con el ecosistema Azure más amplio. Al aplicar diseños de eficacia probada, los servicios de AML te permiten implementar tu ML de forma menos costosa que si lo haces tú mismo, incluso cuando pagas por los propios servicios.

Dejaré fuera de esta discusión los modelos preconstruidos, como los Grandes Modelos Lingüísticos (LLM) y los Servicios Cognitivos de Azure para Visión o Traducción. Hay menos "mandos" granulares disponibles para el ajuste, lo que requiere un enfoque diferente de la optimización de costes.

Factores de coste de las infraestructuras

Para gestionar eficazmente los costes, es crucial comprender a qué se destina tu presupuesto. Los principales impulsores, aproximadamente en orden descendente, incluyen:

  1. Computación: Suele ser el mayor gasto y engloba la computación (CPUs, GPUs) y la memoria consumidas durante el entrenamiento del modelo y para servir las predicciones.
  2. Almacenamiento: Azure Blob Storage se utiliza mucho para conjuntos de datos, artefactos de modelos e imágenes de contenedores en Azure Container Registry. El nivel de almacenamiento elegido, las opciones de redundancia y el volumen de datos influyen en los costes.
  3. Redes: Aunque los procesos centrales de formación y predicción no deberían generar costes extremos de red, pueden acumularse cargos por salida de datos, peering de VNet, conexiones ExpressRoute y uso de NAT Gateway. Por ejemplo, la transferencia de terabytes de datos de imágenes desde el almacenamiento local al Azure Blob Storage para el entrenamiento, o los frecuentes intercambios de datos entre microservicios en un flujo de trabajo MLOps, pueden generar gastos de red.
  4. Servicios: Incluye las tarifas de las API Azure SaaS, como Azure AI Search, Document Intelligence o Bot Service:

Principios rectores para la optimización de costes de ML

Adoptar una mentalidad FinOps significa adoptar varios principios básicos.

Lo primero y más importante es evitar el despilfarro. Las elecciones arquitectónicas, como qué servicio utilizar, son importantes, pero los costes evitables significativos surgen del mal uso: Por ejemplo, utilizar GPUs cuando las CPUs pueden hacer el entrenamiento, o almacenar masas de datos no utilizados en costosos niveles de Almacenamiento Blob.

En segundo lugar, estandariza tu arquitectura. Esto implica utilizar los servicios de AML, como Compute Targets en AML Workspaces para la formación, en lugar de gestionar tus flotas de máquinas virtuales Azure. El equipo de Azure ha creado sistemas eficientes que te ahorran dinero: Por ejemplo, con la formación AML, pagas sólo por el cálculo necesario para la formación, en lugar de por máquinas virtuales por las que pagas continuamente (a menos que gestiones tú mismo el autoescalado). Esto también significa adoptar flujos de trabajo estándar, como un patrón de Formación Continua (CT) en el que el código o los datos nuevos desencadenan automáticamente una ejecución de AML Pipeline. De este modo, la ingestión de datos, la formación, la verificación y el despliegue se producen exactamente cuando se necesitan, sin exceso de ejecuciones ni esperas tan largas que los procesos se vuelvan ineficaces.

En tercer lugar, no optimices en exceso, cayendo en la "Ilusión de Eficiencia". Por ejemplo, comprimir agresivamente los datos de entrenamiento para ahorrar en almacenamiento podría, paradójicamente, aumentar los costes generales debido al tiempo de CPU significativamente mayor dedicado a la descompresión durante cada época de entrenamiento.

No olvides que el tiempo de tus ingenieros es costoso; evita gastar esfuerzos excesivos en microoptimizaciones. Utiliza bien su tiempo priorizando las arquitecturas limpias y mantenibles sobre las optimizaciones específicas: Ahora no puedes predecir las necesidades futuras, pero cuando llegue el momento de reducir costes en el futuro, querrás una arquitectura que haga factible la asignación del tiempo de trabajo.

Por último, recuerda iterar tus optimizaciones, empezando por los mayores generadores de costes. No puedes implantar todas las optimizaciones en un solo ciclo, así que es mejor arreglar las oportunidades más fáciles, y luego volver a comprobar dónde están los grandes costes.

Cómo aprovechar al máximo las herramientas de análisis de costes

No te fijes en el sobrecoste que primero te llame la atención. El tiempo que dediques a arreglarlo podría estar mejor empleado en otra cosa.

DoiT Cloud Intelligence (console.doit.com) dota a los usuarios de Azure de potentes herramientas para comprender y gestionar el gasto en la nube. Puedes crear informes y paneles de facturación, establecer presupuestos y alertas, recibir avisos sobre anomalías en los costes y recibir recomendaciones proactivas para ahorrar costes. El uso coherente de estas herramientas es clave para identificar tendencias, destacar valores atípicos y localizar las mayores oportunidades de ahorro de costes.

Optimizar los costes de formación

La fase de entrenamiento suele ser la que más recursos consume y, en consecuencia, la parte más cara del ciclo de vida del ML. Consume muchos datos y potencia de cálculo, y requiere numerosos ciclos iterativos.

Dimensionar correctamente las máquinas: Monitorizando la utilización de recursos (CPU, GPU, memoria) con Azure Monitor durante el entrenamiento, puedes tomar decisiones informadas. Si una GPU de gama alta (como una ND H100 serie v5) se infrautiliza sistemáticamente, tiene sentido cambiar a una opción más rentable (quizás una VM NCasT4_serie v3).

Utiliza las GPU sólo cuando sea necesario. Si tu modelo no está acelerado por GPU, optar por VM optimizadas para CPU (como la serie F) es más económico. Cuando utilices GPUs, asegúrate de que tu código está totalmente optimizado para explotar sus capacidades, por ejemplo, utilizando tamaños de lote apropiados y pipelines de carga de datos eficientes.

Las Azure Spot Virtual Machines (VM de baja prioridad) proporcionan un ahorro excelente. Para trabajos de entrenamiento tolerantes a fallos (¡y tus sistemas deben ser tolerantes a fallos!), las Spot VM pueden suponer un ahorro de hasta el 90% en comparación con los precios de pago por uso. Son muy adecuadas, por ejemplo, para tareas de ajuste de hiperparámetros que impliquen muchas pruebas independientes, en las que el adelantamiento de una sola prueba no pone en peligro todo el proceso.

Entornos de desarrollo

Para la fase de desarrollo, Jupyter Notebooks o Visual Studio Code en un espacio de trabajo ALD ofrecen estaciones de trabajo gestionadas y basadas en la nube. Sólo pagas por el tiempo que están funcionando activamente con políticas de apagado automático, a diferencia de un portátil potente que amortizas 24x7 o una VM que siempre está funcionando a menos que te acuerdes de apagarla. Para ahorrar más, descarga el trabajo pesado: tener recursos potentes en tu entorno de desarrollo significa que estás pagando por un conjunto fijo de recursos para toda la jornada laboral. Por ejemplo, en lugar de ejecutar la formación en tu portátil, envía trabajos de formación extensos y de larga duración como trabajos de formación AML que se ejecutarán en Clusters de Computación autoescalables y rentables.

Almacenamiento de datos

Para MLOps en Azure, Azure Blob Storage es el estándar para el almacenamiento de objetos. He visto proyectos que empiezan con un simple disco local y pasan a Managed Disks, o los que empiezan en una red local y pasan a Azure Files, pero éstos son costosos: Blob Storage es el estándar para ML y mucho menos caro. Es esencial seleccionar los niveles de acceso adecuados (Hot, Cool, Archive) según la frecuencia de acceso. Implementar políticas de gestión del ciclo de vida puede automatizar las trans... La aplicación de políticas de gestión del ciclo de vida puede automatizar las transiciones. Por ejemplo, si te entrenas sólo con datos nuevos, archiva o elimina automáticamente los datos antiguos al cabo de un mes.

Predicción

Después de entrenar tus modelos, los despliegas para servir predicciones (inferencia). Los Puntos Finales AML ahorran dinero mediante el autoescalado basado en métricas incorporadas. Al igual que con el entrenamiento, elegir la instancia efectiva más pequeña también te ahorra dinero. El coalojamiento de modelos, o despliegue multimodelo, permite que varios modelos más pequeños compartan el mismo despliegue de punto final, reduciendo la sobrecarga por modelo si los modelos suelen ser llamados secuencialmente o por la misma aplicación. Sin embargo, si un punto final no se utiliza, el autoescalado no lo reducirá a cero recursos, así que apágalo tú mismo. Si tienes una aplicación de inferencia con muy poco tráfico, ocúpate de escalar los endpoints a cero o despliégala en Azure Container Apps o Azure Functions.

Para casos de uso que no sean en tiempo real, los puntos finales por lotes son significativamente más baratos que la predicción en línea y ofrecen mejor rendimiento, aunque también mayor latencia. Optimizar el tamaño del lote y la configuración del clúster informático subyacente te proporciona el mayor ahorro de costes.

Supervisión: Vigilar los costes y el rendimiento

Los servicios de ALD tienen una supervisión integrada, otra ventaja sobre el bricolaje. La supervisión reduce los costes al garantizar que aprovechas al máximo los recursos para producir modelos de alta calidad.

Hay dos tipos de monitorización> Monitorización de la infraestructura, principalmente a través de Azure Monitor, que rastrea la utilización de los recursos (CPU, GPU, memoria), así como la duración de los trabajos de entrenamiento, la latencia de predicción y los QPS.

En cambio, la Monitorización de Modelos realiza un seguimiento de las métricas específicas del modelo, como la puntuación F1. Tras el despliegue, esta supervisión te ayuda a detectar la desviación de los datos, el sesgo de las características y el sesgo de la predicción, para que puedas decidir cuándo gastar eficazmente el dinero en el reentrenamiento. Por ejemplo, un modelo de detección de fraudes puede desviarse y necesitar un reentrenamiento sólo cuando los importes de las transacciones cambien gradualmente o el tipo de fraude evolucione, pero no en otros casos.

Unirlo todo: Tuberías AML

Los Pipelines de AML reducen los costes de ML uniendo los pasos de forma eficiente y controlan los costes de ingeniería automatizando las tareas repetitivas. Los pasos de ejecución innecesarios o la acumulación de datos se evitan con una sólida orquestación para definir y gestionar flujos de trabajo de ML complejos. Entre sus funciones se incluyen la paralelización (procesamiento fan-out/fan-in, útil para el ajuste de hiperparámetros), la ejecución condicional (ejecución de pasos sólo si se cumplen determinadas condiciones, como desplegar un modelo sólo si su precisión supera un umbral establecido), y el almacenamiento en caché o la reutilización de componentes (si las entradas y el código de un paso del pipeline no se modifican, se reutiliza su salida en caché, ahorrando computación).

Actúa hoy

Optimizar los costes del ML es un esfuerzo continuo que combina elecciones tecnológicas inteligentes con un sólido proceso de FinOps. Aprovechando todas las capacidades del AML, adhiriéndote a principios arquitectónicos sólidos y manteniendo una vigilancia continua sobre tus gastos, te aseguras de que tus iniciativas de ML aportan el máximo valor empresarial sin forzar tu presupuesto. Empieza por identificar tus generadores de costes más significativos y comprométete a aplicar una o dos de estas estrategias comentadas en el próximo trimestre. Tu cuenta de resultados te lo agradecerá.

Como arquitecto de la nube en DoiT, ayudo a los clientes con la optimización de costes, la seguridad, la solidez y mucho más. Programa hoy mismo una demostración y una llamada con nuestro equipo especializado para descubrir cómo la Inteligencia en la Nube de Do iT -arquitectos y software por igual- puede elevar tu experiencia e impulsar los resultados.

Schedule a call with our team

You will receive a calendar invite to the email address provided below for a 15-minute call with one of our team members to discuss your needs.

You will be presented with date and time options on the next step

Schedule a call with our team

You will receive a calendar invite to the email address provided below for a 15-minute call with one of our team members to discuss your needs.

You will be presented with date and time options on the next step