Ускорьте обработку данных и конвейер машинного обучения с помощью оптимизированного Intel набора инструментов oneAPI AI Analytics

Оглавление

· Что такое oneAPI?
· OneAPI AI Analytics Toolkit
1. Intel оптимизировал Modin
2. Intel оптимизировала Scikit-learn
3. Intel оптимизировал XGBoost
4. Intel оптимизировала TensorFlow и Pytorch
5. Python оптимизирован для Intel
6. Зоопарк моделей для архитектуры Intel
7. Intel Neural Compressor
· Резюме
· Ссылки

Что такое один API?

Существуют различные аппаратные архитектуры, такие как ЦП, ГП, ПЛИС, ускорители ИИ и т. д. Код, написанный для одной архитектуры, не может легко работать на другой архитектуре. Например, код, написанный для процессора, не будет работать на графическом процессоре без внесения некоторых изменений. Это одна из проблем, с которой сталкиваются разработчики, когда хотят перенести свой код с ЦП на ГП (или ПЛИС, или ускорители ИИ).

Intel разработала унифицированную модель программирования под названием oneAPI для решения этой же проблемы. С oneAPI не имеет значения, какие аппаратные архитектуры (ЦП, ГП, FGPA или ускорители), библиотеки, языки или платформы вы используете, один и тот же код работает на всех аппаратных архитектурах без каких-либо изменений и дополнительно обеспечивает преимущества в производительности.

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

Intel предоставляет около семи наборов инструментов oneAPI. Вы можете выбрать набор инструментов в зависимости от ваших потребностей. Я работаю специалистом по обработке и анализу данных, поэтому мне захотелось попробовать Intel® oneAPI AI Analytics Toolkit. В этой статье мы в основном рассмотрим набор инструментов oneAPI AI Analytics.

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

Набор инструментов аналитики искусственного интеллекта oneAPI

Набор инструментов Intel oneAPI AI Analytics Toolkit (далее — набор инструментов) состоит из множества инструментов и платформ. Набор инструментов помогает специалистам по данным значительно ускорить анализ данных и рабочий процесс машинного обучения.

На приведенной ниже диаграмме показаны все инструменты, доступные в наборе инструментов. Обратите внимание, что все эти инструменты оптимизированы для архитектур семейства Intel.

В следующих разделах мы рассмотрим все инструменты и библиотеки, доступные в наборе инструментов. Мы рассмотрим Modin, Scikit-learn и XGBoost с примерами. Но мы кратко коснемся TensorFlow, Pytorch, Model Zoo, Neural Compressor и Intel Python я планирую рассказать об этом в следующих статьях.

Обратите внимание, что следующий код протестирован в Ubuntu 20.04 LTS с процессором Intel Core i5–6200 и 16 ГБ ОЗУ.

1. Модин, оптимизированный для Intel

Modin — это замена Pandas для ускорения работы Pandas. Pandas использует одно ядро, тогда как Modin использует все ядра, доступные в системе, для ускорения операций Pandas.

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

Запустите приведенную ниже команду из терминала. Это создаст отдельную среду с именем aikit-modin. Установка займет несколько минут, так как необходимо установить множество библиотек, оптимизированных для Intel.

>>> conda create -n aikit-modin -c intel intel-aikit-modin
>>> conda activate aikit-modin
>>> jupyter notebook

Обратите внимание, что пакет intel-aikit-modin включает в себя Intel® Distribution of Modin, Intel® Extension for Scikit-learn и оптимизацию Intel для XGboost. Таким образом, вам не нужно отдельно устанавливать Scikit-learn и XGboost в следующих двух разделах.

Пример. В приведенном ниже примере Modin может успешно прочитать CSV-файл. Вы можете продолжать использовать любые операции Pandas с фреймворком данных. Modin покрывает почти 90% API-интерфейсов Pandas (функций/методов). Прелесть Modin в том, что если какой-либо API не поддерживается Modin, он вернется к API Pandas по умолчанию, поэтому мы не столкнемся с какими-либо ошибками.

import numpy as np
import modin.pandas as pd
df = pd.read_csv('Reviews.csv')

2. Intel оптимизировала Scikit-learn

Scikit-learn — популярная и наиболее широко используемая библиотека для реализации алгоритмов машинного обучения. Scikit-learn, оптимизированный для Intel, помогает ускорить построение моделей и логические выводы в системах с одним и несколькими узлами.

