Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estudiante:
Navio Torres Jose
e-mail: jnavio@uni.pe
Curso:
CC4P1 Programación Concurrente y Distribuida
Abstract
El paper data del 2014, y propone un framework de servidor de parámetros para problemas
de machine learning en sistemas distribuidos. Tanto los datos (dataset) como las cargas de trabajo
se distribuyen entre los nodos trabajadores (workers) mientras que los nodos del servidor mantienen
parámetros compartidos globalmente, representados como matrices y vectores densos o dispersos. El
framework gestiona la comunicación de datos ası́ncrona entre nodos y admite modelos de coherencia
flexible, escalabilidad elástica, y tolerancia a fallos. El costo de la sincronización y la latencia de la
máquina es alto y la tolerancia a fallas continua.
Keywords: Machine Learning, Servidor de Parametros.
Contents
1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Desafı́os de Ingenierı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Vectores (Key/Value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Rango de Push y Pull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Dependencias y tareas asincrónicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Consistencia flexible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
1 Introducción
La optimización y la inferencia distribuidas se están convirtiendo en un requisito previo para resolver
problemas de machine learning a gran escala. Ninguna máquina independiente puede resolver estos
problemas con la suficiente rapidez, debido al crecimiento de los datos y la complejidad del modelo
resultante, que a menudo se manifiesta en un mayor número de parámetros. Sin embargo, implementar
un algoritmo distribuido eficiente no es fácil. Tanto las cargas de trabajo computacionales intensivas
como el volumen de comunicación de datos exigen un diseño cuidadoso del sistema.
Las cantidades realistas de datos de entrenamiento pueden oscilar entre 1 TB y 1 PB. Esto permite
crear modelos potentes y complejos con 109 a 1012 parámetros. Estos modelos a menudo son compar-
tidos globalmente por todos los nodos trabajadores, que deben acceder con frecuencia a los parámetros
compartidos mientras realizan el cálculo para refinarlos. Compartir el modelo impone tres desafı́os:
1. El acceso a los parámetros requiere una enorme cantidad de ancho de banda de red.
2. Muchos algoritmos de machine learning son secuenciales. Las barreras resultantes perjudican el
rendimiento cuando el costo de la sincronización y la latencia de la máquina son altos.
3. A escala, la tolerancia a fallas es fundamental. Las tareas de aprendizaje a menudo se realizan
en un entorno de nube donde las máquinas pueden no ser confiables y los trabajos pueden ser
reemplazados.
1.1 Contribuciones
El paper es una tercera generación de la arquitectura de servidor de parámetros, enfocado hacia la
problematica de algoritmos de machine learning. Las mejoras propuestas son:
1. Comunicación eficiente: el modelo de comunicación ası́ncrona no bloquea el cálculo (a menos que
se solicite). Está optimizado para tareas de machine learning para reducir el tráfico y la sobrecarga
de la red.
2. Modelos de coherencia flexible: la coherencia relajada oculta aún más el costo de sincronización y la
latencia. Permitimos que el diseñador de algoritmos equilibre la tasa de convergencia algorı́tmica y
la eficiencia del sistema. La mejor compensación depende de los datos, el algoritmo y el hardware.
3. Escalabilidad elástica: se pueden agregar nuevos nodos sin reiniciar el framework en ejecución.
4. Tolerancia a fallas y durabilidad: Recuperación y reparación de fallas de máquinas no catastróficas
en 1 segundo, sin interrumpir el cálculo. Los relojes vectoriales garantizan un comportamiento bien
definido después de una partición de red y una falla.
5. Facilidad de uso: los parámetros compartidos globalmente se representan como vectores y matrices
(potencialmente dispersos) para facilitar el desarrollo de aplicaciones de machine learning. Los tipos
de datos de álgebra lineal vienen con bibliotecas de subprocesos múltiples de alto rendimiento.
2
de aprendizaje representan parámetros como objetos matemáticos estructurados, como vectores,
matrices o tensores. En cada momento lógico (o iteración), normalmente se actualiza una parte del
objeto. Es decir, los trabajadores suelen enviar un segmento de un vector o una fila de la matriz.
Esto brinda la oportunidad de agrupar automáticamente tanto la comunicación de actualizaciones
como su procesamiento en el servidor de parámetros, y permite que el seguimiento de coherencia
se implemente de manera eficiente.
2. La tolerancia a fallos, como se señaló anteriormente, es crı́tica a escala y para un funcionamiento
eficiente, no debe requerir un reinicio completo de un cálculo de larga duración. Replicación en vivo
de parámetros entre servidores admite la conmutación por error en caliente. La conmutación por
error y la reparación automática, a su vez, respaldan el escalado dinámico al tratar la eliminación
o adición de la máquina como falla o reparación, respectivamente.
2 Machine Learning
Los sistemas de machine learning se utilizan ampliamente en búsqueda web, detección de spam,
sistemas de recomendación, publicidad computacional y análisis de documentos. Estos sistemas aprenden
automáticamente modelos a partir de ejemplos, denominados datos de entrenamiento, y normalmente
constan de tres componentes: extracción de caracterı́sticas, función objetivo y aprendizaje. La extracción
de caracterı́sticas procesa los datos de entrenamiento sin procesar, como documentos, imágenes y registros
de consultas del usuario, para obtener vectores de caracterı́sticas, donde cada caracterı́stica captura un
atributo de los datos de entrenamiento. El preprocesamiento se puede ejecutar de manera eficiente
mediante frameworks existentes como MapReduce.
El objetivo de muchos algoritmos de aprendizaje automático se puede expresar mediante una ”función
objetivo”. Esta función captura las propiedades del modelo aprendido, como un error bajo en el caso de
clasificar correos electrónicos en spam, qué tan bien se explican los datos en el contexto de la estimación
de temas en documentos, o un resumen conciso de conteos en el contexto de bosquejar datos.
El algoritmo de aprendizaje generalmente minimiza esta función objetivo para obtener el modelo.
En general, no existe una solución de forma cerrada; en cambio, el aprendizaje comienza a partir de un
modelo inicial. Refina iterativamente este modelo procesando los datos de entrenamiento, posiblemente
varias veces, para acercarse a la solución. Se detiene cuando se encuentra una solución (casi) óptima o
se considera que el modelo es convergente.
Los datos de entrenamiento pueden ser extremadamente grandes. El procesamiento iterativo de datos
a gran escala requiere enormes recursos informáticos y de ancho de banda. Agregar estos datos al sistema
a menudo mejora tanto la precisión como la cobertura de la predicción. Pero también requiere que el
algoritmo de aprendizaje se ejecute diariamente, posiblemente en tiempo real. La ejecución eficiente de
estos algoritmos es el enfoque principal de este artı́culo.
La minimización de riesgos regularizada es un método para encontrar un modelo que equilibre la
complejidad del modelo y el error de entrenamiento. Lo hace minimizando la suma de dos términos:
una pérdida loss l(x, y, w) que representa el error de predicción en los datos de entrenamiento y un
regularizador Ω[w] que penaliza la complejidad del modelo. Un buen modelo es uno con poco error y
baja complejidad. En consecuencia, nos esforzamos por minimizar:
n
X
F (w) = l(x, y, w) + Ω(w)
i=1
3
Figure 1: Flujo de Calculo de Gradiente Descendente en Servidor de Parámetros
Como se muestra, los datos de entrenamiento se dividen entre todos los trabajadores, que aprenden
conjuntamente el vector de parámetros w. El algoritmo funciona de forma iterativa. En cada iteración,
cada trabajador utiliza de forma independiente sus propios datos de entrenamiento para determinar qué
4
cambios deben realizarse en w para acercarse a un valor óptimo. Debido a que las actualizaciones de cada
trabajador reflejan solo sus propios datos de entrenamiento, el sistema necesita un mecanismo para per-
mitir que estas actualizaciones se mezclen. Lo hace expresando las actualizaciones como un subgradiente
(una dirección en la que el vector de parámetros w debe desplazarse) y agrega todos los subgradientes
antes de aplicarlos a w. Estos gradientes generalmente se reducen, prestando mucha atención en el diseño
del algoritmo a la tasa de aprendizaje correcta η que se debe aplicar para garantizar que el algoritmo
converja rápidamente.
El paso más caro del algoritmo es calcular el subgradiente para actualizar w. Esta tarea se divide
entre todos los trabajadores, cada uno de los cuales ejecuta WORKERITERATE. Como parte de esto,
los trabajadores calculan wT xik , que podrı́a ser inviable para w de muy alta dimensión.
3 Arquitectura
Una instancia del servidor de parámetros puede ejecutar más de un algoritmo simultáneamente. Los
nodos de servidor de parámetros se agrupan en un grupo de servidores y varios grupos de trabajadores.
Un nodo de servidor en el grupo de servidores mantiene una partición de los parámetros compartidos
globalmente. Los nodos del servidor se comunican entre sı́ para replicarse y / o migrar parámetros
para confiabilidad y escala. Un nodo de administrador de servidor mantiene una vista coherente de los
metadatos de los servidores, como la actividad del nodo y la asignación de particiones de parámetros.
Cada grupo de trabajadores ejecuta una aplicación. Un trabajador normalmente almacena localmente una
parte de los datos de entrenamiento para calcular estadı́sticas locales como gradientes. Los trabajadores
se comunican solo con los nodos del servidor (no entre ellos mismos), actualizando y recuperando los
parámetros compartidos. Hay un nodo planificador para cada grupo de trabajadores. Asigna tareas a
trabajadores y monitorea su progreso. Si se agregan o eliminan trabajadores, se reprograman las tareas
sin terminar.
5
extraer parámetros de nodos remotos. De forma predeterminada, las cargas de trabajo o las tareas las
ejecutan los nodos trabajadores. Las tareas son asincrónicas y se ejecutan en paralelo.
1. Secuencial: En consistencia secuencial, todas las tareas se ejecutan una por una. La siguiente tarea
se puede iniciar solo si la anterior ha finalizado. Produce resultados idénticos a la implementación
de un solo subproceso, y también se denomina Procesamiento sı́ncrono masivo.
2. Eventual: La consistencia eventual es lo opuesto: todas las tareas puede iniciarse simultáneamente.
Sin embargo, esto solo es recomendable si los algoritmos subyacentes son robustos con respecto a
los retrasos.
6
3. Retraso limitado: Cuando se establece un tiempo de retraso máximo τ , se bloqueará una nueva
tarea hasta que se hayan terminado todas las tareas anteriores τ veces. Este modelo proporciona
controles más flexibles que los dos anteriores: τ = 0 es el modelo de consistencia secuencial y un
retardo infinito.
4 Discusión
En el paper se decribe al framework de servidor de parámetros para resolver problemas de aprendizaje
automático distribuido. Los parámetros compartidos globalmente se pueden usar como matrices o vectores
dispersos locales para realizar operaciones de álgebra lineal con datos de entrenamiento locales. Es
eficiente: toda la comunicación es asincrónica. Se admiten modelos de coherencia flexible para equilibrar
el equilibrio entre el sistema; eficiente y rápida tasa de convergencia del algoritmo. Además, proporciona
escalabilidad elástica y tolerancia a fallas, con el objetivo de una implementación estable a largo plazo.
5 Conclusiones
1. El servidor de parámetros es una arquitectura de computación distribuida para ejecutar algorit-
mos de machine learning o deep learning donde los servidores tienen una memoria distribuida que
almacena los pesos del modelo en hash tables que son accesibles desde los nodos trabajadores.
2. Los nodos trabajadores se reparten el dataset de entrada y se encargan de realizar las operaciones
de gradiente descendente, convoluciones, backpropagation. No intercambian información entre sı́,
sino que se comunican con el nodo servidor o nodos servidores para que actualicen los pesos del
modelo o parte del modelo.