MPS на Mac M4: инференс открытых моделей без NVIDIA
Metal Performance Shaders — фреймворк для ускорения вычислений на GPU Apple Silicon, встроенный в macOS начиная с версии 11. PyTorch и другие фреймворки добавили поддержку MPS как бэкенда, что позволяет пустить открытые модели на Mac M-серии практически с теми же скоростями, что и на потребительских NVIDIA-картах.
Llama 2 7B на Mac M3 инферирует со скоростью 10–15 токенов в секунду, что соизмеримо с RTX 3060. M4 показывает ещё лучшие результаты благодаря увеличенной пропускной способности памяти и большему числу ядер. Это открывает локальный запуск больших моделей для миллионов пользователей Mac без облака.
Практические следствия
На Mac больше нет необходимости в облачных API или покупке NVIDIA-видеокарты для локального экспериментирования. Разработчик может训练 и тестировать модели на своём ноутбуке, что ускоряет итерации и снижает опасность утечки данных через облако.
Ограничение MPS — поддержка операций: не все слои и функции потерь оптимизированы, поэтому при fine-tuning иногда требуется явно указать CPU для вычисления лосса, а затем вернуться на GPU для обратного прохода. Современные версии PyTorch сокращают такие fallback'и, но они всё ещё бывают.
Память на M-процессорах унифицирована: инференс использует ОЗУ системы, что означает медленнее, чем на выделенной VRAM NVIDIA, но быстрее, чем на чистом CPU. Модели до 30–40 ГБ крутятся без замораживания, что вполне достаточно для современных открытых моделей.