Внутри Apple Neural Engine, часть 2: запускаем модель
DjPhoeniX 1 час назад Внутри Apple Neural Engine, часть 2: запускаем модель Средний 12 мин 1.7K Реверс-инжиниринг * Искусственный интеллект macOS * Машинное обучение * Продолжаем человеческий ANE reverse engineering. В...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
В сфере искусственного интеллекта произошло заметное событие. DjPhoeniX 1 час назад Внутри Apple Neural Engine, часть 2: запускаем модель Средний 12 мин 1. 7K Реверс-инжиниринг * Искусственный интеллект macOS * Машинное обучение * Продолжаем человеческий ANE reverse engineering. В этот раз разберёмся, чем таким интересным можно накормить компилятор, чтобы получить желаемый результат — Qwen, запущенный без GPU и CPU.
Ищем примеры MILРеверсить бинарник компилятора целиком не хотелось. Примеры, доступные в сети, довольно однообразны, и все копируют друг друга — все проекты, так или иначе, ссылаются на исследование Maderix Claude. Где же ещё искать примеры под чип Apple, если не в системе Apple?
Технические детали
find /System/Library -name ‘*. mil’ -type fИ вот у нас в руках 163 (у вас может получиться другое число) файла с примерами MIL‑кода. Правда, с оговоркой — валидный он как CoreML MIL (на который, кстати, есть какой‑никакой референс).
Не все из этих файлов удастся скомпилировать и запустить под ANE. Анализируем находкиDynamic shapes: в первую очередь я полез искать что‑то вроде ? — классическое обозначение «я не знаю какой shape тут будет».
И нашёл — работает это через аннотацию FlexibleShapeInformation. Аннотация содержит DefaultShapes и RangeDims/EnumeratedShapes — вернёмся сюда чуть позже. Новые типы данных: как «языковые» (tuple, list, dict), так и для данных (pixel_buffer, tensor_buffer, state).
Отраслевые последствия
Operation set: конечно, много операций. Много того, что можно сделать с вашими данными. С примерами валидных аргументов, конечно же.
Multi‑function kernels: оказывается, main — условность. Функция (программа, давайте называть её так, дальше это сделает вещи проще) может называться как угодно. И их может быть несколько в одном файле.
Уменьшаем overhead компиляции ещё сильнее (но это не точно). Фильтруем полезноеПроверять все 163 файла руками — зачем тратить 2 часа на то, что можно автоматизировать за неделю 10 минут? У нас уже есть (с предыдущей статьи) обёртка на rust, которая берёт MIL и собирает/запускает его.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





