Разработчик добился первой тренировки нейронной сети на Apple Neural Engine с помощью реверс-инжиниринга

iconKuCoinFlash
Поделиться
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconСводка

expand icon
Разработчик выполнил первое обучение нейронной сети с обратным распространением на нейронном движке Apple в чипе M4 с помощью реверс-инжиниринга. Проект обходил CoreML, сопоставив более 40 частных классов с драйвером ядра IOKit для компиляции модели в памяти. Производительность достигла 1,78 TFLOPS при поддержке одного трансформерного слоя. Эта новость на цепочке означает обновление сети в использовании аппаратного обеспечения. Код открыт под лицензией MIT.

Сообщение BlockBeats, 3 марта: разработчик Manjeet Singh (GitHub: maderix) в сотрудничестве с Claude Opus впервые реализовал обучение нейронной сети с обратным распространением на Apple Neural Engine (ANE) с чипом M4, используя реверс-инжиниринг незадокументированных приватных API Apple. ANE — это ускоритель, разработанный Apple исключительно для вывода; официально функции обучения не предоставлялись, и разработчики могли использовать его возможности вывода только через фреймворк CoreML.


Этот проект обходит CoreML, напрямую сопоставляя более 40 частных классов, таких как _ANEClient и _ANECompiler, с ядерным драйвером IOKit, и обнаружил интерфейс _ANEInMemoryModelDescriptor, позволяющий компилировать модели непосредственно в памяти — это ключевой элемент для реализации обучения, поскольку каждое обновление весов требует повторной компиляции. В настоящее время реализовано обучение одного слоя transformer (dim=768, seq=512): на M4 время на один шаг составляет 9,3 мс, использование ANE — 11,2% (1,78 TFLOPS, теоретический пик — 15,8 TFLOPS); входные градиенты прямого и обратного проходов вычисляются на ANE, а градиенты весов и оптимизатор Adam — на CPU.


Проект также обнаружил, что основные вычислительные примитивы ANE — это свертки, а не матричное умножение; использование 1x1 сверток для выражения матричного умножения позволяет достичь примерно трехкратного увеличения пропускной способности, а прямой вызов, обходящий CoreML, обеспечивает дополнительный прирост в 2–4 раза; заявленные Apple «38 TOPS» вводят в заблуждение. В настоящее время проект находится на ранней стадии: поддерживается только обучение одного слоя, используются синтетические данные, существует около 119 утечек ресурсов после компиляции, которые требуют перезапуска процесса для обхода; поддержка многослойного обучения и реальных данных находится в разработке. Проект открыт под лицензией MIT и за 5 дней получил около 2800 звезд.


Отказ от ответственности: Информация на этой странице может быть получена от третьих лиц и не обязательно отражает взгляды или мнения KuCoin. Данный контент предоставляется исключительно в общих информационных целях, без каких-либо заверений или гарантий, а также не может быть истолкован как финансовый или инвестиционный совет. KuCoin не несет ответственности за ошибки или упущения, а также за любые результаты, полученные в результате использования этой информации. Инвестиции в цифровые активы могут быть рискованными. Пожалуйста, тщательно оценивайте риски, связанные с продуктом, и свою устойчивость к риску, исходя из собственных финансовых обстоятельств. Для получения более подробной информации, пожалуйста, ознакомьтесь с нашими Условиями использования и Уведомлением о риске.