Разработчик Spotify Рафаэль Коста (Rafael Costa) нашёл аппаратную ошибку в нейронном процессоре Apple Neural Engine. Из-за неё локальные языковые модели работают с ошибкой в iPhone 16 Pro Max. При этом в других устройствах Apple проблем нет.

Коста работал над трекером финансов. Приложение должно было автоматически записывать расходы, классифицировать покупки для дальнейшего анализа и обновлять виджет на часах Apple Watch, который показывает процент потраченного бюджета. Функцию классификации разработчик решил построить на базе языковой модели. При первом запуске тестовой версии приложение получило покупку в ресторан и выдало категорию unknown (неизвестно). Анализ логов показал, что система Apple Intelligence зависает в состоянии загрузки.
Разработчик решил, что если функция Apple Intelligence не работает, то можно интегрировать поддержку нейросетей с помощью фреймворка MLX. Во время запуска приложения на iPhone 16 Pro Max выяснилось, что процессор смартфона загружается практически на 100%, а модель в этот момент генерирует набор несвязанных символов и фраз, не выдавая стоп-токен. Например, на вопрос «сколько будет 2 + 2» модель сгенерировала фразу "Applied.....*_dAK[...]".

Коста отмечает, что после этого он посчитал себя бездарным разработчиком, который не может запустить на смартфоне готовый фреймворк. Вернуться к проекту получилось спустя три дня. Новая попытка устранить странное поведение модели началась с эксперимента.
Всё это время Коста запускал тестовую версию приложения на iPhone 16 Pro Max под управлением iOS 26. Разработчик решил запустить код на своём старом iPhone 15 Pro с iOS 18, и всё работало без ошибок. После обновления до актуальной версии ОС проблем тоже не было.
Чтобы найти, где именно появляется ошибка, Коста решил сравнить, как работают нейросети на разных устройствах Apple. Для эксперимента он обозначил следующие правила:
использовать на всех устройствах квантизированную версию Gemma;
в качестве запроса передавать простой промпт «сколько будет 2 + 2»;
выставить температуру модели 0,0, чтобы исключить вариативность ответов;
логировать значения тензоров на каждом слое нейросети.

Результаты теста на трёх устройствах выглядят следующим образом:
Устройство | Значения тензоров | Результат |
iPhone 15 Pro |
| Успешно |
MacBook Pro |
| Успешно |
iPhone 16 Pro Max |
| Провал |
Разработчик считает, что проблема, скорее всего, аппаратная, так как ошибка появляется именно на iPhone 16 Pro Max. Смартфон спроектирован на базе чипа A18 Pro с нейронным движком Neural Engine. Для вычислений система использует фреймворки MLX и Metal. Вероятно, проблема кроется именно в этом стеке.
Позже Коста провёл эксперимент и на новом iPhone 17 Pro Max. Языковые модели на нём работали без ошибок. Это ещё раз указывает на то, что баг аппаратный, и проявляется только при запуске моделей на процессоре A18 Pro.
