Entrena Transformers en Apple Neural Engine - GitHub ANE

Revolucionario: Entrenamiento de Transformers directamente en el Apple Neural Engine

El Neural Engine (ANE) de Apple ofrece 15.8 TFLOPS de potencia de inferencia en chips M4, ¿pero entrenamiento? Oficialmente imposible. Hasta ahora.

El Avance: Entrenamiento Puro en ANE

ANE Training es una implementación desde cero que ejecuta bucles completos de entrenamiento de transformers - pases hacia adelante Y hacia atrás - directamente en hardware ANE usando APIs privadas ingenierizadas inversamente. Sin APIs de entrenamiento CoreML. Sin shaders Metal. Sin fallback a GPU. Computación pura ANE.

Benchmarks Actuales (M4, dim=768, seq=512): - 9.3 ms/paso - 11.2% utilización ANE (1.78 TFLOPS sostenidos) - 6 despachos de kernels ANE por paso de entrenamiento

Análisis Profundo de la Arquitectura

El sistema orquesta 6 kernels ANE especializados por paso de entrenamiento:

Kernel Función Innovación Clave
kFwdAttn RMSNorm + QKV + SDPA Taps forward evitan recomputación en CPU
kFwdFFN SwiGLU FFN Fusión ANE RMSNorm
kFFNBwd FFN backward Layout channel-first
kSdpaBwd1/2 SDPA backward Fusión Wo^T reduce conteo de kernels
kQKVb QKV backward Overlap GCD async cblas

CPU maneja solo: RMSNorm backward, residuales, pérdida, acumulación dW (Accelerate cblas), actualizaciones Adam.

Optimizaciones Clave que Importan

  1. Layout channel-first - Coincide con ANE IOSurface [1,C,1,S] eliminando overhead de transposición
  2. vDSP RMSNorm - Aceleración 10x (6.7ms → 0.7ms)
  3. Fusión ANE RMSNorm - Integrada en kernels forward
  4. cblas diferido - Máximo solapamiento ANE/CPU
  5. reinicio exec() - Evade límite de compilación 119

Evolución del rendimiento: 33.5ms → 9.3ms mediante optimización sistemática.

Comienza en Minutos

# macOS 15+ Apple Silicon requerido
xcrun clang -O2 -framework Foundation -framework IOSurface \
-framework CoreML -framework Accelerate -ldl -lobjc \
-o train_large training/train_large.m

./train_large

Cero dependencias más allá de frameworks del sistema.

Resumen de Estructura de Archivos

  • api_exploration.m - Descubrimiento de API privada
  • inmem_bench.m - Latencia de despacho ANE
  • sram_probe.m - Exploración de ancho de banda SRAM
  • training/train_large.m - Entrenador de producción de una sola capa

Limitaciones y Roadmap

✅ Máscara causal vía descomposición ✅ Acumulación de gradientes/checkpointing ✅ Optimizador Adam

🔄 Pipeline multi-capa 🔄 Datasets tokenizados reales 🔄 Entrenamiento de modelo completo

Usa introspección en tiempo de ejecución de APIs no documentadas para fines de investigación/educativos (DMCA §1201(f)). No se incluye código propietario de Apple.

2.1k estrellas, 362 forks - Únete a la revolución ML de Apple Silicon: https://github.com/maderix/ANE

Artículo original: Ver original

Compartir este artículo