MLX v0.32.3: исправления для запуска моделей на Apple Silicon
Вышел выпуск v0.32.3 инструмента запуска MLX. В обновлении — исправления операций scan и sort для оси нулевого размера, добавлен параметр correction в std и var, устранён deadlock при вызове mx.clear_streams(), а также исправлена ошибка целочисленного возведения в степень с отрицательным показателем, которая обнуляла весь SIMD-вектор. Подробности — в списке изменений на GitHub.
Что это значит
Для тех, кто запускает нейросети на своей машине через MLX, этот выпуск в первую очередь про стабильность. Исправление deadlock в mx.clear_streams() убирает зависание при очистке потоков, а адаптивный лимит конкурентной загрузки позволяет I/O масштабироваться вместе с машиной — на более производительных системах данные будут подгружаться быстрее.
Отдельно стоит отметить исправление в sorted gather_qmm: устранено переполнение строки NAX выше 32K, которое могло приводить к некорректным результатам на больших тензорах. Валидация размерностей тензоров GGUF снижает риск падения при загрузке повреждённых или несовместимых файлов моделей.
Разработчик не уточняет, какие именно модели затронуты изменениями, но исправления затрагивают базовые операции — от возведения в степень до редукций с NaN. Обновление имеет смысл поставить тем, кто сталкивался с зависаниями или нестабильной работой при запуске моделей через MLX. Следить за новостями об инструментах для локального запуска нейросетей можно в ленте CPU3D.Как устроен метод. Схема нарисована по этой заметке.