iGear usa esta pequeña magia y la velocidad de entrenamiento del modelo aumenta en un 300%

Un modelo de IA de alta precisión es inseparable de una gran cantidad de conjuntos de datos de alta calidad, que a menudo consisten en archivos de resultados de anotaciones e imágenes masivas. En el caso de una cantidad relativamente grande de datos, el período de entrenamiento del modelo también se alargará en consecuencia. Entonces, ¿cuál es una buena manera de acelerar el entrenamiento?

Lo primero que piensa el jefe de Haoqi suele ser aumentar la potencia informática y aumentar los recursos.

Si tiene suficiente dinero, básicamente no necesita seguir buscando otras soluciones.

Pero en la mayoría de los casos, ante los costosos recursos informáticos, nos es imposible aumentar infinitamente. En el caso de gastar mucho dinero para comprar recursos limitados, ¿cómo podemos acelerar el entrenamiento del modelo y mejorar la utilización de los recursos?

Este artículo presentará la solución de aceleración de caché de alto rendimiento iGear. Veamos primero un diagrama de servicio de flujo de trabajo de IA simple.

Los datos recopilados formarán conjuntos de datos de entrenamiento de alta calidad después de la selección y el preprocesamiento en el centro de datos iGear y el etiquetado en la plataforma de etiquetado iGear Estos conjuntos de datos se transferirán a la plataforma de entrenamiento iGear para entrenar el modelo de algoritmo. La plataforma de formación iGear completa la programación heterogénea de recursos informáticos basada en clústeres de Kubernetes. En esta arquitectura, la computación y el almacenamiento están separados, y el conjunto de datos se colocará en el clúster de almacenamiento de objetos remotos. Al ejecutar la tarea de entrenamiento del modelo, es necesario acceder al almacenamiento remoto para obtener el conjunto de datos, lo que trae una red alta I /O sobrecarga. , también causará el problema de la administración de conjuntos de datos inconvenientes.

Lo que debe hacer la solución de aceleración de caché de alto rendimiento iGear propuesta en este documento es:

1. ¿Cómo reducir la sobrecarga de E/S y mejorar la eficiencia del entrenamiento y la utilización de la GPU?

2. ¿Cómo administrar conjuntos de datos para mejorar la facilidad y conveniencia del usuario?

Descripción general de los escenarios de almacenamiento en caché

Como se mencionó anteriormente, los conjuntos de datos se almacenan en clústeres de almacenamiento de objetos remotos. Para mejorar la usabilidad del conjunto de datos, una solución común es montarlo en la tarea de entrenamiento en modo fusible, para que los usuarios puedan identificar y usar el conjunto de datos en forma de un directorio de archivos común. Aunque este método satisface la facilidad de uso, la alta sobrecarga de E/S hace que el usuario tenga que sincronizar el conjunto de datos con el nodo informático de forma manual o mediante script, lo que aumentará la carga mental del usuario durante el proceso de formación. En respuesta a los problemas anteriores, hemos optimizado el conjunto de datos de entrenamiento. Cuando el usuario comienza a prepararse para el entrenamiento, el motor de caché del conjunto de datos se implementa a través de JuiceFS para proporcionar a los usuarios funciones de calentamiento y caché del conjunto de datos, lo que puede reducir el acceso al almacenamiento de objetos remotos, lo que puede reducir las operaciones del usuario. Aproveche al máximo el almacenamiento local del clúster informático para almacenar en caché el conjunto de datos. A través de la caché de dos niveles (la caché del sistema del nodo de entrenamiento + la caché del disco del nodo de entrenamiento), se puede acelerar la velocidad del entrenamiento del modelo, y la utilización de la GPU también se puede mejorar hasta cierto punto.

JuiceFS es un sistema de archivos compartidos de alto rendimiento de código abierto diseñado para entornos en la nube. Ha realizado muchas optimizaciones específicas en la gestión de la organización de datos y el rendimiento del acceso. La versión comunitaria también tiene un soporte de documentación muy bueno, por lo que no entraré en detalles. aquí.

Prueba de esquema de caché

Programa de prueba

