ノーコードでAutoMLを実現、Javaアプリと簡単に連携できる「H2O」AutoML OSS入門(5)(1/3 ページ)

AutoML OSSを紹介する本連載第5回は、ノーコードでAutoMLが実行できるOSS「H2O」を解説します。H2Oは、最小限の時間で最適なモデルの構築を目指すだけでなく、分散処理フレームワークを活用した大規模なデータセットの高速処理や、Python以外の手法による機械学習の実現など、さまざまなニーズを満たす機能が実装されています。

» 2021年10月29日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

本記事で紹介したノートブックはGitHubにて公開しています。すぐに実行できますので、ぜひご利用ください。


 本連載第4回では、表形式や画像、テキストのデータにも対応可能なOSS(オープンソースソフトウェア)の「AutoGluon」を紹介しました。今回は、ノーコードでのAutoMLを実現する「H2O」を紹介します。

H2Oとは

 「H2O」は、H2O.aiで開発され、オープンソース化された機械学習プラットフォームです。H2Oのユーザーは幅広く、PayPalをはじめとしたフォーチュン500に選出される名だたる大企業を含め、利用組織は1万8000以上とされています。

開発元 H2O.ai
GitHub公開日 2014年3月
リポジトリ https://github.com/h2oai/h2o-3
実装言語 コア部分はJava
ライセンス Apache-2.0 License
公式サイト https://www.h2o.ai/products/h2o/
表1 H2Oの基本情報

 H2Oで注目すべきは、機械学習ライブラリではなくプラットフォームである点です。H2Oでは、データのロードから予測までの機械学習を用いたデータ分析の各工程において何らかの機能が提供されています。

主な特徴

 H2Oは、AutoMLができる他のOSSと比較して次のような特徴があります。

  • GUI操作により、ノーコードでのAutoMLが可能
  • モデルの開発や運用、データ分析における柔軟性が高い
  • JavaアプリケーションへのAIモデルの組み込みが容易

GUI操作により、ノーコードでのAutoMLが可能

 H2Oには、「H2O Flow」(以下、Flow)というブラウザベースのUIが用意されており、データのロードからモデルの構築、予測に至るまでGUI操作のみで実施できます。H2OはコーディングによるAutoMLも実施できますが、GUI操作のみでAutoMLが可能な点は、他のAutoML系OSSとの最大の違いといえます。

 またFlowは、Google Colaboratory(以下、Colab)やPythonユーザーにはおなじみのJupyter NotebookとUIも似ており、セル単位でコマンドの入力や実行ができるため、出力結果を随時確認できます。なお、データ分析時のワークフローを他ユーザーに共有できるため、データ分析の再現やノウハウの継承ができます。

図1 Flowの画面イメージ 図1 Flowの画面イメージ

モデルの開発や運用、データ分析における柔軟性が高い

 H2Oの2つ目の特徴は、プラットフォームとしての高い柔軟性です。図2は、H2Oが対応している分散フレームワークをはじめ、PythonやRといったH2Oを利用可能なプログラミング言語など連携可能な技術を表しています。なお、図2では表現されていませんが、取り込むデータとして、CSVやExcelなどのファイル形式も選択可能となっています。

図2 H2Oにおける機械学習フローと連携可能な技術 図2 H2Oにおける機械学習フローと連携可能な技術 (出典:公式ドキュメント

 H2Oが複数のプログラミング言語に対応できる理由は、Javaで実装されたH2OサーバがREST APIによる操作を可能にしているためです。各プログラミング言語向けに用意されたクライアントがAPIを介してH2Oサーバとやりとりしています。そのため、H2OをPythonやRなどで使用する場合でも、H2Oサーバを動かすJavaの実行環境が必要となります。

図3 H2OにおけるREST APIを用いたファイル取り込み処理の実行イメージ 図3 H2OにおけるREST APIを用いたファイル取り込み処理の実行イメージ

 システムの開発や運用時の技術選定では、さまざまな要因による制約が発生することから、環境やプログラミング言語、取得データの形式に至るまで複数の選択肢が用意されたH2Oは重宝されやすいといえます。

JavaアプリケーションへのAIモデルの組み込みが容易

 H2Oのコア部分がJavaで実装されていることもあり、構築したモデルを簡単にJavaアプリケーションに組み込める点も、他のOSSとの違いです。

 Javaプログラマーにとって、AIモデルを構築してJavaアプリケーションに組み込むことはハードルが高いものといえます。その理由の一つに、PythonやRなどを使用したAIアプリケーションの開発と比較して、ライブラリが少ないことが挙げられます。その点、H2OはGUI操作でモデルを構築後、出力したモデルを読み込むだけでAIモデルをJavaアプリケーションで利用できるため、JavaベースのAIアプリケーション開発のハードルを下げる、非常に有用なOSSとしても使用できます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。