Estás leyendo la publicación: Los investigadores de Baidu proponen ‘HETERPS’ para el aprendizaje profundo distribuido con programación basada en el aprendizaje reforzado en entornos heterogéneos
Las redes neuronales profundas (DNN) han tenido un gran éxito en varios campos, incluidos los sistemas de publicidad, la visión artificial y el procesamiento del lenguaje natural. Los modelos grandes con muchas capas, neuronas y parámetros a menudo se entrenan con una gran cantidad de datos, lo que aumenta significativamente la precisión final. Por ejemplo, el modelo de predicción de tasa de clics (CTR), BERT y ERNIE utilizan muchos parámetros; por ejemplo, BERT utiliza entre 110 millones y 340 millones de parámetros. Los modelos grandes a menudo consisten en capas que requieren muchos datos y computación. Los modelos CTR, por ejemplo, manejan datos de entrada altamente dimensionales.
Los datos de entrada son de alta dimensión e incluyen muchas características escasas. Una incrustación de baja dimensión se produce mediante el procesamiento de un pequeño porcentaje de datos distintos de cero a través de una capa de incrustación, denominada características de luz. La capa de incrustación maneja enormes volúmenes de datos, como 10 TB o incluso más, lo que da como resultado altos costos de entrada/salida (IO) y un procesamiento intensivo de datos. Sin embargo, debido a las altas demandas informáticas, varias capas adicionales de redes neuronales profundas, como las capas totalmente conectadas, tienen procesos de entrenamiento computacionalmente costosos. Para el entrenamiento distribuido de modelos DNN a gran escala, es esencial utilizar completamente recursos informáticos heterogéneos a medida que las unidades de procesamiento, como CPU, varios tipos de GPU y procesadores de IA, se vuelven más heterogéneas.
Algunos recursos informáticos, como las CPU, prefieren las actividades con uso intensivo de datos, mientras que otros, como las GPU, seleccionan trabajos con uso intensivo de datos. Para una formación dispersa en esta situación, la programación de actividades y diferentes recursos informáticos es crucial. A pesar de que el problema de programación es un problema NP-difícil clásico, ya existen algunas soluciones simples. Por ejemplo, la primera capa de este estudio se puede programar para CPU, mientras que las capas restantes se pueden programar para GPU porque normalmente maneja grandes volúmenes de datos. Es posible que este enfoque no funcione para diferentes estructuras de DNN, ya que no todos los modelos de DNN tienen la misma estructura. Si bien Genetics y Greedy pueden caer en el óptimo local, lo que equivale a un alto costo, pueden aplicarse de inmediato para resolver el problema de programación de capas. Además, la programación basada en la optimización bayesiana (BO) se puede utilizar como una técnica de optimización de caja negra. Sin embargo, BO puede experimentar una considerable imprevisibilidad, lo que a veces equivale a altos costos. Si bien el paralelismo de canalización está emergiendo como un método potencial para manejar grandes modelos de DNN, el paralelismo de datos se utiliza con frecuencia para paralelizar el proceso de entrenamiento de modelos de DNN a gran escala. El paralelismo puede acelerar el proceso de capacitación después de asignar los trabajos a los recursos informáticos heterogéneos apropiados.
Para lograr un paralelismo de grano fino, se pueden acoplar el paralelismo de datos y el paralelismo de canalización. Los datos de entrenamiento se dividen para que coincidan con la cantidad de recursos informáticos cuando se usa la estrategia de paralelismo de datos. Cada recurso informático utiliza el mismo modelo DNN para manejar una parte separada de los conjuntos de datos. En la técnica de tubería, cada etapa del modelo DNN se puede paralelizar a medida que cada recurso informático procesa los datos de entrenamiento con una ubicación del modelo. Una etapa DNN consta de varias capas continuas, y dos etapas distintas pueden tener dependencias de datos donde el resultado de una etapa sirve como entrada para la otra etapa.
Si bien el uso de numerosos recursos computacionales puede resultar en un costo más alto, el paralelismo acorta el período de entrenamiento. El procedimiento de entrenamiento a menudo tiene un límite de rendimiento fijo para entrenar un modelo DNN en un tiempo razonable. Por lo tanto, es ventajoso reducir los gastos financieros con la restricción de rendimiento. La elasticidad de los recursos informáticos se puede utilizar para garantizar la restricción de rendimiento al mismo tiempo que se reduce el coste económico, ya que el número de recursos informáticos puede aumentar o disminuir según la demanda. La elección de cuántos recursos informáticos utilizar para la formación distribuida en esta situación es crucial.
Sugieren el servidor de parámetros heterogéneos de paletas en esta investigación utilizando recursos informáticos heterogéneos elásticos para permitir el entrenamiento distribuido de DNN a gran escala. Los tres componentes que componen Paddle-HeterPS son el módulo de programación de capas DNN, el módulo de gestión de datos y el módulo de formación distribuida. El módulo de programación de la capa DNN genera un plan de programación y un plan de aprovisionamiento. Mientras que el plan de programación asigna cada capa al tipo apropiado de recursos informáticos, el plan de aprovisionamiento especifica la cantidad de recursos informáticos de cada tipo necesarios para el proceso de formación distribuida. El módulo de gestión de datos gestiona el movimiento de datos entre varios servidores o clústeres. Un clúster es una colección de activos informáticos vinculados.
El módulo de entrenamiento distribuido paraleliza el proceso de entrenamiento del modelo al combinar el paralelismo de datos y el paralelismo de canalización. El módulo de programación sugiere un enfoque de programación de capas DNN para utilizar recursos informáticos heterogéneos. Múltiples capas en un modelo DNN podrían tener propiedades únicas, como ser intensivas en datos o computación. Asignan cada capa al recurso informático apropiado, como CPU o GPU específicas, para acortar los tiempos de capacitación. Una capa completamente conectada suele ser intensiva en computación debido a su alta carga de procesamiento, pero una capa incrustada suele ser intensiva en datos. Luego, combinan numerosas capas posteriores en una etapa programada para el mismo tipo de recursos informáticos a fin de acortar el tiempo que lleva transportar datos a través de varios recursos informáticos. Un plan programado se crea de esta manera. Luego, para realizar el equilibrio de carga y reducir el costo sin dejar de cumplir con la restricción de rendimiento, construyen un plan de aprovisionamiento para modificar la cantidad de recursos informáticos de cada tipo. Usan canalización y paralelismo de datos para paralelizar el proceso de entrenamiento.
El siguiente es un resumen de sus principales contribuciones:
• Para permitir el entrenamiento distribuido de DNN a gran escala con recursos informáticos heterogéneos elásticos, presentan un sistema conocido como PaddleHeterPS. El marco controla el intercambio de datos entre recursos informáticos dispersos y su almacenamiento.
• Para programar cada capa con el tipo correcto de recursos informáticos y, al mismo tiempo, reducir el costo total y garantizar el rendimiento, presentan un enfoque de programación de capas basado en el aprendizaje reforzado. También proporcionan una forma de elegir la cantidad adecuada de recursos informáticos para la formación distribuida en función de la estrategia de programación.
• Realizan extensos experimentos basados en modelos DNN con diversas variaciones estructurales para demostrar los beneficios de su enfoque en comparación con los enfoques estándar.