El concepto de escalabilidad es algo cada día más importante a la hora de desarrollar nuevas soluciones tecnológicas, incluidas en las que se implementan modelos de Aprendizaje Automático o Machine Learning. De poco sirve disponer del mejor modelo si cuando es necesario no es posible escalar para responder a toda la demanda. Esto es, si no se puede resolver en plazo todas las predicciones solicitadas es casi cómo si no se dispusiese del modelo. Por eso, a la hora de crear e implementar nuevos modelos es necesario tener en cuenta los conceptos de escalabilidad para Machine Learning. Los cuales son los mismos que son tenidos en cuenta en otras soluciones tecnológicas.
La escalabilidad de un sistema hace referencia a la capacidad de este para aumentar o disminuir su escala. Adaptándose a las necesidades que pueden existir en cada momento. Así, por ejemplo, un sistema de detección de fraude en comercio electrónico ha de ser capaz de adaptarse al incremento o reducción de las operaciones durante las diferentes campañas. Evitando fallar en fechas clave como la campaña de Black Friday en la que las operaciones se pueden multiplicar.
Al hablar de soluciones basadas en software, como los modelos de Machine Learning, la escalabilidad se entiende como la capacidad de poder cambiar el tamaño de estos, generalmente aumentar, en una o varias de las siguientes tres dimensiones:
Veamos a continuación en qué consiste cada una de ellas.
Al hablar de escalabilidad de carga se indica la capacidad de aumentar el rendimiento de la solución. Por ejemplo, poder aumentar el número de predicciones por segundo que puede realizar la solución. Lo que se debería poder conseguir aumentar la potencia de cálculo o de recursos del hardware utilizado. Ya que en caso contrario la solución no sería escalable. El aumento de recursos es algo que se puede abordar mediante dos enfoques diferentes que no se abordan exactamente igual:
La escalabilidad geográfica hace referencia al hecho de que el sistema ha de continuar funcionando independientemente de la distancia física entre el usuario y los servidores. Evitando retrasos en las respuestas provoquen que el sistema no pueda ser utilizado. Siendo algo especialmente relevante cuando se trabaja con usuarios en diferentes países o continentes y son necesarias respuestas en tiempo real. Pudiendo ser necesario replicar los sistemas en varias ubicaciones y mantener estas coordinadas.
En los sistemas que usan más de una organización es necesario garantizar que esta pueda ser gestionada por todos los usuarios. Garantizando además el aislamiento de los datos entre organizaciones. Por ejemplo, cuando la solución es un servicio que se presta a terceros.
En la entrada de hoy se han visto las tres dimensiones en las que deberíamos fijarnos a la hora de conseguir escalabilidad para Machine Learning. Siendo posiblemente la más importante la de carga. Poder aumentar el rendimiento del modelo a medida que se aumentan los recursos dedicados. Algo muchas veces no se da debido a la existencia de cuellos de botella en el diseño que limita el número de procesos que se pueden ejecutar en paralelo. Las otras dos dimensiones, geográfica y administrativa, también se deben tener en cuenta especialmente en grandes proyectos.
Imagen de Arek Socha en Pixabay
En las cuatro entregas anteriores recorrimos los disparates más folclóricos del género: faldas que predicen…
En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…
Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…
Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…
Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…
Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…
This website uses cookies.