Разработчик запустил обучение нейросетей на Apple NPU, ранее только для инференса Обложка: Skyread

Разработчик запустил обучение нейросетей на Apple NPU, ранее только для инференса

Новости
Главное:

  • Разработчик Манжит Сингх создал проект ANE Training для обучения нейросетей на Apple Neural Engine (NPU), официально предназначенном только для инференса.
  • Производительность обучения ограничена — загрузка NPU достигает лишь 9%, часть вычислений выполняется на CPU.
  • Проект основан на реверс-инжиниринге приватных API Apple, что делает его уязвимым к блокировке в будущем и ограничивает развитие.

Разработчик Манжит Сингх опубликовал на GitHub проект ANE Training, позволяющий запускать обучение нейросетей на специализированном нейропроцессоре Apple — Neural Engine (NPU). Официально Apple разрешает использовать Neural Engine исключительно для инференса (прогон предобученных моделей), однако Сингху удалось с помощью реверс-инжиниринга закрытых API запустить именно процесс обучения моделей.

Apple Neural Engine встроен в чипы серий A и M и предназначен для ускорения задач машинного обучения, таких как распознавание лица, голосовых команд и улучшение изображений. Благодаря инструменту Core ML, сторонние разработчики могут использовать NPU для инференса, но не для тренировки моделей. Проект Сингха опирается на приватные API _ANEClient и _ANECompiler, что позволило ему добиться загрузки нейропроцессора до 9% от максимума — по сути, сила вычислений пока задействована недостаточно эффективно, а значительная часть нагрузок по-прежнему приходится на центральный процессор.

Разработчик протестировал обучение небольшой модели Stories110M с 110 млн параметров, схожей по архитектуре с Llama 2. Продолжительность одного шага обучения на Mac с чипом M3 Ultra составила около 0,09 секунды, на M4 — примерно 0,11 секунды. Несмотря на успешный запуск, имеется ряд технических ограничений: Neural Engine накладывает лимит в 119 компиляций на один процесс, из-за чего обучение приходится иногда перезапускать с сохраненных чекпойнтов.

Кроме того, большая часть времени уходит не на само обучение, а на подготовку к нему. Отметим также, что использование приватных API влечет риски — Apple в любое обновление системы может закрыть доступ к этим функциям, что сделает проект нефункциональным.

Манджит Сингх не планирует развивать ANE Training дальше, а рассматривает его как исследовательский кейс. В репозитории на GitHub доступны исходные коды и инструкции для запуска, а также подробные статьи по реверс-инжинирингу и тестированию Neural Engine, опубликованные в личном блоге разработчика.

Tagged