BlockBeats Nachrichten, am 3. März hat Entwickler Manjeet Singh (GitHub: maderix) in Zusammenarbeit mit Claude Opus durch Reverse Engineering der nicht öffentlichen API von Apple erstmals auf dem Apple Neural Engine (ANE) im M4-Chip ein neuronales Netzwerk mit Backpropagation trainiert. ANE ist ein speziell für Inferenz entwickelter Beschleuniger von Apple, der offiziell keine Trainingsfunktionalität freigegeben hat. Entwickler können nur indirekt über das CoreML-Framework auf die Inferenz zugreifen.
Dieses Projekt umgeht CoreML und mapped direkt über 40 private Klassen wie _ANEClient, _ANECompiler bis hin zum vollständigen Software-Stack der Kernel-Treiber in IOKit. Es wurde eine Schnittstelle _ANEInMemoryModelDescriptor entdeckt, die es ermöglicht, Modelle direkt im Speicher zu kompilieren — ein entscheidender Schritt für das Training, da bei jeder Gewichtsaktualisierung eine Neukompilierung erforderlich ist. Derzeit wurde das Training einer einzelnen Transformer-Schicht (dim=768, seq=512) umgesetzt, mit einer Zeit von 9,3 ms pro Schritt auf dem M4 und einer ANE-Auslastung von 11,2 % (1,78 TFLOPS, theoretische Spitze 15,8 TFLOPS). Die Eingabedaten für Vorwärts- und Rückwärtsdurchlauf werden auf dem ANE berechnet, während die Gewichtsgradienten und der Adam-Optimizer auf der CPU ausgeführt werden.
Das Projekt hat außerdem entdeckt, dass die Kernrechenprimitive des ANE Faltungen (Convolutions) sind, nicht Matrixmultiplikationen. Die Verwendung von 1x1-Faltungen zur Darstellung von Matrixmultiplikationen kann die Durchsatzrate um etwa das Dreifache steigern. Das direkte Umgehen von CoreML und der Aufruf der Funktionen führt zu zusätzlichen 2-4-fachen Leistungssteigerungen. Die offiziell beworbene Leistung von „38 TOPS“ ist daher irreführend. Das Projekt befindet sich noch in der Frühphase: Es unterstützt nur einlagiges Training, verwendet synthetische Daten, und es gibt etwa 119 Ressourcenlecks nach der Kompilierung, die durch einen Neustart des Prozesses behoben werden müssen. Mehrschichtiges Training und echte Datensätze sind in Entwicklung. Das Projekt ist unter MIT-Lizenz open source und hat in 5 Tagen etwa 2800 Sterne erhalten.