¿La carga de trabajo de la IA está aumentando su factura de nube?

Diseñado para la velocidad: ~ 10 ms de latencia, incluso bajo carga
¡Una forma increíblemente rápida de crear, rastrear e implementar sus modelos!
- Gestiona más de 350 RPS en solo 1 vCPU, sin necesidad de ajustes
- Listo para la producción con soporte empresarial completo
Creemos firmemente que todas las empresas serán empresas de aprendizaje automático (ML) en los próximos años. A medida que las organizaciones adoptan el aprendizaje automático, uno de los principales desafíos a los que se enfrentan es administrar los costos asociados a la nube. Ejecutar cargas de trabajo de inteligencia artificial y aprendizaje automático en la nube puede resultar caro rápidamente, pero con una planificación y una optimización cuidadosas, es posible reducir estos costos de manera significativa.
En esta entrada del blog, analizaremos varias estrategias para ayudarlo a optimizar su infraestructura de IA y, en última instancia, reducir sus gastos en la nube sin comprometer el rendimiento ni la escalabilidad. A continuación se detallan las categorías generales que hay que tener en cuenta:
- Medida y atributo
- Reduzca los costos de procesamiento mediante el uso de instancias puntuales o reservadas
- Elija la arquitectura de implementación adecuada
- Implemente el escalado automático
- Cómputos y colocación de datos
- Cambie a ordenadores portátiles alojados con parada automática en lugar de proporcionar una máquina virtual dedicada para cada desarrollador
- Utilice los puntos de control siempre que sea posible para reincorporarse a trabajos de formación de larga duración.
- Utilización eficiente de la GPU
Medida y atributo
Después de haber trabajado con varias organizaciones y basándonos en nuestra propia experiencia previa, una gran parte del costo se debe a errores humanos al olvidar apagar las máquinas virtuales, los servicios o al diseño incorrecto de la arquitectura, lo que implica más costos. Tener una visión completa de quién es el propietario de qué y en qué costes se incurre por equipo o proyecto ayuda a detectar con mayor rapidez la pérdida de costes y permite que cada uno sea responsable de sus propios proyectos.
No puedes mejorar lo que no mides

El primer paso para optimizar la carga de trabajo del aprendizaje automático es empezar a medir y contabilizar la atribución. A continuación se muestran algunas de las iniciativas que puede emprender:
- Realice un seguimiento de los costos en cada nivel de microservicio, proyecto o equipo.
- Proporcione visibilidad de costos a todos los desarrolladores y garantizar que estén capacitados para comprender y reducir los costos.
- Configure alertas sobre los costos de la nube.
- Usa herramientas como Infracost.io para medir el costo de la infraestructura antes del aprovisionamiento si utilizas Terraform.
Reduzca los costos de procesamiento
Las cargas de trabajo de aprendizaje automático implican enormes costos de procesamiento, principalmente porque requieren altos recursos de procesamiento, ya sea con altos requisitos de CPU o GPU, los cuales resultan muy costosos. A continuación, se muestran algunos pasos que puede tomar para reducir el costo de procesamiento:
- Modelo de destilación y poda para reducir los requisitos de recursos de su modelo
- Usa instancias reservadas y puntuales para reducir el costo. Las instancias puntuales de EC2, según Amazon, pueden ahorrarle hasta un 90% de lo que de otro modo gastaría en instancias bajo demanda.
- Elija la configuración de recursos correcta: A menudo hemos descubierto que los equipos de aprendizaje automático aprovisionan en exceso los recursos para los servicios de aprendizaje automático y los trabajos de formación. Esto puede significar elegir el tipo de instancia incorrecto si está trabajando con máquinas virtuales o elegir los requisitos de recursos de CPU y memoria incorrectos. Es importante tener visibilidad de la CPU o la memoria solicitadas y utilizadas para poder ajustar los valores y lograr un coste óptimo.

👉
Instancia puntual: Una instancia puntual le permite acceder y utilizar la capacidad de EC2 no utilizada a un precio muy reducido.
Cuando lanza una instancia puntual, especifica el precio máximo que está dispuesto a pagar por hora. Si el precio puntual del tipo de instancia y la zona de disponibilidad que solicita es inferior al precio máximo, se lanzará la instancia. Sin embargo, si el precio puntual de ese tipo de instancia y zona de disponibilidad supera el precio máximo, la instancia podría cancelarse con dos minutos de antelación.
👉
Instancia reservada: En este sentido, se compromete a usar una cantidad determinada de capacidad de EC2 durante un período de tiempo determinado. A cambio, recibirá un importante descuento sobre el precio bajo demanda de esa capacidad.
Hicimos un estudio comparativo del este de EE. UU. (Virginia del Norte) y descubrimos que:
- Las instancias puntuales estaban disponibles para Tarifa entre un 44 y un 62% más barata.
- Las instancias reservadas de 1 año están disponibles para Tarifa entre un 14% y un 37% más barata.

