SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
ОСОБЕННОСТИ LARGE SCALE MACHINE
LEARNING ЗАДАЧ И APACHE SPARK
Крот Александр, 2015
Кто: Крот Александр
•  ОАО Вымпелком (Билайн)
•  Задачи машинного обучения, анализ графов,
обработка больших данных, визуализация
•  Аналитический центр Правительства РФ
•  Анализ СМИ, соц. сетей, открытых данных,
рекомендательная система
•  МФТИ
•  Построение моделей веб-графов, случайных
графов
•  Askeroid
•  Разработка рекомендательной системы
поисковых движков
•  MLClass.ru
•  Сообщество ученых по данным
al.krot.kav@gmail.com
Mlclass.ru
vk.com/akrot
ru.linkedin.com/pub/alexander-krot/85/659/ab7/en
Что: особенности Apache Spark
•  Large Scale Machine Learning
•  Масштабы
•  Примеры задач
•  2 подхода
•  Линейные модели
•  Machine Learning over Map-Reduce
•  Реализация существующих ML-алгоритмов в модели MR
•  Инструменты
•  Vowpal Wabbit
•  Apache Spark
•  Особенности Apache Spark
LSML: масштаб
•  1 000 000 объектов
•  Python/R, scikit-learn, pandas, etc.
•  10 000 000 объектов
•  Линейные модели (онлайн-обучение)
•  Machine Learning over Map-Reduce (кластер до 10^2 машин)
•  100 000 000 000 объектов
•  Кластер из миллионов машин (p2p - вычисления)
LSML: примеры задач
•  1 000 000 объектов
•  Задачи на kaggle.com, tunedit.org
•  Обучающие выборки – опросы, средний бизнес. Классические
задачи ML
•  10 000 000 объектов
•  Обучающие выборки – часть текущей клиентской базы, кол-во
признаков 10^5 и более
•  Анализ текстов, изображений и видео
•  Ресурсоемкие алгоритмы вроде ансамблей (Random Forest)
•  100 000 000 000 объектов
•  Моделирование белков
LSML: 2 подхода
•  Линейные модели – Wovpal Wabbit
•  Расширение признакового пространства
•  Hashing Trick
•  Выбор функции потерь (hidge, loss, etc.)
•  Активное обучение (out-of-core, данные можно подавать
потоком, причем с нескольких машин)
•  Machine Learning over Map-Reduce – Apache Spark
•  Как переписать текущие алгоритмы в модели вычислений Map-
Reduce?
•  Что делать с IO-оверхедом в случае итеративных алгоритмов?
(большинство алгоритмов ML и на графах)
Реализация ML-алгоритмов в MR
Реализация ML-алгоритмов в MR
Реализация ML-алгоритмов в MR
Инструменты: Vowpal Wabbit
•  Разработан а Microsoft/Yahoo Research
•  Работает из командной строки
•  Формат: label |A feature1:value1 |B feature2:value2
•  Позволяет создавать квадратичные и кубичные
признаки, n-граммы (-q, -cubiq, -ngram )
•  L1,L2 – нормализация (-l1, l2) для отбора признаков
•  Возможность менять Learning Rate (-adaptive)
•  Для оценки используется Progressive Loss
Инструменты: Apache Spark
•  Resilient Distributed Dataset (RDD)
•  MLLib: уже реализованные алгоритмы (K-Means, SVM,
RandomForest, GBT)
•  GraphX: работа с графами (уже готовые Strongly Connected
Components, PageRank)
•  Минусы:
•  Чтение мелких файлов (скорость)
•  С каждой итерацией замедляется (пример - PageRank)
•  OutOfMemoryError
•  executor.memory, driver.memory, executor.memoryOverhead,
driver.memoryOverhead
•  Нельзя сохранять модели (нужно писать свои сериализаторы)
•  Чтобы его понять, нужно начать в него коммитить
Особенности Apache Spark
•  Сериализация: Kryo VS Java Serializer – Kryo меньше в 5-7 раз
(разница в shuffle write)
•  При работе с длинными списками – collection.mutable.MutableList
– ловится StackOverflowError из сериализатора
•  GroupByKey – не производит локальной агрегации, альтернатива
- ReduceByKey/AggregateByKey
•  При тяжелых джоинах имеет смысл увеличивать
spark.shuffle.memoryFraction (0.2 по дефолту)
•  Если нужно сделать join двух RDD, в случае, если одна из них
огромная, лучше использовать broadcast variable и сделать
MapSide Join
•  Map vs MapPartition – во втором случае меньше накладных
расходов, т.к. работаем не с каждым RDD, а с партицией целиком
•  spark.default.parallelism лучше подбирать так, чтобы время
выполнения одного таска было 2-3 секунды
Выводы
•  Apache Spark чаще хочется применять в двух случаях:
•  для ETL-операций, где разница в производительности с
классическим MR невелика
•  для решения задач на больших графах
•  В случае же задач LSML лучше все по-максимуму
свести к Vowpal Wabbit / Python
Вопросы?
Спасибо за внимание!

