H2O, Sparkling and Deep Water

H2O, Sparkling Water та Deep Water розробляються H2O.ai (раніше 0xdata) [H2O]; це сумісні з Hadoop фреймворки для DL і Big Data, а також для прогнозної аналітики Big Data.

Для доступу та довідкових даних, моделей та об’єктів у всіх вузлах і машинах H2O використовує розподілений ключ/значення. Алгоритми H2O реалізовані поверх розподіленої структури Map/Reduce та використовують фреймворк Java Fork/Join для багатопотокової роботи. H2O може взаємодіяти в автономному режимі з сховищами HDFS поверх YARN, MapReduce або безпосередньо в екземплярі Amazon EC2. Hadoop mavens може використовувати Java для взаємодії з H2O, але фреймворк також забезпечує REST API через JSON HTTP та прив’язки для Python (H2O-Python), R (H2O-R) та Scala, забезпечуючи перехресну взаємодію з усіма наявними бібліотеками на цих платформах. H2O також забезпечує способи складання, прискорення та комбінування кількох алгоритмів навчання з метою отримання кращої якості прогнозів.

H2O: За винятком API REST та прив’язки до популярних мов програмування, H2O доступний через CLI, а також дає можливість встановити кілька варіантів управління розгортанням кластера, наприклад, встановлення кількості вузлів для запуску, кількості пам’яті, яку потрібно виділити для кожного вузла, присвоєння імен вузлам у хмарі тощо. Пропонує веб-інтерактивне середовище під назвою Flow (подібне до Юпітера). Джерелом даних для фреймворку є локальна файлова система, віддалений файл, HDFS, S3, JDBC та інші через загальний API HDFS. Хоча покриття алгоритмами ML не є високим, вони оптимізовані для роботи з Big Data та задовольняють потреби цільових компаній, тобто банків та страхового сектору. Загалом H2O використовується 8 з 10 топ-банків для моделювання протидії відмиванню грошей (AML), виявлення шахрайської поведінки, персоналізованих рекомендацій щодо продукту в реальному часі; 7 з 10 найкращих страхових компаній за категоріями ризику та автоматизацією класифікації претензій, аналізом утримання клієнтів, системою оповіщення про шахрайство зі страхуванням від шахрайства та телематикою страхування на основі використання; та 4 з 10 найкращих медичних компаній для профілактичної допомоги, виявлення раку або розробки персональної медицини в реальному часі.

Що стосується DL в H2O, то він заснований на FFNN, навчених стохастичним градієнтним спуском (SGD) із застосуванням зворотнього розповсюдження. Глобальна модель періодично будується з локальних моделей за допомогою усереднення. Локальні моделі будуються на кожному вузлі за допомогою багатопотокових параметрів глобальної моделі та локальних даних.

Sparkling Water має ті ж характеристики та функціональність, що і H2O, але забезпечує використання H2O з Spark. Ідеально підходить для управління великими кластерами для обробки даних, особливо якщо мова йде про передачу даних з Spark в H2O (або навпаки).

Deep Water (див. Мал. 9) – це H2O DL з вбудованою реалізацією DL моделей для оптимізованих під GPU інструментів, таких як TensorFlow, MXNet і Caffe. Ці інструменти доступні з Deep Water через з’єднувачі.

Малюнок 9. H2O Deep Water architecture [H2Odeepwater]

Сильні сторони:

  • Промислове використання зі значним зростанням та високою популярністю серед фінансових, страхових та медичних компаній.
  • Алгоритми оптимізації для обробки великих даних та аналітики з підтримкою інфраструктури.
  • H2O пропонує більш широкий набір алгоритмів ML, який використовує двигуни Hadoop/Spark для широкомасштабної обробки даних. Він спрямований на те, щоб зробити ML/DM процес більш автоматичним через GUI.

Слабкі сторони:

  • Веб-інтерфейс користувача для H2O не підтримує пряму взаємодію з Spark.
  • H2O має більш загальне призначення і спрямований на різні масштабовані DM в порівнянні з (конкретними) бібліотеками DL, напр. TensorFlow або DL4j.