15 мая в ICTeam состоялись доклады о Big Data. Оба выступления были посвящены использованию платформы Spark для масштабирования глубокого обучения и среды R для обработки больших данных.

Apache Spark — это среда кластерных вычислений с открытым исходным кодом, способная предоставить унифицированный и распределенный программный интерфейс для различных приложений (Java, Python, Scala и R).

В первом докладе речь шла об использовании глубокого обучения для генерации подписей к изображениям. Представленный подход начался с ИТ-архитектуры: один кластер больших данных (Spark) с четырьмя виртуальными узлами Cloudera, использующий один и тот же дистрибутив Python (от Anaconda) на всех узлах уровня для оценки глубокого обучения. Таким образом, вопрос в том, как развернуть данные из кластера для обучения глубокому обучению для выполнения на нескольких устройствах, и решением стало параллельное обучение для каждого устройства, чтобы максимизировать алгоритм с использованием библиотеки TensorFlow. Теперь глубокое обучение является постоянной темой в науке о данных: оно используется в таких контекстах, как компьютерное зрение, распознавание речи и распознавание естественного языка. При глубоком обучении входные данные проходят через иерархические слои, и в каждом слое данные преобразуются в соответствии с целью, чтобы минимизировать ошибку. Архитектура глубокого обучения — это нейронная сеть, основанная на большом наборе связанных простых единиц, называемых «искусственными нейронами», похожих на те, что есть в биологическом мозге, потому что задача — имитировать биологический нейрон. Вопрос в том, как вы можете обучить модель? Помощь в обучении глубокому обучению в распределенной обработке исходит от TensorFlow, интерфейса для выражения алгоритмов машинного обучения и реализации для выполнения таких алгоритмов. Он использует преимущества блок-схем данных для представления вычислений, общего состояния и операций, изменяющих это состояние. Эта информация проходит через «узлы», в которых она обрабатывается (входные данные с регрессией), чтобы обеспечить «обучение» и развитие нейронных сетей. Эта библиотека предоставляет API Python, а также Java и C++. Он может работать в больших масштабах и в гетерогенных средах. Он был открыт Google в 2015 году.

Пример, объясненный Лукой Грациоли, касается создания подписи к изображению, методологии, способной преобразовать изображение в текст. Как это работает? Существует первый шаг, начало, в котором каждое изображение классифицируется на ряд объектов (внутри изображения), связанных с его вероятностью. Второй шаг — это система LSTM (долговременная кратковременная память), позволяющая составлять фразы с большим количеством слов на каждом следующем шаге. Таким образом, базовая модель, используемая для создания подписей к изображениям, представляет собой генеративную рекуррентную нейронную сеть, в которой выходное слово в момент времени (t−1) становится входным словом на временном шаге t. Читая изображение, система может определить функцию подсчета очков в Python и т. д., чтобы создать раздел карты, в котором определяется вероятность слов, полезных для описания изображения.

Во втором докладе Серена Синьорелли рассказала о новом ресурсе для обработки больших данных с помощью инфраструктуры Spark в среде R. В процессе науки о данных с большими данными у R есть слабость, потому что для обработки таких больших данных требуется большой объем памяти; до прошлого года одним из решений было использование SparkR.

SparkR — это пакет R, который предоставляет облегченный интерфейс для использования Apache Spark из R. Он предоставляет реализацию распределенного фрейма данных, которая поддерживает такие операции, как выбор, фильтрация, агрегирование и т. д., но для больших наборов данных. SparkR также поддерживает распределенное машинное обучение с использованием MLlib. Он изначально был включен в Spark после версии 1.6.2., но требует использования другого языка программирования, поскольку он предварительно настроен в кластерах Spark. Недавно было разработано действительно интересное решение для пользователей R, пакет CRAN: SparklyR от RStudio. Благодаря этому решению у вас есть возможность доступа и анализа данных внутри кластера и переноса в R только результатов. Этот пакет легко установить в R, а также позволяет загружать и устанавливать Spark, поскольку SparklyR — это интерфейс для Apache Spark, он обеспечивает подключение как к локальным экземплярам Spark, так и к удаленным кластерам Spark. С этим инструментом обновляется процесс обработки данных: процесс анализа выполняется с использованием Spark (таблицы Hive, библиотеки машинного обучения, SQL). Сильной стороной этого пакета является язык, очень похожий на R и основанный на 3 столпах: dplyr, машинном обучении, алгоритмах Spark и расширениях. Sparklyr предоставляет полный бэкенд dplyr для обработки, анализа и визуализации данных, он переводит язык R в SQL Spark. У него есть две характеристики: тот же самый оператор, такой как конвейер из пакета magrittr, и он никогда не загружает данные в R, если только оператор специально не запрашивает их.

Второй столп относится к 3 семействам функций для конвейера машинного обучения, предоставляемых пакетом Spark ml:

  • Алгоритмы машинного обучения для анализа данных;
  • Преобразователи функций для управления отдельными функциями;
  • Функции для управления SparkDataFrames.

Последний столп касается расширений, которые можно создать для вызова полного API Spark. Преимуществом SparkR по сравнению со Sparklyr является функция UDF (определяемая пользователем функция), доступная в SparkR, но пока недоступная в Sparklyr.

Написано Клаудио Дж. Джанкатерино и проверено Фабио Кончиной.

Первоначально опубликовано в мае 2017 года.