Дмитрий Носов, rambler&co, h2o на spark: как мы пили газировку...

26

Upload: mailru-group

Post on 06-Jan-2017

4.449 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись
Page 2: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

27 мая 2016 г. Дмитрий Носов, Rambler&Co

H2O на Spark

Как мы пили газировку и чуть не захлебнулись

Page 3: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

3

План

● Что такое H2O и Spark

● Что может H2O

● Задача, которую мы решали с помощью H2O

● Проблемы, с которыми мы столкнулись

Page 4: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

4

Spark и H2O

Page 5: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

5

“Fast and general computing engine for clusters

Makes it easy and fast to process large datasets● APIs in Java, Scala, Python, R● Libraries for SQL, streaming, machine

learning…● 100x faster than Hadoop MapReduce for some

apps”

Page 6: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

6

● Java-приложение для машинного обучения на больших данных

● Работает stand-alone, на Spark● API для:

– Python– R– Scala– REST API

Page 7: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

7Взято с github.com/h2oai/sparkling-water

Page 8: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

8Взято с github.com/h2oai/sparkling-water

Page 9: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

9

H2O – pros

Page 10: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

10

● Алгоритмы:– GLM– GBM– Distributed RF– Deep Learning– K-means– Naive Bayes– PCA

– pros

Page 11: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

11

In-memory – скорость: обработки данных, обучения

1M rows x 600 features, 32 executors (2 cores, 4 Gb):● Преобразование из Spark DF – 4 минуты● Обучение GLM – 30 секунд● Обучение GBM – 3 минуты

– pros

Page 12: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

12

H2O Flow – интерактивное окружение (Jupyter/IPython notebook-like):● Отчеты по моделям● Обучение● Мониторинг кластера и задач● …

– pros

Page 13: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

13

– pros

Page 14: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

14

– pros

Page 15: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

15

– pros

Page 16: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

16

– pros

Page 17: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

17

– pros

Page 18: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

18

Задача

Page 19: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

19

Задача

● Бинарная классификация с несбалансированными классами

● Большой объем данных для обучения

(в день – ~100 Gb / 100M rows) – в HDFS/Hive● HTTP API, применение модели в реальном

времени:– не менее 2000 rps (в перспективе 50000 rps)– время ответа не более 10 ms (в идеале 3 ms)

Page 20: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

20

Решение задачи

● Обучение на кластере:– Spark

– H2O

● Применение – Java-приложение:– Vert.x

– модель H2O, экспортированная в POJO

Page 21: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

21

H2O – cons

Page 22: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

22

– cons

Page 23: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

23

● Перезапуск executors разрушает кластер H2O● Нестабильность (внезапные падения)● “Сырой” Python API● Отсутствие Sparse-форматов● Высокие требования к driver-ноде● POJO не работает с отсутствующими и

новыми значениями категориальных переменных

– cons

Page 24: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

24

Итог

Page 25: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

25

● Отличная платформа для машинного обучения● Но мы не будем использовать H2O в production

Возможно, повезет вам?..

Итог

Page 26: Дмитрий Носов, Rambler&Co, H2O на Spark: как мы пили газировку и чуть не захлебнулись

Спасибо за внимание!

Вопросы?