Herramientas para desarrolladores

PyTorch 2.15 incorpora FP8 y decodificación más rápida de LLM en Apple Silicon

PyTorch 2.15 introduce soporte para FP8, kernels nativos de Metal para modelos MoE y un ahorro masivo de memoria para la generación de video en macOS 15.

Una laptop mostrando gráficos de redes neuronales y cubos binarios representando el procesamiento FP8.
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

El equipo de PyTorch en Hugging Face ha lanzado la versión 2.15, marcando una actualización significativa para los ingenieros de aprendizaje automático que trabajan con Apple Silicon. Esta actualización introduce soporte nativo para FP8, acelera la decodificación de modelos de mezcla de expertos (mixture-of-experts) hasta 6,5 veces y reduce drásticamente el uso de memoria en tareas de generación de video. El lanzamiento está dirigido a macOS 15 y Python 3.11 o versiones posteriores, con el objetivo de convertir a las Macs en un entorno de primera clase para entrenar y ejecutar modelos de IA complejos.

Qué ocurrió

Durante gran parte de principios de 2026, los desarrolladores que utilizaban el backend MPS en Macs se enfrentaron a caídas de rendimiento, operaciones no soportadas y crecimiento impredecible de la memoria. El equipo de PyTorch en Hugging Face abordó estos problemas reemplazando la antigua ruta de ejecución MPSGraph con kernels dedicados de Metal para operaciones críticas. Este cambio permite un control más directo sobre los recursos de la GPU y elimina muchos de los cuellos de botella que previamente obstaculizaban el desarrollo local de modelos.

La adición más notable es el soporte para tensores float8_e4m3fn, lo que permite a los desarrolladores almacenar valores en la mitad del espacio que BF16 mientras realizan multiplicaciones matriciales escaladas directamente en la GPU. Esta característica alinea las capacidades de las Mac con las ya disponibles en los backends CUDA y CPU. Además, la actualización incluye optimizaciones extensas para álgebra lineal, procesamiento de audio y decodificación de video, asegurando que una gama más amplia de modelos pueda ejecutarse eficientemente sin recurrir a rutas de ejecución más lentas.

Las mejoras de rendimiento son particularmente notables para los grandes modelos de lenguaje. Las arquitecturas de mezcla de expertos ahora se benefician de una implementación nativa de matmul agrupado que mantiene los datos en la GPU, reduciendo la sobrecarga de sincronización. Los modelos densos también experimentan ganancias mediante capas lineales de fila única optimizadas y operaciones softmax significativamente más rápidas. Estos cambios transforman colectivamente a la Mac de un dispositivo utilizado principalmente para inferencia en una herramienta viable para cargas de trabajo de entrenamiento y generación más exigentes.

Cómo funciona

El cambio técnico central en PyTorch 2.15 es la migración de operaciones desde MPSGraph hacia kernels personalizados de Metal. MPSGraph, aunque flexible, a menudo introducía sobrecarga debido a la compilación de grafos y la sincronización CPU-GPU. Al escribir kernels dedicados para tareas específicas como la multiplicación matricial agrupada, el relleno constante y softmax, el equipo asegura que los datos permanezcan en la GPU y se ejecuten con latencia mínima. Por ejemplo, el nuevo kernel de matmul agrupado lee los desplazamientos de grupo directamente en la GPU, evitando el costoso enfoque de bucle sobre grupos utilizado en versiones anteriores.

La eficiencia de memoria ha mejorado al reformular cómo las operaciones de relleno manejan la memoria del driver. En versiones anteriores, la decodificación VAE de video por mosaicos (tiled) activaba miles de llamadas de relleno que hacían que la memoria del driver se disparara. La nueva implementación de relleno constante basada en Metal gestiona estas asignaciones de manera más efectiva, previniendo el crecimiento exponencial de la memoria reservada. Este mecanismo permite que pipelines complejos de generación de video funcionen dentro de los límites estándar de memoria en lugar de requerir recursos excesivos del sistema.

Detalles clave

  • Soporte FP8: Soporte nativo para tensores torch.float8_e4m3fn habilita almacenamiento de precisión media y multiplicación matricial escalada en MPS.
  • Aceleración MoE: Los modelos de mezcla de expertos decodifican entre 5 y 6,5 veces más rápido, con Qwen3.6-35B-A3B alcanzando 61,3 tokens/s en un M3 Ultra.
  • Ahorro de Memoria: La memoria pico del driver para la decodificación VAE de video Wan2.2 cae de 270 GiB a aproximadamente 8 GiB.
  • Álgebra Lineal: La factorización LU compleja, las soluciones triangulares y las inversas más rápidas de matrices pequeñas ahora están soportadas en MPS.
  • Optimización Softmax: Softmax sobre vocabularios grandes es aproximadamente 8 veces más rápido, pasando de 57 µs a 7 µs para tamaños típicos.
  • Requisitos del Sistema: La actualización requiere macOS 15 o posterior y Python 3.11 o posterior.

Por qué importa

Para los ingenieros de software que construyen productos de IA en hardware Mac, este lanzamiento elimina varios puntos de fricción importantes. La capacidad de usar pesos FP8 significa que puedes ajustar modelos más grandes en VRAM limitada o reducir la presión sobre el ancho de banda de memoria durante la inferencia. Esto es crucial para el desarrollo y pruebas locales de arquitecturas de vanguardia que previamente eran demasiado intensivas en recursos para máquinas Apple Silicon de grado de consumo.

La reducción dramática en el uso de memoria para flujos de trabajo de generación de video también abre nuevas posibilidades para aplicaciones creativas. Los desarrolladores que previamente encontraban errores de falta de memoria o inestabilidad del sistema al usar herramientas como ComfyUI o Diffusers ahora pueden ejecutar estos pipelines de forma fiable. La corrección de la corrupción en la edición de imágenes en Qwen-Image-2.1 garantiza además que se mantenga la fidelidad visual, haciendo de las Macs una plataforma más confiable para tareas de imagen y video de nivel de producción.

Qué puedes hacer

  • Actualiza tu entorno de desarrollo a macOS 15 y Python 3.11 para asegurar la compatibilidad con las nuevas características de MPS.
  • Prueba la cuantización FP8 en tus modelos usando torch.float8_e4m3fn y F.scaled_mm para reducir la huella de memoria.
  • Realiza pruebas de referencia (benchmarking) de tus modelos de mezcla de expertos para medir las mejoras en la velocidad de decodificación proporcionadas por el matmul agrupado nativo.
  • Actualiza tus pipelines de generación de video para aprovechar los nuevos kernels de relleno constante y monitoriza el uso de memoria del driver.
  • Experimenta con streams públicos de MPS vía torch.mps.Stream para un control más fino sobre las operaciones concurrentes de GPU.
  • Reporta cualquier problema de rendimiento restante u operación faltante al repositorio de GitHub de PyTorch para ayudar a guiar futuras actualizaciones.
  • #pytorch
  • #apple silicon
  • #machine learning
  • #mps
  • #fp8

Herramientas de la Tienda de Bytechap

Seguir leyendo

Todos los artículos