ChatPaper.aiChatPaper

Rompiendo la Barrera de la Memoria: Escalado del Tamaño del Lote Casi Infinito para la Pérdida Contrastiva

Breaking the Memory Barrier: Near Infinite Batch Size Scaling for Contrastive Loss

October 22, 2024
Autores: Zesen Cheng, Hang Zhang, Kehan Li, Sicong Leng, Zhiqiang Hu, Fei Wu, Deli Zhao, Xin Li, Lidong Bing
cs.AI

Resumen

La pérdida contrastiva es un enfoque poderoso para el aprendizaje de representaciones, donde tamaños de lote más grandes mejoran el rendimiento al proporcionar más ejemplos negativos para distinguir mejor entre datos similares y disímiles. Sin embargo, escalar los tamaños de lote está limitado por el crecimiento cuadrático en el consumo de memoria de la GPU, principalmente debido a la instanciación completa de la matriz de similitud. Para abordar esto, proponemos una estrategia de cálculo basada en bloques que divide el cálculo de la pérdida contrastiva en bloques pequeños arbitrarios, evitando la materialización completa de la matriz de similitud. Además, introducimos una estrategia de división multinivel para aprovechar la estructura jerárquica de los sistemas distribuidos, utilizando comunicación basada en anillos a nivel de GPU para optimizar la sincronización y núcleos CUDA fusionados a nivel de núcleo para reducir la sobrecarga de E/S. Los resultados experimentales muestran que el método propuesto escala los tamaños de lote a niveles sin precedentes. Por ejemplo, permite el entrenamiento contrastivo de un modelo CLIP-ViT-L/14 con un tamaño de lote de 4M o 12M utilizando 8 o 32 A800 80GB sin sacrificar precisión alguna. En comparación con las soluciones eficientes en memoria del estado del arte, logra una reducción de dos órdenes de magnitud en memoria manteniendo una velocidad comparable. El código estará disponible públicamente.
English
Contrastive loss is a powerful approach for representation learning, where larger batch sizes enhance performance by providing more negative samples to better distinguish between similar and dissimilar data. However, scaling batch sizes is constrained by the quadratic growth in GPU memory consumption, primarily due to the full instantiation of the similarity matrix. To address this, we propose a tile-based computation strategy that partitions the contrastive loss calculation into arbitrary small blocks, avoiding full materialization of the similarity matrix. Furthermore, we introduce a multi-level tiling strategy to leverage the hierarchical structure of distributed systems, employing ring-based communication at the GPU level to optimize synchronization and fused kernels at the CUDA core level to reduce I/O overhead. Experimental results show that the proposed method scales batch sizes to unprecedented levels. For instance, it enables contrastive training of a CLIP-ViT-L/14 model with a batch size of 4M or 12M using 8 or 32 A800 80GB without sacrificing any accuracy. Compared to SOTA memory-efficient solutions, it achieves a two-order-of-magnitude reduction in memory while maintaining comparable speed. The code will be made publicly available.

Summary

AI-Generated Summary

PDF953November 16, 2024