AutoML OSSを紹介する本連載第5回は、ノーコードでAutoMLが実行できるOSS「H2O」を解説します。H2Oは、最小限の時間で最適なモデルの構築を目指すだけでなく、分散処理フレームワークを活用した大規模なデータセットの高速処理や、Python以外の手法による機械学習の実現など、さまざまなニーズを満たす機能が実装されています。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本記事で紹介したノートブックはGitHubにて公開しています。すぐに実行できますので、ぜひご利用ください。
本連載第4回では、表形式や画像、テキストのデータにも対応可能なOSS(オープンソースソフトウェア)の「AutoGluon」を紹介しました。今回は、ノーコードでのAutoMLを実現する「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と比較して次のような特徴があります。
H2Oには、「H2O Flow」(以下、Flow)というブラウザベースのUIが用意されており、データのロードからモデルの構築、予測に至るまでGUI操作のみで実施できます。H2OはコーディングによるAutoMLも実施できますが、GUI操作のみでAutoMLが可能な点は、他のAutoML系OSSとの最大の違いといえます。
またFlowは、Google Colaboratory(以下、Colab)やPythonユーザーにはおなじみのJupyter NotebookとUIも似ており、セル単位でコマンドの入力や実行ができるため、出力結果を随時確認できます。なお、データ分析時のワークフローを他ユーザーに共有できるため、データ分析の再現やノウハウの継承ができます。
H2Oの2つ目の特徴は、プラットフォームとしての高い柔軟性です。図2は、H2Oが対応している分散フレームワークをはじめ、PythonやRといったH2Oを利用可能なプログラミング言語など連携可能な技術を表しています。なお、図2では表現されていませんが、取り込むデータとして、CSVやExcelなどのファイル形式も選択可能となっています。
H2Oが複数のプログラミング言語に対応できる理由は、Javaで実装されたH2OサーバがREST APIによる操作を可能にしているためです。各プログラミング言語向けに用意されたクライアントがAPIを介してH2Oサーバとやりとりしています。そのため、H2OをPythonやRなどで使用する場合でも、H2Oサーバを動かすJavaの実行環境が必要となります。
システムの開発や運用時の技術選定では、さまざまな要因による制約が発生することから、環境やプログラミング言語、取得データの形式に至るまで複数の選択肢が用意されたH2Oは重宝されやすいといえます。
H2Oのコア部分がJavaで実装されていることもあり、構築したモデルを簡単にJavaアプリケーションに組み込める点も、他のOSSとの違いです。
Javaプログラマーにとって、AIモデルを構築してJavaアプリケーションに組み込むことはハードルが高いものといえます。その理由の一つに、PythonやRなどを使用したAIアプリケーションの開発と比較して、ライブラリが少ないことが挙げられます。その点、H2OはGUI操作でモデルを構築後、出力したモデルを読み込むだけでAIモデルをJavaアプリケーションで利用できるため、JavaベースのAIアプリケーション開発のハードルを下げる、非常に有用なOSSとしても使用できます。
Copyright © ITmedia, Inc. All Rights Reserved.