Neural Engine виявився здатним не лише на інференс
Зазвичай Neural Engine у процесорах Apple M4 використовується виключно для інференсу — виконання вже навчених моделей штучного інтелекту. Саме для таких завдань Apple позиціонує цей блок, заявляючи продуктивність до 38 TOPS.
Однак дослідник у сфері кібербезпеки та розробник під псевдонімом @0x0SojalSec повідомив у X, що йому вдалося провести реверс-інжиніринг наявних обмежень. У результаті команда змогла задіяти до 15,8 TFLOPS обчислювальної потужності Neural Engine для повноцінного навчання моделей, включно зі зворотним поширенням помилки (backpropagation) у трансформерних архітектурах.
Як вдалося обійти обмеження Apple
Замість використання стандартних фреймворків Apple, таких як Core ML і Metal, розробники створили власну проміжну мову моделей (Model Intermediate Language, MIL), яка дозволяє безпосередньо взаємодіяти з Neural Engine.
Для підвищення продуктивності всі дані зберігаються в оперативній пам’яті, що позбавляє систему повільних операцій запису на накопичувач. Завдяки цьому процес навчання виявився не лише швидким, а й достатньо стабільним.
.jpg)
Крім того, автори проєкту знайшли оригінальний спосіб боротьби із зависаннями під час навчання. У разі виникнення проблем використовується команда exec(), яка перезапускає процес, дозволяючи зберегти проміжний стан моделі та продовжити навчання з контрольної точки.
Серед ключових особливостей проєкту:
- прямий доступ до Neural Engine без використання Core ML і Metal;
- застосування власної мови MIL для роботи з ANE;
- зберігання даних виключно в оперативній пам’яті;
- підтримка навчання трансформерних моделей зі зворотним поширенням помилки;
- механізм відновлення процесу через контрольні точки.
Перші результати виглядають багатообіцяльними
Розробник уже опублікував проєкт на GitHub, продемонструвавши можливість навчання нейронних мереж безпосередньо на апаратному блоці Neural Engine з мінімальною кількістю додаткових залежностей.
Джерело: gizmochina
.png)