La solución que usamos antes fue usar fuse para montar directamente el sistema de almacenamiento de objetos y montar el cubo S3 en el local por medio del montaje, a fin de proporcionar la capacidad de acceder a los datos de almacenamiento de objetos remotos. La solución optimizada de aceleración de caché de alto rendimiento, el backend también se basa en el almacenamiento de objetos, pero sobre esta base, proporciona funciones como el almacenamiento en caché y el precalentamiento para optimizar el rendimiento del almacenamiento. En base a esto, hemos realizado los siguientes dos conjuntos de experimentos comparativos, ambos basados ​​en el mismo conjunto de almacenamiento de objetos, y las demás condiciones siguen siendo las mismas.

  1. Comparación de rendimiento de habilitar o deshabilitar la aceleración de caché de alto rendimiento

  1. Comparación de rendimiento entre el uso del esquema de aceleración de caché de alto rendimiento y el uso de montaje con fusible

método de prueba

En el entorno de la máquina física del servidor, usamos ResNet50 v1.5 proporcionado en el repositorio PyTorch /examples para el entrenamiento del modelo, reproducimos los resultados de una sola máquina, una sola tarjeta, una sola máquina, varias tarjetas y comparamos el tiempo de ejecución.

entorno de prueba

硬件:Tesla V100-SXM2-32GB
驱动:Nvidia 450.80.02
操作系统:Ubuntu 20.04.1 LTS
测试工具:PyTorch ResNet50 v1.5提供的脚本
数据集:ImageNet

Experimento 1: activar la aceleración de caché de alto rendimiento VS desactivar la aceleración de caché de alto rendimiento

ResNet50 v1.5 lote_tamaño = 128, trabajador = 8

Como se puede ver en la figura anterior, en el caso de que no haya caché, la cantidad de imágenes procesadas por la tarea de entrenamiento no cambia significativamente con el aumento de la potencia informática, lo que indica que se ha alcanzado la etapa de cuello de botella de E/S. Después de usar el caché, a medida que aumenta la potencia informática, la cantidad de imágenes procesadas también aumenta en consecuencia. Esto demuestra que después de usar la aceleración de caché, la sobrecarga de E/S se reduce considerablemente y la velocidad de entrenamiento mejora considerablemente con la misma potencia informática . La velocidad de una sola máquina con 8 tarjetas se ha incrementado en un **230 %**. .

Desde la perspectiva del tiempo de entrenamiento del modelo, el tiempo de entrenamiento se redujo de 1381 min a 565 min de 1381 min acelerado por el caché, y el entrenamiento del modelo se completó en solo 1/3 del tiempo original.

El primer conjunto de experimentos compara las diferencias de rendimiento antes y después del almacenamiento en caché del conjunto de datos y verifica la necesidad de utilizar un esquema de almacenamiento en caché de alto rendimiento para acelerar las tareas de entrenamiento de iGear.

Experimento 2: caché de alto rendimiento para acelerar el montaje de fusibles VS

La solución actual más común es usar fuse para montar el almacenamiento de objetos remotos en el local y proporcionar a los usuarios solicitudes de acceso al conjunto de datos. Para comparar el esquema de montaje de fusibles ordinario actual y el esquema de optimización de aceleración de caché de alto rendimiento, diseñamos un segundo conjunto de experimentos:

ResNet50 v1.5 lote_tamaño = 128, trabajador = 8

Desde la perspectiva del tiempo de entrenamiento del modelo, el tiempo de entrenamiento del esquema de montaje de fusibles es de 1448 minutos, y el esquema de optimización de aceleración de caché de alto rendimiento puede reducir el tiempo de entrenamiento a 565 minutos, que es casi 1/3 del esquema de montaje de fusibles .

Por lo tanto, en comparación con el uso directo tradicional del almacenamiento de objetos, nuestro almacenamiento de alto rendimiento tiene una mejora significativa en la velocidad y el tiempo de entrenamiento.

El segundo conjunto de experimentos compara el tiempo de entrenamiento del modelo bajo diferentes esquemas y verifica la importancia de utilizar un esquema de almacenamiento en caché de alto rendimiento para acelerar las tareas de entrenamiento de iGear.

En conclusión

Ante los recursos informáticos costosos y limitados, podemos acelerar en gran medida la velocidad de las tareas de capacitación en la plataforma iGear a través de una solución de aceleración de caché de alto rendimiento, acortar en gran medida el tiempo de capacitación del modelo y mejorar la utilización de los recursos de la GPU. Si se mejora aún más la potencia informática, los beneficios no se detendrán en el entorno de prueba actual.

El autor de este artículo: controlador antiguo iGear, dirección original: https://mp.weixin.qq.com/s/Lh5UEVw4-gCe6wAVcmznxg

Si es útil, ¡siga nuestro proyecto Juicedata/JuiceFS ! (0ᴗ0✿)

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5389802/blog/5433177
Recomendado
Clasificación