Elija la arquitectura de implementación óptima
Los diferentes casos de uso en el aprendizaje automático requieren arquitecturas diferentes, y elegir el diseño incorrecto aquí puede generar enormes diferencias en los costos. Algunos de los casos de uso y errores más comunes que hemos visto son:
- Inferencia en tiempo real: en este caso, la latencia de inferencia del modelo es inferior a 1 o 2 segundos (a menudo del orden de milisegundos) y el volumen de tráfico es alto. El modelo debe implementarse como API de escalado automático en tiempo real y por lo general hemos encontrado solicitudes/segundo para ser una métrica mejor para escalar automáticamente más que la CPU o la memoria en muchos casos de uso de ML. Si el el volumen de tráfico es rápido (de 2 a 3 horas al día) y el modelo es un despliegue pequeño y sin servidor (AWS Lambda) resulta ser un modo de implementación más rentable.
- Inferencia asíncrona: en este caso, la lógica de procesamiento puede tardar unos segundos y es necesario aprovisionar una cola para mejorar la confiabilidad; de lo contrario, se producen fallas y pérdidas en los resultados empresariales. Para ajuste de escala automático, la longitud de la cola es una buena métrica en estos casos de uso.
- Varios modelos pequeños con tráfico intenso: este es un caso de uso común en muchas empresas en las que los modelos son específicos para cada cliente. En este caso, hay una gran cantidad de modelos y cada uno de ellos recibe una cantidad baja de tráfico y las expectativas de latencia son bastante bajas. En este caso, un contenedor aloja varios modelos y los modelos se cargan y descargan dinámicamente en la memoria según las necesidades. En este caso, hay problemas relacionados con qué modelos ya están cargados y en qué módulos y qué solicitudes deben enrutarse en consecuencia.
- Trabajos de procesamiento o cron poco frecuentes que consumen muchos recursos: este puede ser el caso si los modelos se entrenan dinámicamente en función de algunas acciones del usuario. En este caso, es posible que la inferencia asíncrona no funcione, ya que el trabajo de procesamiento puede tardar unos minutos. En este caso, el procesamiento debe enviarse como trabajos a un orquestador de flujos de trabajo y las actualizaciones en tiempo real del trabajo deben actualizarse en una cola de notificaciones.
Muchas veces, modelar uno de los casos de uso en una arquitectura diferente puede provocar una pérdida de confiabilidad o una latencia adicional o grandes facturas de nube.
Implemente el escalado automático
La gente asume que el ajuste de escala automático es útil solo cuando hay un gran volumen de tráfico y es necesario aumentar o reducir la escala de las máquinas en función del tráfico entrante. Sin embargo, también queremos extender el concepto de escalado automático a los entornos de desarrollo de desarrollo para ahorrar costes. Algunas áreas en las que el escalado automático puede ayudar a ahorrar costos de manera drástica son:
- Amplíe sus requisitos de procesamiento automáticamente en función de la demanda: Aproveche las capacidades de escalado automático para ajustar dinámicamente el tamaño de su infraestructura en función de las demandas de la carga de trabajo. Al aumentar o reducir automáticamente la escala, puede optimizar la utilización de los recursos y reducir los costos durante los períodos de baja actividad. Identifique los umbrales de escalamiento y los factores desencadenantes adecuados en función de sus patrones de carga de trabajo para garantizar una asignación óptima de los recursos.
- Reduzca el infrarrojo a cero cuando no esté en uso (p. ej., instancias de desarrollo nocturnas): parte de la infraestructura de una organización no es necesaria cuando no hay usuarios. La implementación de un sistema para escalar la infraestructura informática a cero cuando no es necesaria puede generar una cantidad significativa de ahorros para una organización.
- Solicite, por ejemplo, una reserva con su proveedor de servicios en la nube: Si solicita instancias reservadas con su proveedor de servicios en la nube, puede obtener buenos descuentos cuando tenga requisitos de procesamiento más predecibles.
- Imponga el uso de instancias puntuales para cargas de trabajo sin estado: Aproveche las instancias puntuales (AWS) o las máquinas virtuales eliminables (Google Cloud) para cargas de trabajo de aprendizaje automático tolerantes a errores. Estas instancias son considerablemente más baratas que las instancias bajo demanda, lo que te permite ahorrar costes al pujar por la capacidad no utilizada. Sin embargo, tenga en cuenta la posibilidad, por ejemplo, de que se cancelen, y diseñe su infraestructura para gestionar las interrupciones sin problemas. Para mostrar las diferencias entre los precios de las instancias puntuales y bajo demanda, comparemos los precios de las GPU T4 al mes en AWS y Azure.
g4dn.xlarge: 383$ (a pedido) frente a 115$ (al contado)
NC4as T4 v3: 383$ (a pedido) frente a 49$ (al contado)
Cómputos y colocación de datos
Es importante colocar los datos y realizar los cálculos para no incurrir en muchos costos de entrada y salida. Por lo general, los procesos de entrenamiento implican descargar los datos a las máquinas en las que se entrena el modelo. Algunas cosas que hay que tener en cuenta para evitar costos inesperados son:
- Comparta datos entre varios científicos de datos: Es importante conservar una sola copia de los datos de entrenamiento de entrada que puedan utilizar diferentes científicos de datos en lugar de hacer una copia para cada científico de datos. Esto se puede lograr montando un volumen de solo lectura con los datos de todas las máquinas de entrenamiento.
- Elimine los volúmenes no utilizados: A menudo nos olvidamos de eliminar los volúmenes que podríamos haber creado, lo que hace que los volúmenes colgantes que rondan generen costos.
Apagado automático de ordenadores portátiles en función de la inactividad
A menudo, los científicos de datos inician una máquina virtual, configuran Jupyter Notebook allí o la utilizan mediante SSH en VSCode. Si bien este enfoque funciona, a menudo hace que los desarrolladores se olviden de apagar las máquinas virtuales cuando terminan de trabajar. Esto conlleva una gran reducción de los costos. Vale la pena invertir en ordenadores portátiles alojados que se apaguen automáticamente una vez que el equipo de DS tenga más de 5 miembros.
Utilización eficiente de la GPU
Las GPU se utilizan mucho en el aprendizaje automático; sin embargo, en muy pocos casos, las GPU se utilizan de manera eficiente. Este artículo arroja una excelente luz sobre cómo se utilizan principalmente las GPU en la actualidad y sus ineficiencias. Compartir la GPU entre cargas de trabajo y utilizar técnicas de procesamiento por lotes de manera eficiente son esenciales para utilizar la GPU de manera eficiente.
¿Cómo puede ayudar TrueFoundry a reducir los costos?
TrueFoundry ha ayudado a ahorrar un mínimo de alrededor del 40% en costos de infraestructura para todos sus clientes.
Usamos Kubernetes
Kubernetes ayuda a reducir los costos al agrupar de manera eficiente las cargas de trabajo entre los nodos y asegurarse de que el clúster se utilice de manera efectiva. Este es un excelente artículo que arroja más luz sobre cómo Kubernetes ayuda a ahorrar costos
Ahorra los costes de desarrollo en un 60% con el escalado automático basado en el tiempo
TrueFoundry hace que sea muy fácil cerrar las instancias de desarrollo mediante la función de escalado automático basada en el tiempo. La mayoría de los desarrolladores trabajan alrededor de 40 horas a la semana, mientras que las máquinas funcionan casi 128 horas a la semana. Si apagáramos las máquinas de manera efectiva, podríamos ahorrar alrededor del 60% del costo.