Mais conteúdo relacionado

Mais procurados

Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). Badoo Development
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksRoman Pavlushko
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеAlexandr Krasheninnikov
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012Roman Pavlushko
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиBadoo Development
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaRoman Zykov
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
 

Mais procurados (20)

Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricks
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Avito Stachka 2012
Avito Stachka 2012Avito Stachka 2012
Avito Stachka 2012
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитики
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 

Destaque

Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Andrei Nikolaenko
 
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )Shamim bhuiyan
 
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Spark Summit
 
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Spark Summit
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Kirill Rybachuk
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015rusbase
 
GraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLGraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLSpark Summit
 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analyticsSigmoid
 
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosBuilding a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosSpark Summit
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXAndrea Iacono
 
Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkBig Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkKenny Bastani
 
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveGraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveSpark Summit
 
A Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
A Scaleable Implementation of Deep Learning on Spark -Alexander UlanovA Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
A Scaleable Implementation of Deep Learning on Spark -Alexander UlanovSpark Summit
 
Credit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisCredit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisJen Aman
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in SparkPaco Nathan
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezBig Data Spain
 

Destaque (19)

FareBor Presentation
FareBor PresentationFareBor Presentation
FareBor Presentation
 
ETL со Spark
ETL со SparkETL со Spark
ETL со Spark
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
 
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
 
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
 
Apache spark
Apache sparkApache spark
Apache spark
 
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015
 
GraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLGraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQL
 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analytics
 
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosBuilding a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphX
 
Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkBig Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache Spark
 
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveGraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
 
A Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
A Scaleable Implementation of Deep Learning on Spark -Alexander UlanovA Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
A Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
 
Credit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisCredit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph Analysis
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in Spark
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
 

Semelhante a Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
 
CodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Ontico
 
Выступление Александра Петрова из DCA (Data-Centric Alliance)
Выступление Александра Петрова из DCA (Data-Centric Alliance)Выступление Александра Петрова из DCA (Data-Centric Alliance)
Выступление Александра Петрова из DCA (Data-Centric Alliance)Антон Шестаков
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Andrew Mayorov
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
 
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...Mail.ru Group
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на RailsAndrei Kaleshka
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФПAlexander Granin
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Наталия Егорова
 

Semelhante a Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++ (20)

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
CodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в Скале
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
 
апрель
апрельапрель
апрель
 
Выступление Александра Петрова из DCA (Data-Centric Alliance)
Выступление Александра Петрова из DCA (Data-Centric Alliance)Выступление Александра Петрова из DCA (Data-Centric Alliance)
Выступление Александра Петрова из DCA (Data-Centric Alliance)
 
Real time dmp
Real time dmpReal time dmp
Real time dmp
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...
Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захл...
 
