Версия 2.15 библиотеки машинного обучения PyTorch приносит формат FP8 на Mac и значительно ускоряет декодирование моделей с смесью экспертов (mixture-of-experts). По словам команды PyTorch из Hugging Face, сделавшей анонс, версия также включает новые ядра Metal для аудио, видео и обучения. Бэкенд MPS, на который направлены эти работы, позволяет выполнять модели PyTorch на GPU Mac.
Для языковых моделей наиболее заметный прирост касается моделей со смесью экспертов, где каждый слой распределяет токены между несколькими экспертами. По данным источника, эти модели декодируют в 5–6,5 раз быстрее, чем в PyTorch 2.14. На M3 Ultra с torch.compile Qwen3.6-35B-A3B переходит с 9,4 до 61,3 токенов в секунду, а LFM2.5-8B-A1B — с 23,6 до 123,6 токенов в секунду. Плотные модели также выигрывают от более быстрых линейных слоев. Сэмплирование текста ускоряется за счет вычисления softmax: на строке логитов размером [1, 128256] в FP32 время сокращается с 57 мкс до 7 мкс, то есть примерно в восемь раз быстрее, чем в версии MPSGraph.
FP8 приходит на Mac
PyTorch 2.15 добавляет тензоры torch.float8_e4m3fn на MPS. Каждое значение занимает один байт, то есть вдвое меньше места, чем FP16 или BF16, что сокращает память, необходимую для весов модели. Эти тензоры перемножаются с помощью F.scaled_mm, который управляет масштабированием по тензору и по строке. Источник также указывает, что другие операции, поддерживаемые на CUDA и CPU, теперь доступны и на MPS.
Производительность генерации видео также улучшена. Декодирование тайлового VAE Wan2.2 поднимало память драйвера до 270 Гиб, поскольку постоянное заполнение генерировало 8764 вызова при полном декодировании в 28 тайлов. С переписанным на Metal заполнением пик падает примерно до 8 Гиб. Это же изменение исправляет дефект, о котором сообщалось в ComfyUI, где кодировщик VAE Qwen-Image-2.1 молча искажал изображения на MPS. Полный цикл кодирования-декодирования теперь достигает 29,95 дБ PSNR по сравнению с CPU, против 10,06 дБ ранее.
Для использования версии требуется Mac с чипом Apple silicon, macOS 15 или новее и Python 3.11 или новее. Команда указывает, что кандидатную версию можно установить в отдельном окружении командой uv pip install torch==2.15.0, используя специальный индекс. Также уточняется, что проверка доступности MPS теперь указывает причину сбоя, например, слишком старая операционная система или отсутствие GPU Metal.