Apagado automático de ordenadores portátiles en función de la inactividad
Truefoundry permite a los científicos de datos configurar un período de tiempo de inactividad en cada portátil, tras el cual el portátil se apagará automáticamente.

Esto ayuda a ahorrar una gran cantidad de costos, especialmente si los portátiles funcionan con GPU.
Instancias puntuales fáciles de usar
Truefoundry facilita mucho el uso de instancias puntuales y bajo demanda para los desarrolladores. Los desarrolladores y científicos de datos son los que mejor conocen sus aplicaciones, por lo que dejamos que sean ellos quienes decidan cuál es la mejor opción para sus aplicaciones.

También le muestra las compensaciones de costos entre una instancia puntual y una instancia bajo demanda para que pueda tomar la decisión correcta según su caso de uso.

Cuotas de recursos para equipos y desarrolladores
Truefoundry te permite establecer cuotas de CPU, memoria y GPU para diferentes equipos y desarrolladores, lo que permite a los líderes tener una idea de la distribución de los costos entre los equipos y también evitar errores por parte de los desarrolladores al no permitirles superar los límites asignados.

Perspectivas relacionadas con la optimización de costos
Truefoundry le muestra automáticamente los recursos de CPU y memoria recomendados para su servicio mediante el análisis del consumo del servicio durante los últimos días. Actualmente, le recomienda las solicitudes y los límites de CPU y memoria sugeridos; sin embargo, también planeamos recomendarle automáticamente la estrategia de escalado automático y la arquitectura correcta en el futuro.

Realice la evaluación
Si desea evaluar cómo puede optimizar el costo de la carga de trabajo de la IA, hemos creado una evaluación fácil de realizar en 5 minutos.
Nos comprometemos a compartir el informe personalizado con usted.
TrueFoundry AI Gateway ofrece una latencia de entre 3 y 4 ms, gestiona más de 350 RPS en una vCPU, se escala horizontalmente con facilidad y está listo para la producción, mientras que LitellM presenta una latencia alta, tiene dificultades para superar un RPS moderado, carece de escalado integrado y es ideal para cargas de trabajo ligeras o de prototipos.
La forma más rápida de crear, gobernar y escalar su IA


















.png)


.webp)




.webp)







