プロジェクト機能

Driverless AIを利用しているうちに、データセットやExperimentの数が増え、管理が大変になってくることと思われます。このため、関連するデータセットやExperimentをプロジェクトとしてまとめる機能が備わっています。

  • 図8: プロジェクト画面

ここでは、Experimentの実行、Experimentの精度によるソート、複数の予測モデルに対する予測精度の計算、Experiment同士の比較、などの機能が利用できます。

  • 図9: Experimentの比較(最大3つまで)

予測モデルのデプロイ

Experimentの完了画面では、外部環境でモデルを実行できるモジュール(Pipeline)を取得できますが、これを手軽にWeb API形式でデプロイできる機能も備わっています。デプロイ先は、Driverless AI環境もしくはAmazon Lambdaの環境となります。

  • 図10: デプロイ実行結果画面

デプロイ後は、外部環境からのWeb APIアクセスに対して予測結果を返すことができます。

  • 図11: Web APIの動作検証(curlとPythonで検証)

Python, Rクライアント

Driverless AIの操作を、ウェブブラウザ経由ではなくプログラムコードを介して行いたい場合は、PythonやRのクライアントを利用するとよいでしょう。

PythonやRの実行環境にクライアントをインストールすることで、Driverless AI環境にアクセスでき、ファイルアップロード・Experiment実行・予測結果のダウンロードなど、Driverless AIの大半の処理をプログラムコードから実行できます。

この機能により、Experimentの設定を少しずつ変えながら繰り返し学習を実行する、日々生成されるデータを定期的にDriverless AIに読み込ませてモデルの再学習を行う、などの処理を自動化できます。

  • 図12: Pythonクライアントの機能検証(1)(接続・データアップロードなど)

  • 図13: Pythonクライアントの機能検証(2)(Experiment実行・結果確認)

BYOR(Bring Your Own Recipe)

「BYOR」は、Driverless AIのバージョン1.7.0から導入された目玉機能です。

BYORの機能を利用すると、Experimentにて使用される、特徴量エンジニアリング手法(Transformer)・機械学習アルゴリズム(Model)・モデルの精度評価指標(Scorer)のモジュールを、ユーザがPythonのコードで独自に開発して自由に組み込むことができます。これらのモジュールは「レシピ」とよばれています。

このレシピの実行に必要なPythonのパッケージがある場合は、レシピのコードの中で指定すればインストールされます。また、標準のレシピを含め、有効化するレシピは各Experimentにて個別に指定できるため、特定のデータへの利用に特化したレシピの導入なども特に問題ありません。

BYODの機能により、最新の機械学習アルゴリズムの性能を試したい、データ加工やデータ分析に関する自社のノウハウを組み込みたい、「この日付が日本の祝日か判定する」のような地域に特化した特徴量生成処理を組み込みたい、など、各ユーザのニーズにあわせた柔軟なカスタマイズができます。

H2O.ai社の公式GitHubにて、100を超えるカスタムレシピや、レシピの書き方やテンプレートなどが公開されていますので、まずはそちらをご確認いただき導入をお試しいただければと思います。今回はBox-Cox変換とよばれる数値変換(特徴量生成)のレシピを導入しました。

  • 図14: 公式GitHubのカスタムレシピ(Box-Cox変換)

カスタムレシピの追加は、Experiment設定の「Expert Settings」画面で行います。 BYOR機能のボタンを押して対象のURLを張り付けると、自動的に必要機能のインストールと動作テストのプロセスを実行して、該当レシピを導入してくれます。

(なお、Expert SettingsはExperimentの詳細設定画面です。GPUの利用有無・各機械学習アルゴリズムの利用有無・ハイパーパラメータの値やその探索範囲の指定など、かなり細かい設定調整ができますので、通常の「つまみ」の調整で満足できない場合はこちらを利用してください)

  • 図15: Expert Settings

カスタムレシピの導入・有効化後に実行したExperimentの結果が下記になります。カスタムレシピで生成された特徴量が重要変数として使われており、モデルの予測精度も若干上昇していました。

  • 図16:カスタムレシピにより予測精度が向上

なお、BYORを利用してもExperimentの動作プロセス自体は変わりません。このため、カスタムレシピによる機械学習アルゴリズムや特徴量も、Experimentプロセスの中で有用とみなされたものだけが最終的な予測モデルに使われることになります。

このように、データ分析の柔軟性が格段に広がるBYOR機能ですが、こちらを利用すると、MOJO形式のPipeline取得(Python形式は取得可)・デプロイ機能・MLIの一部機能など、機能の利用に一部制限が発生します。

また、カスタムレシピの動作の安全性や正確性など、導入に関しては自分で責任を持つ必要がある、といった懸念事項はあります。いくつかの有用なカスタムレシピは、改良を加えつつ標準のレシピとして取り入れていく方針とのことですので、そちらを待つのも手かもしれません。

なお、バージョン1.8.1からはデータ取得のBYOR機能が追加されています。PythonコードをDriverless AIに読み込ませることで、柔軟なデータ取得や前処理を行うことができます。アップロード済みのデータに対しても加工できるので、データを後で少し修正したくなった場合にも便利な機能になっています。

  • 図17:データ取得のBYOR画面(Live Code)

以上、Driverless AIをさらに深く使いこなすための機能や利用方法を紹介しました。興味を持たれた場合は、トライアルなどで機能を試してみていただければと思います。

著者プロフィール

有馬 直尭


ネットワンシステムズ株式会社
ビジネス開発本部 第1応用技術部

2018年入社。前職にて運用自動化への応用を目的とした機械学習の検証を担当していた縁で、入社後は製造業におけるデータ分析PoC案件に携わる。現在は主にデータ分析関連ツールの調査や検証に従事している。