Ray+Alluxio-->Acelerar la carga de datos en el entrenamiento de modelos a gran escala

Invitados compartidos: Qiu Lu, Tang Chunxu, Wang Beinan

Actualmente, los campos de la inteligencia artificial (IA) y el aprendizaje automático (ML) se están desarrollando rápidamente y cada vez es más importante manejar de manera efectiva grandes conjuntos de datos durante el entrenamiento. Ray se ha convertido en un actor importante en este campo, ya que permite el entrenamiento de conjuntos de datos a gran escala mediante un procesamiento eficiente de flujos de datos. Ray divide grandes conjuntos de datos en fragmentos manejables y divide los trabajos de capacitación en tareas más pequeñas sin la necesidad de almacenar todo el conjunto de datos localmente en la máquina de capacitación. Sin embargo, este enfoque innovador también enfrenta ciertos desafíos.


Si bien Ray facilita el entrenamiento con grandes conjuntos de datos, la carga de datos sigue siendo un obstáculo grave. Cada época requiere recargar todo el conjunto de datos desde el almacenamiento remoto, lo que reducirá seriamente la utilización de la GPU y aumentará el costo de transmisión de los datos almacenados. Por lo tanto, necesitamos un método más optimizado para administrar los datos durante el proceso de capacitación y mejorar la eficiencia.


Ray utiliza principalmente memoria para almacenar datos y su almacenamiento de objetos en memoria está diseñado para datos de tareas grandes. Sin embargo, este enfoque enfrenta cuellos de botella en tareas con uso intensivo de datos porque los datos necesarios para tareas grandes deben cargarse previamente en la memoria de Ray antes de su ejecución. Dado que el tamaño del almacenamiento de objetos generalmente no puede acomodar el conjunto de datos de entrenamiento, no es adecuado para almacenar en caché datos en múltiples épocas de entrenamiento, lo que también resalta la necesidad de una solución de administración de datos más escalable para el marco Ray.


Una de las ventajas importantes de Ray es que utiliza la GPU para el entrenamiento mientras utiliza la CPU para la carga y el preprocesamiento de datos. Este método garantiza una utilización eficiente de los recursos de GPU, CPU y memoria dentro del clúster de Ray, pero también da como resultado una subutilización de los recursos del disco y una falta de gestión eficaz. Surgió una idea revolucionaria: crear una capa de acceso a datos de alto rendimiento para almacenar en caché y acceder a conjuntos de datos de entrenamiento mediante la gestión inteligente de recursos de disco ineficientes en todas las máquinas. Esto puede mejorar significativamente el rendimiento general del entrenamiento y reducir el costo de acceso a la frecuencia del almacenamiento remoto.


Alluxio: el almacenamiento en caché inteligente acelera el entrenamiento

Alluxio acelera el entrenamiento en conjuntos de datos a gran escala utilizando de manera inteligente y eficiente la capacidad de disco no utilizada en GPU y máquinas CPU adyacentes para el almacenamiento en caché distribuido. Este enfoque innovador mejora significativamente el rendimiento de la carga de datos, fundamental para la capacitación con conjuntos de datos a gran escala, al tiempo que reduce la dependencia del almacenamiento remoto y los costos de transferencia de datos asociados.

La integración de Alluxio mejora las capacidades de gestión de datos de Ray y aporta muchos beneficios:

Escalabilidad

  • El acceso a datos y el almacenamiento en caché son altamente escalables

Acelerar el acceso a los datos

  • Utiliza discos de alto rendimiento para almacenar datos en caché

  • Optimizado para lectura aleatoria de alta concurrencia de formatos de archivos de almacenamiento de columnas como Parquet

  • copia cero

confiabilidad y disponibilidad

  • No hay un solo punto de falla

  • Sólido acceso al almacenamiento remoto durante interrupciones

Gestión flexible de recursos

  • Asigne y libere dinámicamente recursos de caché según las necesidades de la carga de trabajo.


Mecanismos internos integrados Ray y Alluxio.

