Версия CUDA для Apple уже здесь! Разработанный специально для собственного чипа, M3 Max может выполнять 2,8 итерации в секунду.
Версия CUDA для Apple уже здесь! Разработанный специально для собственного чипа, M3 Max может выполнять 2,8 итерации в секунду.

Монтажер: Минди

【Шин Джиген Введение】яблоко Новые выпуски распространяются наяблокочипизмашинное Платформа обучения MLX, MLX — это платформа массивов, подобная NumPy, предназначенная для упрощения работы исследователей, использующих аппаратное обеспечение Apple. ML Обучение и развертывание модели.

NVIDIA CUDA всегда доминировала в мире, делая свою власть в сфере искусственного интеллекта непоколебимой.

Многие люди надеются сломать этот ров, например, PyTorch, поддерживающий больше графических процессоров, Triton от OpenAI и т. д.

Недавно Apple выпустила платформу машинного обучения MLX специально для исследователей машинного обучения, использующих чипы Apple.

Авни Ханнун из команды машинного обучения Apple в X-note назвал это программное обеспечение «...эффективной средой машинного обучения, разработанной специально для чипов Apple».

MLX работает аналогично существующим платформам, таким как PyTorch, Jax и ArrayFire.

Однако MLX оптимизирован для чипов Apple. Исследователи, которые раньше испытывали затруднения при использовании графических процессоров M-chip для запуска моделей, наконец-то могут избавиться от этой проблемы!

В то же время MLX добавляет поддержку унифицированной модели памяти, что также означает, что массив находится в общей памяти и может выполнять операции с любым поддерживаемым типом устройства без выполнения копирования данных. Итак, как только другие продукты Apple также смогут запускать модели… вы этого с нетерпением ждете!

Джим Фан, старший научный сотрудник Nvidia, сказал, что это, возможно, самый большой шаг Apple в области искусственного интеллекта с открытым исходным кодом на сегодняшний день:

Что особенного в MLX

Давайте сначала посмотрим на скорость MLX:

Пользователь сети протестировал скорость MLX. В своем твите он сказал, что, используя платформу Apple MLX для скорости вычислений, M2 Ultra (76 графических процессоров) может достигать 5 итераций в секунду (It/sec), а M3 Max (40 графических процессоров). может достигать 2,8 итераций в секунду.

Эта скорость почти такая же, как у Pytorch.

Еще одна замечательная особенность MLX, как отметил Джим Фан, — это превосходно разработанный API.

Для разработчиков в области глубокого обучения начать работу практически ничего не стоит.

Это связано с тем, что дизайн MLX вдохновлен существующими платформами, такими как PyTorch, Jax и ArrayFire.

Исследовательская группа объясняет: «API Python очень похож на NumPy, за некоторыми исключениями. MLX также имеет полнофункциональный API C++, который полностью соответствует API Python».

Исследовательская группа добавила о цели разработки: «Среда разработана так, чтобы быть удобной для пользователя, оставаясь при этом эффективной при обучении и развертывании моделей. Наша цель — дать исследователям возможность легко расширять и улучшать MLX для быстрого изучения новых идей».

Помимо API, который упрощает начало работы, некоторые другие ключевые функции MLX включают в себя:

  1. Преобразования составных функций: MLX содержит преобразования составных функций для автоматического дифференцирования, автоматической векторизации и оптимизации вычислительных графов, что важно для оптимизации и ускорения машинного обучения. Процесс обучения модели обучения очень полезен.
  2. Отложенные вычисления: MLX поддерживает отложенные вычисления, и экземпляры массивов создаются только при необходимости.
  3. Построение динамического графа. Вычислительные графы в MLX строятся динамически. Изменение формы параметров функции не приводит к медленной компиляции, а отладка проста и интуитивно понятна. Это делает разработку и отладку моделей более гибкой и эффективной.
  4. Поддержка нескольких устройств: действия могут выполняться на любом поддерживаемом устройстве (в настоящее время поддерживаются процессор и графический процессор).
  5. Единая память. Существенным отличием MLX от других платформ является унифицированная модель памяти. В MLX массивы существуют в общей памяти, и операции с массивами MLX могут выполняться на любом поддерживаемом типе устройства без перемещения данных.

MLX Data

Помимо выпуска MLX, команда машинного обучения Apple также выпустила MLX Data. Это независимая от платформы MLX библиотека загрузки данных, которую можно использовать с PyTorch, Jax или MLX.

Данные MLX можно использовать для загрузки крупномасштабных наборов данных, а также использовать независимо для предварительной обработки данных для обучения машинному обучению.

Цель этой библиотеки — предоставить пользователям возможность использовать многопоточность для ускорения конвейеров обработки данных без необходимости использования сложных многопроцессных операций или написания кода на символьном языке. Это помогает повысить эффективность загрузки и предварительной обработки данных.

