Selon BlockBeats news, le 3 mars, le développeur Manjeet Singh (GitHub : maderix) a collaboré avec Claude Opus pour rétroconcevoir les API privées non divulguées d’Apple afin de mettre en œuvre pour la première fois l’entraînement sur réseau neuronal contenant la rétropropagation sur le moteur Apple Neural Engine (ANE) de la puce M4. ANE est l’accélérateur de conception d’inférence d’Apple, et la capacité officielle de formation n’a jamais été ouverte, les développeurs ne peuvent appeler sa fonction d’inférence qu’indirectement via le cadre CoreML.
Le projet a contourné CoreML et a été mappé directement à la pile logicielle complète à partir de plus de 40 classes privées telles que _ANEClient et _ANECompiler vers le noyau IOKit, et a découvert l’interface _ANEInMemoryModelDescriptor qui compile le modèle directement en mémoire – la clé pour atteindre l’entraînement, car chaque mise à jour de poids doit être recompilée. Actuellement, une seule couche transformateur (dim=768, seq=512) est entraînée, avec 9,3 ms par étape sur M4, 11,2 % d’utilisation de l’ANE (1,78 TFLOPS, pic théorique 15,8 TFLOPS), des gradients d’entrée de propagation avant et arrière calculés sur ANE, et des gradients de poids et des optimiseurs Adam sont réalisés sur le CPU.
Le projet a également constaté que les primitives de calcul de base de l’ANE sont des convolutions plutôt que de la multiplication matricielle, et qu’exprimer la multiplication de matrices avec des convolutions 1x1 peut obtenir environ 3 fois l’augmentation du débit, et contourner les appels directs CoreML génère un gain supplémentaire de 2 à 4 fois, et la promotion officielle d’Apple de « 38 TOPS » est trompeuse. Le projet en est encore à ses débuts : seule une formation en couche unique, des données synthétiques sont utilisées, environ 119 fuites de ressources compilées doivent être relancées pour éviter ce processus, et la formation multicouche ainsi que le support des données réelles sont encore en développement. Le projet est open source sous le protocole MIT et a reçu environ 2800 étoiles en 5 jours après sa sortie.