Ray puede orquestar eficazmente flujos de trabajo de aprendizaje automático e integrarse perfectamente con marcos de carga, preprocesamiento y capacitación de datos. Como capa de acceso a datos de alto rendimiento, Alluxio puede optimizar en gran medida las tareas de inferencia y entrenamiento de IA/ML, especialmente cuando es necesario acceder repetidamente a datos de almacenamiento remoto.


Ray utiliza PyArrow para cargar datos y convertir el formato de datos al formato Arrow, que luego utiliza el flujo de trabajo de Ray en la siguiente etapa. PyArrow delega los problemas de conexión de almacenamiento al marco fsspec y Alluxio sirve como una capa de caché intermedia entre Ray y los sistemas de almacenamiento subyacentes (como S3, Azure Blob Storage y Hugging Face).

Cuando utilice Alluxio como capa de almacenamiento en caché entre Ray y S3, simplemente importe Alluxiofs, inicialice el sistema de archivos Alluxio y cambie el sistema de archivos Ray a Alluxio.


# Import fsspec & alluxio fsspec implementationimport fsspecfrom alluxiofs import AlluxioFileSystem
fsspec.register_implementation("alluxio", AlluxioFileSystem)
# Create Alluxio filesystem with S3 as the underlying storage systemalluxio = fsspec.filesystem("alluxio", target_protocol=”s3”, etcd_host=args.etcd_host)
# Ray read data from Alluxio using S3 URLds = ray.data.read_images("s3://datasets/imagenet-full/train", filesystem=alluxio)


Puntos de referencia y resultados

Utilizamos la prueba nocturna Ray Data de Ray Data para comparar el rendimiento de carga de datos de Alluxio y S3 en la misma región en diferentes épocas de entrenamiento. Los resultados de las pruebas comparativas muestran que los costos de almacenamiento se pueden reducir significativamente y mejorar el rendimiento integrando Alluxio con Ray.

Rendimiento de acceso a datos mejorado: observamos que cuando el almacenamiento de objetos de Ray no se ve afectado por la presión de la memoria, el rendimiento de Alluxio es 2 veces mayor que el de S3 en la misma área.

La ventaja es más obvia bajo presión de memoria: vale la pena señalar que cuando el almacenamiento de objetos de Ray enfrenta presión de memoria, la ventaja de rendimiento de Alluxio aumenta significativamente y su rendimiento es 5 veces mayor que el de S3.


en conclusión

Para las tareas de Ray, es de gran importancia estratégica utilizar recursos de disco no utilizados como almacenamiento para la caché distribuida. Este método mejora significativamente el rendimiento de la carga de datos y es especialmente útil cuando se entrena o ajusta con el mismo conjunto de datos en varias épocas. Además, cuando Ray enfrenta presión de memoria, puede proporcionar soluciones prácticas para optimizar y simplificar el proceso de gestión de datos en estos escenarios.


[Agrega asistente para obtener más información]


【Popularidad reciente】


【Mercado Baodiano】

Este artículo se comparte desde la cuenta pública de WeChat: Alluxio (Alluxio_China).
Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Este artículo participa en el " Plan de creación de fuentes OSC ". Los que están leyendo pueden unirse y compartir juntos.

Los recursos pirateados de "Qing Yu Nian 2" se cargaron en npm, lo que provocó que npmmirror tuviera que suspender el servicio unpkg: No queda mucho tiempo para Google. Sugiero que todos los productos sean de código abierto. time.sleep(6) aquí juega un papel. ¡Linus es el más activo en "comer comida para perros"! El nuevo iPad Pro utiliza 12 GB de chips de memoria, pero afirma tener 8 GB de memoria. People's Daily Online revisa la carga estilo matrioska del software de oficina: Sólo resolviendo activamente el "conjunto" podremos tener un futuro para Flutter 3.22 y Dart 3.4 . nuevo paradigma de desarrollo para Vue3, sin necesidad de `ref/reactive `, sin necesidad de `ref.value` Lanzamiento del manual chino de MySQL 8.4 LTS: le ayudará a dominar el nuevo ámbito de la gestión de bases de datos Tongyi Qianwen Precio del modelo principal de nivel GPT-4 reducido en un 97%, 1 yuan y 2 millones de tokens
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5904778/blog/11051009
Recomendado
Clasificación