Sobre el proyecto
Apex es una colección de utilidades mantenida por NVIDIA que busca poner a disposición de los usuarios de PyTorch, de forma rápida, las características más recientes de precisión mixta y entrenamiento distribuido, con parte del código destinado a integrarse eventualmente en el propio PyTorch.
Qué ofrece:
- Herramientas de entrenamiento con precisión mixta (apex.amp) para ejecutar modelos en precisión reducida.
- Utilidades de entrenamiento distribuido, incluyendo apex.parallel.DistributedDataParallel y SyncBatchNorm.
- Kernels fusionados para optimizadores como FusedAdam, y capas de normalización como FusedLayerNorm y FusedRMSNorm.
- Un conjunto de módulos contrib opcionales que cubren áreas como dispersión (sparsity), batch norm por grupos, xentropy, focal loss, pérdidas de transducer, memoria entre pares, NCCL P2P, capas de cuello de botella, optimizadores distribuidos y almacenamiento directo en GPU.
Notas de instalación:
- Los contenedores de PyTorch de NVIDIA en NGC ya incluyen las extensiones personalizadas.
- Desde el código fuente, la ruta recomendada usa variables de entorno como APEX_CPP_EXT=1 y APEX_CUDA_EXT=1 con pip install --no-build-isolation; las banderas de línea de comandos heredadas (--cpp_ext, --cuda_ext) siguen siendo compatibles.
- Es posible una compilación solo con Python, pero omite los kernels fusionados, por lo que FusedAdam, FusedLayerNorm/FusedRMSNorm y las rutas fusionadas para SyncBatchNorm, DistributedDataParallel y amp no están disponibles o son más lentas.
- Los módulos contrib individuales requieren sus propias opciones de instalación; algunos solo son compatibles con versiones nocturnas de PyTorch, no con versiones estables. APEX_ALL_CONTRIB_EXT=1 compila todas las extensiones contrib de una vez.
- Se recomienda Ninja para una compilación más rápida, y se documentan opciones de compilación paralela para entornos con CPU o memoria limitados.
- El soporte para Windows se describe como experimental.
Esta es una biblioteca para desarrolladores que entrenan modelos de aprendizaje profundo y desean bloques de construcción de precisión mixta y entrenamiento distribuido, más que una aplicación para usuarios finales.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.