Если бы вы уже установили intel-aikit-modin, то Scikit-learn, оптимизированный для Intel, уже был бы установлен. Если вы хотите использовать только Scikit-learn, вы можете использовать любую из приведенных ниже команд для ее установки.

pip install scikit-learn-intelex 
OR
conda install scikit-learn-intelex -c conda-forge

Чтобы использовать Scikit-learn, оптимизированный для Intel, нам просто нужно добавить ниже 2 строки. Scikit-learn, оптимизированный корпорацией Intel, автоматически исправляет алгоритм Scikit-learn для использования библиотеки oneAPI Data Analytics, не влияя на производительность модели.

from sklearnex import patch_sklearn
patch_sklearn()

Чтобы отменить исправление, запустите эту строку кода:

sklearnex.unpatch_sklearn()

Пример. В приведенном ниже примере мы используем набор данных обзора продуктов питания Amazon для запуска простого наивного байесовского классификатора с использованием оптимизированного Intel Scikit-learn.

3. Оптимизированный Intel XGBoost

XGBoost — один из наиболее широко используемых алгоритмов повышения в науке о данных. В сотрудничестве с сообществом XGBoost Intel оптимизировала алгоритм XGBoost для обеспечения высокой производительности w.r.t. обучение модели и более быстрый вывод на архитектурах Intel.

Пример

4. Intel оптимизировала TensorFlow и Pytorch

В сотрудничестве с Google и Meta (Facebook) Intel оптимизировала две популярные библиотеки глубокого обучения TensorFlow и Pytorch для архитектур Intel. Используя оптимизированные для Intel TensorFlow и Pytorch, вы сможете сократить время обучения и логические выводы.

Вишенкой на торте является то, что для использования оптимизированных для Intel TensorFlow и Pytorch вам не нужно ничего менять. Вам просто нужно установить intel-aikit-tensorflow или intel-aikit-pytorch в зависимости от ваших требований и начать использовать фреймворк. Так просто !!

>>> conda create -n aikit-pt -c intel intel-aikit-pytorch
OR
>>> conda create -n aikit-tf -c intel intel-aikit-tensorflow

5. Оптимизированный Intel Python

AI Analytics Toolkit также поставляется с Python, оптимизированным для Intel. При установке любого из вышеупомянутых инструментов (Modin или TensorFlow,или Pytorch) оптимизированный для Intel Python также устанавливается по умолчанию.

Этот дистрибутив Python от Intel включает часто используемые библиотеки, такие как Numpy, SciPy, Numba, Pandas и Data Parallel Python. Все эти библиотеки оптимизированы для обеспечения высокой производительности, которая достигается за счет эффективного использования многопоточности, векторизации и, что более важно, управления памятью.

Дополнительные сведения о дистрибутиве Intel для Python см. здесь.

6. Модельный зоопарк для архитектуры Intel

Intel Model Zoo содержит ссылки на предварительно обученные модели (такие как ResNet, UNet, BERT и т. д.), примеры сценариев, рекомендации и пошаговые руководства по запуску популярных моделей машинного обучения на архитектуре Intel.

Подробнее о Model Zoo см. здесь.

7. Нейронный компрессор Intel

Intel Neural Compressor — это библиотека Python с открытым исходным кодом, которая помогает разработчикам развертывать решения для вывода с низкой точностью в популярных средах глубокого обучения — TensorFlow, Pytorch и ONNX.

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

Для получения более подробной информации о нейронном компрессоре обратитесь к этому.

Краткое содержание

В этом сообщении блога мы рассмотрели, что такое oneAPI и различные доступные наборы инструментов. Затем мы рассмотрели библиотеку Intel oneAPI AI Analytics Toolkit, важную для Modin, Scikit-learn и XGBoost, с примерами. Мы кратко коснулись других доступных инструментов, таких как TensorFlow, Pytorch, Neural Compressor и Model Zoo.

#oneAPI

Надеюсь, вам понравилось читать эту статью. Если вам нравятся мои статьи и вы хотите подписаться на Medium, вы можете сделать это здесь. Ваш членский взнос напрямую поддерживает меня и других писателей, которых вы читаете. Вы также получите полный доступ ко всем историям на Medium.



Рекомендации

[1]. https://www.intel.com/content/www/us/en/developer/tools/oneapi/ai-analytics-toolkit.html#gs.vsqlib

[2]. https://github.com/oneapi-src/oneAPI-samples/tree/master/AI-and-Analytics