Rompiendo la Barrera de la Memoria: Escalado del Tamaño del Lote Casi Infinito para la Pérdida ContrastivaBreaking the Memory Barrier: Near Infinite Batch Size Scaling for
Contrastive Loss
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.