Un développeur réalise le premier entraînement de réseau de neurones sur l'Apple Neural Engine via ingénierie inverse

iconKuCoinFlash
Partager
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconRésumé

expand icon
Un développeur a effectué le premier entraînement de réseau de neurones avec rétropropagation sur le Neural Engine du puce M4 d’Apple via un reverse engineering. Le projet a contourné CoreML, en cartographiant plus de 40 classes privées vers le pilote noyau IOKit pour la compilation du modèle en mémoire. Les performances ont atteint 1,78 TFLOPS, avec une prise en charge d’une seule couche transformer. Cette actualité on-chain marque une mise à niveau du réseau en matière d’utilisation matérielle. Le code est open-source sous licence MIT.

Message de BlockBeats, le 3 mars : le développeur Manjeet Singh (GitHub : maderix), en collaboration avec Claude Opus, a réussi, pour la première fois, à effectuer l'entraînement de réseaux de neurones avec rétropropagation sur l'Apple Neural Engine (ANE) doté du processeur M4, en effectuant une ingénierie inverse des API privées non publiées d'Apple. L'ANE est un accélérateur conçu par Apple exclusivement pour l'inférence ; officiellement, aucune fonction d'entraînement n'a jamais été ouverte, et les développeurs ne peuvent accéder à ses fonctionnalités d'inférence qu'indirectement via le framework CoreML.


Ce projet contourne CoreML en cartographiant directement une pile logicielle complète de plus de 40 classes privées, telles que _ANEClient et _ANECompiler, vers le pilote noyau IOKit, et a découvert l'interface _ANEInMemoryModelDescriptor permettant de compiler des modèles directement en mémoire — ce qui est essentiel pour le traitement d'entraînement, car chaque mise à jour des poids nécessite une recompilation. Actuellement, l'entraînement d'une seule couche transformer (dim=768, seq=512) est implémenté, avec un temps de 9,3 ms par étape sur M4, une utilisation de l'ANE de 11,2 % (1,78 TFLOPS, contre un pic théorique de 15,8 TFLOPS). Les gradients d'entrée pour la propagation avant et arrière sont calculés sur l'ANE, tandis que les gradients de poids et l'optimiseur Adam sont traités sur le CPU.


Le projet a également révélé que les primitives de calcul centrales d'ANE sont les convolutions, et non les multiplications matricielles : exprimer les multiplications matricielles à l'aide de convolutions 1x1 permet d'obtenir une augmentation d'environ 3 fois du débit, tandis qu'une invocation directe contournant CoreML apporte un gain supplémentaire de 2 à 4 fois. La revendication officielle d'Apple de « 38 TOPS » est trompeuse. Le projet est actuellement à un stade précoce : il ne prend en charge qu'un seul niveau d'entraînement, utilise des données synthétiques, et présente environ 119 fuites de ressources après compilation, nécessitant un redémarrage du processus pour les éviter ; la prise en charge de l'entraînement multicouche et des données réelles est en cours de développement. Le projet est open source sous licence MIT et a reçu environ 2 800 étoiles en cinq jours.


Clause de non-responsabilité : les informations sur cette page peuvent avoir été obtenues auprès de tiers et ne reflètent pas nécessairement les points de vue ou opinions de KuCoin. Ce contenu est fourni à titre informatif uniquement, sans aucune représentation ou garantie d’aucune sorte, et ne doit pas être interprété comme un conseil en investissement. KuCoin ne sera pas responsable des erreurs ou omissions, ni des résultats résultant de l’utilisation de ces informations. Les investissements dans les actifs numériques peuvent être risqués. Veuillez évaluer soigneusement les risques d’un produit et votre tolérance au risque en fonction de votre propre situation financière. Pour plus d’informations, veuillez consulter nos conditions d’utilisation et divulgation des risques.