Estudio de estrategias de Aprendizaje por Refuerzo para control de elasticidad de servicios de streaming.
Supervisor(es): Baliosian, Javier - Richart, Matías
Resumen:
Con el gran crecimiento de servicios que se brindan en la nube, surge el desafío de asignar recursos de manera tal de obtener un buen rendimiento en momentos de mayor demanda, sin desperdiciarlos en momentos de baja demanda. En ese sentido, surge el concepto de elasticidad, que es la capacidad de un sistema de asignar recursos de manera dinámica en base a sus necesidades. Podemos distinguir dos tipos de elasticidad, la elasticidad horizontal, que corresponde a variar la cantidad de instancias de recursos de cómputo disponibles en el sistema, y la vertical que consiste en aumentar o disminuir características de los recursos informáticos, como el tiempo de CPU, la memoria o el ancho de banda de la red. En este trabajo se propone atacar el problema de controlar la elasticidad horizontal de un sistema de streaming (reproducción de video en línea) particular. En particular, se propone lograr variar la cantidad de servidores disponibles de forma tal que se ajusten a la cantidad de usuarios que solicitan la reproducción de un video y a las características del video solicitado que puedan influir en el tiempo de servicio. Se aborda el problema utilizando Aprendizaje por Refuerzo, una de las técnicas del área del Aprendizaje Automático que suele utilizarse para tareas de control de sistemas. Para esto, se implementó un ambiente de desarrollo que permite entrenar y evaluar el desempeño de distintas técnicas de Aprendizaje por Refuerzo a la hora de resolver el problema abordado. Más precisamente, que permita aprender y evaluar una política que determine cuándo quitar o agregar servidores del sistema de acuerdo con su estado actual, minimizando el desperdicio de recursos y manteniendo un cierto nivel de desempeño definido sobre el tiempo de respuesta del sistema. Se seleccionaron tres técnicas de Aprendizaje por Refuerzo a implementar: Deep Q-Network, SARSA y Policy Gradient, comparando su rendimiento con el de una heurística determinista. De acuerdo con los resultados observados, se concluye que dado un sistema de streaming con las características determinadas para el proyecto, los modelos basados en los métodos de Policy Gradient y SARSA no dieron resultados satisfactorios habiendo sido entrenados por 1000 episodios. Sin embargo, el modelo entrenado utilizando el método Deep Q-Network sobre un espacio discreto de estados, en tan solo 1000 episodios logró un rendimiento superior al de una heurística basada en umbrales utilizada como línea base, siendo capaz de asignar recursos de manera eficiente, manteniendo en un rango adecuado los tiempos de respuesta hacia los clientes, y minimizando el desperdicio de recursos.
2023 | |
Aprendizaje por refuerzo Control de elasticidad Streaming |
|
Español | |
Universidad de la República | |
COLIBRI | |
https://hdl.handle.net/20.500.12008/42429 | |
Acceso abierto | |
Licencia Creative Commons Atribución (CC - By 4.0) |
Sumario: | Con el gran crecimiento de servicios que se brindan en la nube, surge el desafío de asignar recursos de manera tal de obtener un buen rendimiento en momentos de mayor demanda, sin desperdiciarlos en momentos de baja demanda. En ese sentido, surge el concepto de elasticidad, que es la capacidad de un sistema de asignar recursos de manera dinámica en base a sus necesidades. Podemos distinguir dos tipos de elasticidad, la elasticidad horizontal, que corresponde a variar la cantidad de instancias de recursos de cómputo disponibles en el sistema, y la vertical que consiste en aumentar o disminuir características de los recursos informáticos, como el tiempo de CPU, la memoria o el ancho de banda de la red. En este trabajo se propone atacar el problema de controlar la elasticidad horizontal de un sistema de streaming (reproducción de video en línea) particular. En particular, se propone lograr variar la cantidad de servidores disponibles de forma tal que se ajusten a la cantidad de usuarios que solicitan la reproducción de un video y a las características del video solicitado que puedan influir en el tiempo de servicio. Se aborda el problema utilizando Aprendizaje por Refuerzo, una de las técnicas del área del Aprendizaje Automático que suele utilizarse para tareas de control de sistemas. Para esto, se implementó un ambiente de desarrollo que permite entrenar y evaluar el desempeño de distintas técnicas de Aprendizaje por Refuerzo a la hora de resolver el problema abordado. Más precisamente, que permita aprender y evaluar una política que determine cuándo quitar o agregar servidores del sistema de acuerdo con su estado actual, minimizando el desperdicio de recursos y manteniendo un cierto nivel de desempeño definido sobre el tiempo de respuesta del sistema. Se seleccionaron tres técnicas de Aprendizaje por Refuerzo a implementar: Deep Q-Network, SARSA y Policy Gradient, comparando su rendimiento con el de una heurística determinista. De acuerdo con los resultados observados, se concluye que dado un sistema de streaming con las características determinadas para el proyecto, los modelos basados en los métodos de Policy Gradient y SARSA no dieron resultados satisfactorios habiendo sido entrenados por 1000 episodios. Sin embargo, el modelo entrenado utilizando el método Deep Q-Network sobre un espacio discreto de estados, en tan solo 1000 episodios logró un rendimiento superior al de una heurística basada en umbrales utilizada como línea base, siendo capaz de asignar recursos de manera eficiente, manteniendo en un rango adecuado los tiempos de respuesta hacia los clientes, y minimizando el desperdicio de recursos. |
---|