
Не спрашивайте меня, что всё это значит, но это может быть интересно некоторым из вас, настоящим пользователям Mac. Apple выпустила MLX, «массивно-ориентированный фреймворк для машинного обучения на чипах Apple, разработанный научно-исследовательским отделом Apple по машинному обучению».
Вот описание из документации:
MLX разработан исследователями машинного обучения для исследователей машинного обучения. Фреймворк призван быть удобным для пользователя, но при этом эффективным для обучения и развёртывания моделей. Сама архитектура фреймворка также концептуально проста. Мы стремимся сделать так, чтобы исследователям было легко расширять и улучшать MLX с целью быстрого изучения новых идей.
Они также выделяют некоторые ключевые особенности MLX:
- Привычные API: MLX имеет Python API, который во многом следует NumPy. MLX также имеет полнофункциональный C++ API, который близко повторяет Python API. MLX включает высокоуровневые пакеты, такие как
mlx.nn
иmlx.optimizers
, с API, которые во многом следуют PyTorch для упрощения создания более сложных моделей. - Компонуемые преобразования функций: MLX обладает компонуемыми преобразованиями функций для автоматического дифференцирования, автоматической векторизации и оптимизации графов вычислений.
- Ленивые вычисления: Вычисления в MLX являются ленивыми. Массивы материализуются только при необходимости.
- Динамическое построение графов: Графы вычислений в MLX строятся динамически. Изменение форм аргументов функций не вызывает медленной компиляции, а отладка проста и интуитивно понятна.
- Многоустройственность: Операции могут выполняться на любом из поддерживаемых устройств (в настоящее время CPU и GPU).
- Единая память: Заметным отличием MLX от других фреймворков является единая модель памяти. Массивы в MLX находятся в общей памяти. Операции с массивами MLX могут выполняться на любом из поддерживаемых типов устройств без перемещения данных.
А теперь, тред от того, кто действительно разбирается в теме:
Наслаждайтесь!