Swift в моделях ML за счет преобразования их в тензорные вычисления.

Привет инопланетяне.....

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

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

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

Позвольте мне немного рассказать о процессоре и графическом процессоре.

ЦП отлично подходит для повторного использования данных, так как имеет быстрые кэши. Он состоит из множества различных процессов или потоков и обеспечивает высокую производительность в одном потоке выполнения. Они хороши для распараллеливания задач. Как правило, он оптимизирован для высокой производительности последовательных кодов (кеши и прогнозирование ветвлений).

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

Итак, что, если мы воспользуемся преимуществами нейронных сетей в нашем традиционном случайном лесу и воспользуемся выводом с ускорением на GPU? Вот где на сцену выходит колибри Microsoft. Он преобразует вашу модель машинного обучения в тензорные вычисления, чтобы использовать ускорение графического процессора для ускорения логического вывода.

"Hummingbird используется только для ускорения прогнозирования, а не для ускорения обучения!"

Но подождите, зачем нам нужно преобразовывать модель в тензоры?

Есть несколько причин для преобразования вашей модели в тензоры:

1. Чрезвычайно ускоряет вывод, что снижает затраты на создание новых прогнозов.

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

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

Хорошо право…..

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

О пакете:

Hummingbird – это библиотека для компиляции обученных традиционных моделей машинного обучения в тензорные вычисления.

Пользователи могут извлечь выгоду из:

(1) все текущие и будущие оптимизации, реализованные в рамках нейронных сетей.

(2) собственное аппаратное ускорение.

(3) наличие уникальной платформы для поддержки как традиционных моделей, так и моделей нейронных сетей.

(4) и иметь все вышеперечисленное, без необходимости реинжиниринга своих моделей.

Hummingbird поддерживает различные модели машинного обучения и функции. На данный момент это Поддерживаемые операторы. Кроме того, посмотрите на предстоящие функции и поддержку здесь.

Использование Hummingbird чрезвычайно просто.

Установка:

Hummingbird был протестирован на Python ›= 3.5 на компьютерах с Linux, Windows и MacOS. Рекомендуется использовать виртуальную среду, чтобы быть в курсе. Для Hummingbird требуется PyTorch ›= 1.4.0.

После установки PyTorch вы можете получить Hummingbird из pip с помощью:

pip install hummingbird-ml

Если вам требуются дополнительные зависимости lightgbm и xgboost, вы можете использовать:

pip install hummingbird-ml[extra]

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

Затем мы используем набор данных IRIS и строим модель дерева решений.

from sklearn.datasets import load_iris
from sklearn import tree
X, y = load_iris(return_X_y=True)
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)

После этого единственное, что нам действительно нужно сделать, чтобы преобразовать его в Pytorch, — это импортировать Hummingbird и использовать функцию convert.

import hummingbird.ml
from hummingbird.ml import convert
# Use Hummingbird to convert the model to PyTorch
model = convert(clf, 'pytorch')

Полученная модель представляет собой просто torch.nn.Module, и ее можно использовать точно так же, как вы обычно работаете с Pytorch.

# Run predictions on CPU
model.predict(X)
# Run predictions on GPU
model.to('cuda')
model.predict(X)

Вывод:

Вот почему Hummingbird становится спасителем, когда мы ускоряем наши модели машинного обучения, используя тензоры. Подробную информацию смотрите в документации по API здесь. Я бы порекомендовал другим членам посетить документацию и получить больше информации.

Счастливого обучения…………

Спасибо за прочтение статьи! Если вам понравилась моя статья, сделайте 👏 эту статью. Если вы хотите связаться со мной в Linkedin, нажмите здесь.

Это Картик Менда.

Подписание