Il Neural Engine presente nei chipset Apple come l'M4 è disponibile solo per l'inferenza, consentendo agli sviluppatori di eseguire modelli di intelligenza artificiale pre-addestrati ma non di addestrarne di nuovi. Fortunatamente, a quanto pare qualcuno è riuscito a decodificare il SoC, superandone i limiti software e mantenendo tutto nella RAM, ottenendo così un funzionamento estremamente fluido e incredibilmente veloce.
Ancora più impressionante di questa impresa è che sbloccare il vero potenziale dell'M4 è stato possibile senza strumenti come CoreML e Metal.
Su X, @0x0SojalSec ha condiviso su un repository GitHub il codice che mostra come è stato sbloccato il vero potenziale dell'M4. Poiché Apple non concede alcun livello di autorizzazione per comunicare con questi chipset, l'utente è riuscito a interagire con l'M4 senza utilizzare alcuno strumento Apple come CoreML, Metal o sfruttare la GPU. Questa impresa è stata invece realizzata utilizzando un linguaggio MIL (Model Intermediate Language) personalizzato, sviluppato da zero.
Poiché l'hardware è "bloccato", è stato necessario ricorrere ad alcune tecniche ingegnose. Ad esempio, quando il processo si blocca e deve essere riavviato per continuare l'addestramento, il MIL personalizzato utilizza il comando "exec()" per "riavviare il programma e continuare l'addestramento". Questo aiuta il programma ad aggiornare il suo stato attuale in modo che possa continuare ad apprendere senza bloccarsi.
Per velocizzare il processo, @0x0SojalSec afferma che lo sblocco dell'M4 è stato effettuato interamente senza scrivere sulla memoria flash NAND, operazione che sarebbe stata più lenta. Poiché tutto è stato scritto nella RAM, la velocità è stata fulminea. Eliminando le limitazioni software, l'M4 presente nell'iPad o nel Mac può raggiungere prestazioni di elaborazione AI di 15,8 TFLOPS, sufficienti per addestrare un modello di IA senza la necessità di acquistare un computer costoso o una GPU NVIDIA dal prezzo esorbitante.
Considerando che questo risultato è stato ottenuto su un M4, immaginate il livello di prestazioni che si potrebbe sbloccare su un M5 . Purtroppo, non possiamo confermare se lo stesso MIL personalizzato possa essere utilizzato sui più recenti processori Apple Silicon e se la funzione exec() si comporti come previsto sulla nuova piattaforma. Speriamo di poter rivedere il codice in azione in futuro. Se volete provarlo, cliccate sul link qui sotto e condividete le vostre impressioni nei commenti.