Пример отображения MLX

В настоящее время пользователи могут легко установить MLX через PyPI, выполнив следующую команду: pip install mlx.

Пользователям необходимо убедиться, что соблюдены следующие требования к установке:

- Используйте чипы серии M (чипы Apple)

- Используйте локальную версию Python не ниже 3.8.

- Версия MacOS должна быть не ниже 13.3.

Исследовательская группа также предоставила ряд примеров функций MLX, включая обучение языковой модели Transformer, крупномасштабную генерацию текста с использованием LLaMA, точную настройку с использованием LoRA, генерацию изображений с использованием стабильной диффузии и распознавание речи с использованием Whisper от OpenAI.

Подробности можно найти на Github: https://github.com/ml-explore/mlx-examples/tree/main.

Эти примеры также доказывают техническую мощь и инструменты компании в области обработки речи, генерации изображений и распознавания речи.

Другие разработчики также предприняли другие интересные попытки использовать MLX, например профессор из Университета Кипра, который успешно решил двумерную теплопроводность на плате графического процессора Apple M2 Ultra с использованием PyTorch и новой задачи MLX Equation с двумя Дирихле. и два граничных условия Неймана.

Интересно, что MLX примерно в два раза быстрее, чем раньше, и его можно строить напрямую с помощью Matplotlib без передачи данных на ЦП.

Взгляд на видение Apple в области искусственного интеллекта от MLX

Инклюзивное машинное обучение

Исследовательская группа неоднократно подчеркивала, что «MLX разработан исследователями машинного обучения для исследователей машинного обучения». Это показывает, что Apple осознает необходимость разработки открытой, простой в использовании среды разработки для машинного обучения, чтобы способствовать дальнейшему развитию. это поле.

чиповая технология

Потому что процессоры Apple теперь используются во всех ее продуктах, включая Mac, iPhone и iPad. Такой подход с использованием графических процессоров, центральных процессоров и (возможно, в какой-то момент) нейронных механизмов на этих чипах может привести к выполнению моделей машинного обучения на устройстве. Его производительность может превосходить производительность других процессоров, по крайней мере, для периферийных устройств.

Важность инструментов разработки

Apple явно решила сосредоточиться на предоставлении исследователям машинного обучения лучших инструментов, включая мощный M3 Mac, для построения моделей. Теперь они делают еще один шаг вперед и надеются воплотить этот фокус в ориентированные на человека инструменты искусственного интеллекта, которые будут доступны обычным пользователям.

В целом, Apple надеется предложить машинное обучение и искусственный интеллект более широкому кругу пользователей, предоставляя мощные инструменты и преимущества в производительности на различных устройствах.

Эта война в индустрии искусственного интеллекта только началась.

Ссылки:

https://www.computerworld.com/article/3711408/apple-launches-mlx-machine-learning-framework-for-apple-silicon.html

boy illustration
.NET Как загрузить файлы через HttpWebRequest
boy illustration
[Веселый проект Docker] Обновленная версия 2023 года! Создайте эксклюзивный инструмент управления паролями за 10 минут — Vaultwarden
boy illustration
Высокопроизводительная библиотека бревен Golang zap + компонент для резки бревен лесоруба подробное объяснение
boy illustration
Концепция и использование Springboot ConstraintValidator
boy illustration
Новые функции Go 1.23: точная настройка основных библиотек, таких как срезы и синхронизация, значительно улучшающая процесс разработки.
boy illustration
[Весна] Введение и базовое использование AOP в Spring, SpringBoot использует AOP.
boy illustration
Чтобы начать работу с рабочим процессом Flowable, этой статьи достаточно.
boy illustration
Байтовое интервью: как решить проблему с задержкой сообщений MQ?
boy illustration
ASP.NET Core использует функциональные переключатели для управления реализацией доступа по маршрутизации.
boy illustration
[Проблема] Решение Невозможно подключиться к Redis; вложенное исключение — io.lettuce.core.RedisConnectionException.
boy illustration
От теории к практике: проектирование чистой архитектуры в проектах Go
boy illustration
Решение проблемы искажения китайских символов при чтении файлов Net Core.
boy illustration
Реализация легких независимых конвейеров с использованием Brighter
boy illustration
Как удалить и вернуть указанную пару ключ-значение из ассоциативного массива в PHP
boy illustration
Feiniu fnos использует Docker для развертывания учебного пособия по AList
boy illustration
Принципы и практика использования многопоточности в различных версиях .NET.
boy illustration
Как использовать PaddleOCRSharp в рамках .NET
boy illustration
CRUD используется уже два или три года. Как читать исходный код Spring?
boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)
boy illustration
Как настроить метод ssh в Git, как получить и отправить код через метод ssh
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo