Наука о данных на базе графического процессора (НЕ глубокое обучение) с помощью RAPIDS

Исходный узел: 997659

Наука о данных на базе графического процессора (НЕ глубокое обучение) с помощью RAPIDS

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



Заглавное изображение
Изображение с сайтаPixabay (Бесплатное изображение)

Вы ищете «науку о данных на базе графических процессоров»?

 
 
Представьте себя специалистом по обработке данных, бизнес-аналитиком или академическим исследователем в области физики / экономики / нейробиологии ...

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

Однако, учитывая характер наборов данных, над которыми вы работаете (в основном табличные и структурированные), вы не особо рискуете глубоко изучать. Вы бы предпочли вложить все имеющиеся у вас аппаратные ресурсы в повседневные дела, чем тратить на какую-то причудливую модель глубокого обучения. Опять знакомо?

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

И вы продолжаете думать - «Что для меня? Как я могу использовать эти мощные полупроводники в моем конкретном рабочем процессе? "

Вы ищете науку о данных на базе графических процессоров.

Один из лучших (и самых быстрых) вариантов оценки этого подхода - использовать комбинацию Облако Сатурна + БЫСТРЫЕРазрешите мне подробно объяснить…

Графические процессоры в фольклоре AI / ML в первую очередь предназначены для глубокого обучения.

 
 
Хотя использование графических процессоров и распределенных вычислений широко обсуждается в академических и деловых кругах для решения основных задач AI / ML (например, запуск 1000-слойная глубокая нейронная сеть для классификации изображений или BERT с миллиардом параметров модель синтеза речи), они нашли меньше возможностей, когда дело доходит до их полезности для обычных задач науки о данных и инженерии данных.

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

Итак, важный вопрос: Можем ли мы использовать мощность графического процессора и распределенных вычислений для регулярной обработки данных??



Изображение с сайта: Автор создал коллаж из бесплатных изображений (Pixabay)

 

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

Фантастическая экосистема RAPIDS

 
 
Ассоциация Набор программных библиотек и API RAPIDS дать вам - обычному специалисту по данным (и не обязательно специалисту по глубокому обучению) - возможность и гибкость для выполнения сквозные конвейеры обработки данных и аналитики полностью на графических процессорах.

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

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



Изображение с сайта: Автор создал коллаж

 

Три наиболее важных (и питонических) компонента, которые представляют особый интерес для специалистов по обычным данным, это:

  • нять свои: Библиотека массивов на основе CUDA, которая выглядит и работает так же, как Numpy, при использовании различных библиотек CUDA, например, cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT и NCCL, чтобы в полной мере использовать архитектуру графического процессора под ней.
  • CuDF: Это библиотека графического процессора DataFrame для загрузки, агрегирования, объединения, фильтрации и управления данными с помощью pandas-подобный API. Инженеры по обработке данных и специалисты по обработке данных могут использовать его для легкого ускорения потоков задач с помощью мощных графических процессоров, даже не изучая основы программирования CUDA.
  • CuML: Эта библиотека позволяет специалистам по данным, аналитикам и исследователям запускать традиционные / классические алгоритмы машинного обучения и связанные с ними задачи обработки, полностью используя возможности графического процессора. Естественно, это используется в основном с табличными наборами данных. Подумайте о Scikit-learn и о том, что он может сделать со всеми этими сотнями ядер Cuda и тензорных ядер на вашей видеокарте! По этой причине в большинстве случаев API Python cuML совпадает с API Scikit-learn. Кроме того, он пытается предложить поддержка multi-GPU и multi-node-GPU by изящно интегрируясь с Дасквезде, где это возможно, чтобы воспользоваться преимуществами истинно распределенной обработки / кластерных вычислений.


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

Это отличается от использования Apache Spark?

 
 
Вы можете спросить, чем отличается обработка данных на GPU от Apache Spark. На самом деле есть некоторые тонкие различия, и только недавно, с появлением Spark 3.0, графические процессоры стали основным ресурсом для рабочих нагрузок Spark.

Ускорения Apache Spark 3.0 с помощью графических процессоров и RAPIDS | Блог разработчиков NVIDIA
 

У нас нет времени или места, чтобы обсудить уникальные отличия этого подхода к анализу данных на базе графического процессора от задач, связанных с большими данными, которые особенно подходят для Apache Spark. Но задайте себе эти вопросы, и вы, вероятно, поймете тонкую разницу,

Как специалист по данным, моделирующий экономические транзакции и управление портфелем, я хочу решить линейная система уравнений со 100,000 XNUMX переменных. Я использую чистую библиотеку линейной алгебры или Apache Spark?? "

В рамках конвейера сжатия изображений я хочу использовать Разложение по единственному значению на большой матрице из миллионов записей. Подходит ли для этого Apache Spark?? "

Большой размер проблемы не всегда означает экосистему Apache Spark или Hadoop. Большие вычисления не эквивалентны большим данным. Как разносторонний специалист по обработке данных, вам необходимо знать и то, и другое, чтобы решать всевозможные проблемы.

RAPIDS уделяет особое внимание раскрытие возможностей параллелизма графического процессора и скорости памяти с высокой пропускной способностью с помощью API-интерфейсов Python.

Что мы показываем в этой статье?

 
 

Только четкие примеры CuPy и CuML

 
Итак, в этой статье мы просто продемонстрируем четкие примеры CuPy и CuML,

  • как они сравниваются (по скорости) с соответствующими функциями / оценками Numpy и Scikit-learn
  • какое значение имеет размер данных / проблемы в этом сравнении скорости.

Примеры CuDF в следующей статье

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

Какая у меня аппаратная платформа на базе графического процессора?

 
Я использую Облако Сатурна Экземпляр Tesla T4 GPU, так как буквально 5 минут работы, чтобы развернуть полнофункциональные и загруженные (с библиотеками DS и AI) вычислительные ресурсы в облаке при всей моей работе с данными о данных с их сервисом. Если я использую Jupyter Notebook не более 10 часов в месяц, это бесплатно.! Если вы хотите узнать больше об их услугах,

Запущен Saturn Cloud Hosted: наука о данных на GPU для всех!

Вычисления на GPU - это будущее науки о данных. Такие пакеты, как RAPIDS, TensorFlow и PyTorch, обеспечивают молниеносную…

Помимо наличия Графический процессор Tesla T4, это 4-ядерный процессор Intel (R) Xeon (R) Platinum 8259CL с тактовой частотой 2.50 ГГц, с 16 ГБ ОЗУ и постоянным диском на 10 ГБ. Итак, это вполне нормальная установка с точки зрения конфигурации оборудования (ограниченный жесткий диск из-за бесплатного уровня), т.е. любой специалист по данным может иметь такое оборудование в своем распоряжении. Единственным отличительным фактором является наличие графического процессора и правильная настройка всех библиотек CUDA и Python, чтобы пакет RAPIDS работал без сбоев.


Большой размер проблемы не всегда означает экосистему Apache Spark или Hadoop. Большие вычисления не эквивалентны большим данным. Как разносторонний специалист по обработке данных, вам необходимо знать и то, и другое, чтобы решать всевозможные проблемы.

Решение линейной системы уравнений

 
Мы создаем линейные системы уравнений разного размера и используем Numpy (и CuPy) linalg.solveпроцедура для решения этой проблемы с помощью следующего кода,



И код изменяется на одну букву (при нескольких вызовах) для реализации CuPy!



Также обратите внимание, как мы можем создавать массивы CuPy из массивов Numpy в качестве аргументов.

Однако результат впечатляет. CuPy запускается медленно или с той же скоростью, что и Numpy, но опережает его для задач большого размера (количества уравнений).



Разложение по сингулярным числам

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



Важно отметить, что алгоритм CuPy не показывает заметно более высокую производительность по сравнению с алгоритмом Numpy в этом классе проблем. Возможно, разработчикам CuPy стоит над этим взяться, чтобы улучшить.