Migrate!
Migrate!Migrate!
Migrate!
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на Rails
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФП
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
 

Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++

  • 1. ОСОБЕННОСТИ LARGE SCALE MACHINE LEARNING ЗАДАЧ И APACHE SPARK Крот Александр, 2015
  • 2. Кто: Крот Александр •  ОАО Вымпелком (Билайн) •  Задачи машинного обучения, анализ графов, обработка больших данных, визуализация •  Аналитический центр Правительства РФ •  Анализ СМИ, соц. сетей, открытых данных, рекомендательная система •  МФТИ •  Построение моделей веб-графов, случайных графов •  Askeroid •  Разработка рекомендательной системы поисковых движков •  MLClass.ru •  Сообщество ученых по данным al.krot.kav@gmail.com Mlclass.ru vk.com/akrot ru.linkedin.com/pub/alexander-krot/85/659/ab7/en
  • 3. Что: особенности Apache Spark •  Large Scale Machine Learning •  Масштабы •  Примеры задач •  2 подхода •  Линейные модели •  Machine Learning over Map-Reduce •  Реализация существующих ML-алгоритмов в модели MR •  Инструменты •  Vowpal Wabbit •  Apache Spark •  Особенности Apache Spark
  • 4. LSML: масштаб •  1 000 000 объектов •  Python/R, scikit-learn, pandas, etc. •  10 000 000 объектов •  Линейные модели (онлайн-обучение) •  Machine Learning over Map-Reduce (кластер до 10^2 машин) •  100 000 000 000 объектов •  Кластер из миллионов машин (p2p - вычисления)
  • 5. LSML: примеры задач •  1 000 000 объектов •  Задачи на kaggle.com, tunedit.org •  Обучающие выборки – опросы, средний бизнес. Классические задачи ML •  10 000 000 объектов •  Обучающие выборки – часть текущей клиентской базы, кол-во признаков 10^5 и более •  Анализ текстов, изображений и видео •  Ресурсоемкие алгоритмы вроде ансамблей (Random Forest) •  100 000 000 000 объектов •  Моделирование белков
  • 6. LSML: 2 подхода •  Линейные модели – Wovpal Wabbit •  Расширение признакового пространства •  Hashing Trick •  Выбор функции потерь (hidge, loss, etc.) •  Активное обучение (out-of-core, данные можно подавать потоком, причем с нескольких машин) •  Machine Learning over Map-Reduce – Apache Spark •  Как переписать текущие алгоритмы в модели вычислений Map- Reduce? •  Что делать с IO-оверхедом в случае итеративных алгоритмов? (большинство алгоритмов ML и на графах)
  • 10. Инструменты: Vowpal Wabbit •  Разработан а Microsoft/Yahoo Research •  Работает из командной строки •  Формат: label |A feature1:value1 |B feature2:value2 •  Позволяет создавать квадратичные и кубичные признаки, n-граммы (-q, -cubiq, -ngram ) •  L1,L2 – нормализация (-l1, l2) для отбора признаков •  Возможность менять Learning Rate (-adaptive) •  Для оценки используется Progressive Loss
  • 11. Инструменты: Apache Spark •  Resilient Distributed Dataset (RDD) •  MLLib: уже реализованные алгоритмы (K-Means, SVM, RandomForest, GBT) •  GraphX: работа с графами (уже готовые Strongly Connected Components, PageRank) •  Минусы: •  Чтение мелких файлов (скорость) •  С каждой итерацией замедляется (пример - PageRank) •  OutOfMemoryError •  executor.memory, driver.memory, executor.memoryOverhead, driver.memoryOverhead •  Нельзя сохранять модели (нужно писать свои сериализаторы) •  Чтобы его понять, нужно начать в него коммитить
  • 12. Особенности Apache Spark •  Сериализация: Kryo VS Java Serializer – Kryo меньше в 5-7 раз (разница в shuffle write) •  При работе с длинными списками – collection.mutable.MutableList – ловится StackOverflowError из сериализатора •  GroupByKey – не производит локальной агрегации, альтернатива - ReduceByKey/AggregateByKey •  При тяжелых джоинах имеет смысл увеличивать spark.shuffle.memoryFraction (0.2 по дефолту) •  Если нужно сделать join двух RDD, в случае, если одна из них огромная, лучше использовать broadcast variable и сделать MapSide Join •  Map vs MapPartition – во втором случае меньше накладных расходов, т.к. работаем не с каждым RDD, а с партицией целиком •  spark.default.parallelism лучше подбирать так, чтобы время выполнения одного таска было 2-3 секунды
  • 13. Выводы •  Apache Spark чаще хочется применять в двух случаях: •  для ETL-операций, где разница в производительности с классическим MR невелика •  для решения задач на больших графах •  В случае же задач LSML лучше все по-максимуму свести к Vowpal Wabbit / Python