Возвращаясь к основам: инверсия матриц

 
Наконец, мы вернемся к основам и рассмотрим фундаментальную проблему обращения матриц (используется почти во всех алгоритмах машинного обучения). Результат снова показывает очень хороший прирост производительности алгоритма CuPy по сравнению с пакетом Numpy.



Решение проблемы кластеризации K-средних

 
Затем мы рассмотрим проблему неконтролируемого обучения кластеризации с использованием хорошо знакомого алгоритма k-средних. Здесь мы сравниваем функцию CuML с эквивалентной оценкой из пакета Scikit-learn.

Для справки, вот сравнение API между этими двумя оценщиками.



Изображение с сайтаScikit учиться и Веб-сайт CuML (Открытые проекты)

 

Вот результат для набора данных с 10 функциями / размерами.



И вот результат другого эксперимента с набором данных из 100 объектов.



Очевидно, что и размер выборки (количество строк), и размерность (количество столбцов) имели значение в том, как ускорение на основе графического процессора работает лучше.

Всем известная проблема линейной регрессии

 
Кто может игнорировать проблему линейной регрессии для сравнения скорости при работе с табличными наборами данных? Следуя ритму, как и раньше, мы меняем размер проблемы - на этот раз одновременно количество образцов и размерностей - и сравниваем производительность CuML. LinearRegression оценка к той, что получена из стабильной Scikit-learn.

Ось X на следующем рисунке представляет размер проблемы - от 1,000 выборок / 50 функций до 20,000 1000 выборок / XNUMX функций.

Опять же, оценщик CuML работает намного лучше по мере роста сложности проблемы (размера выборки и размерности).



Обзор

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



Изображение с сайта: Сделано автором с использованием бесплатных изображений Pixabay (Link-1Link-2Link-3)

 

Мы использовали Облако Сатурна Экземпляр на базе Tesla T4 для простая, бесплатная и быстрая установка и продемонстрировал некоторые особенности библиотек CuPy и CuML и сравнение производительности широко используемых алгоритмов.

  • Не все алгоритмы из библиотек RAPIDS намного лучше, но большинство из них.
  • Как правило, прирост производительности быстро увеличивается по мере роста сложности задачи (размера выборки и размерности).
  • Если у вас есть графический процессор, всегда пробуйте RAPIDS, сравнивайте и проверяйте, получаете ли вы какую-либо производительность, и сделайте его надежной рабочей лошадкой в ​​своем конвейере обработки данных.
  • Смена кода минимальна, при переключении практически не существует.

Позвольте мощности графического процессора ускорить ваш рабочий процесс аналитики и обработки данных.

Вы можете проверить авторский GitHub хранилища для кода, идей и ресурсов в машинном обучении и науке о данных. Если вы, как и я, увлечены искусственным интеллектом / машинным обучением / наукой о данных, пожалуйста, не стесняйтесь добавь меня в LinkedIn or Подпишись на меня в Твиттере.

Спасибо Мел.

 
Оригинал, Перемещено с разрешения.

Связанный:



Главные истории за последние 30 дней
Самые популярные
  1. Специалисты по обработке данных и инженеры по машинному обучению - роскошные сотрудники
  2. 6 лучших онлайн-курсов по науке о данных в 2021 году
  3. Совет по изучению науки о данных от директора по исследованиям Google
  4. Панд мало? Вот несколько хороших альтернатив обработке больших и быстрых данных в Python
  5. Путь к обучению, чтобы стать специалистом по данным
Самые общие
  1. Специалисты по обработке данных и инженеры по машинному обучению - роскошные сотрудники
  2. Расслабиться! Data Scientists не исчезнут через 10 лет, но их роль изменится
  3. Панд мало? Вот несколько хороших альтернатив обработке больших и быстрых данных в Python
  4. Почему и как вы должны изучать «Продуктивную науку о данных»?
  5. Не только для глубокого обучения: как графические процессоры ускоряют науку о данных и аналитику данных

Источник: https://www.kdnuggets.com/2021/08/gpu-powered-data-science-deep-learning-rapids.html

Отметка времени:

Больше от КДнаггетс