検索
連載

最も人気なAutoML OSSは? 注目のAutoMLクラウドサービスも紹介AutoML OSS入門(終)(1/3 ページ)

AutoML OSSを紹介する本連載最終回は連載内で紹介したOSSの比較と、これまでに紹介できなかった幾つかのOSSやAutoMLクラウドサービスを概説します。

Share
Tweet
LINE
Hatena

本記事で紹介したノートブックはGitHubにて公開しています。本記事内で言及するタイタニックの生存予測をする最小コードもアップロードしてあります。


 「AIの民主化」や効率的なデータ分析の観点から注目が集まる「AutoML」のメリットや、AutoMLを実現するオープンソースソフトウェア(OSS)を10回にわたって解説してきました。本連載最終回は、これまでに紹介できなかった幾つかのOSSやAutoMLクラウドサービスを概説します。

本連載で紹介したOSSのまとめと比較

 本連載では、9つのAutoML OSSを解説してきました。

  • auto-sklearn:AutoML OSSの老舗
  • TPOT:遺伝的プログラミングを採用したAutoML OSS
  • AutoGluon(Amazon):最短3行で高精度なAutoMLを実現するOSS
  • H2O(H2O.ai):GUIのみで操作可能なJava実装のAutoMLプラットフォーム
  • PyCaret:コードを大幅に削減可能な既存ライブラリのラッパー
  • AutoKeras:KerasベースのディープラーニングAutoML OSS
  • Ludwig(Uber):設定ファイルのみでディープラーニングを実現するOSS
  • NNI(Microsoft):GUIで学習の進行状況を確認可能なチューニングツール
  • Model Search(Google):Google発のディープラーニングAutoML OSS

 これらのOSSの基本情報は、以下の通りです。

製品名 auto-sklearn TPOT AutoGluon H2O PyCaret AutoKeras Ludwig NNI Model Search
開発元 フライブルク大学 ペンシルベニア
大学
AWS H2O.ai Moez Ali氏 テキサスA&M大学 Uber Microsoft Google
GitHub公開日 2016年5月 2015年
1月
2020年
3月
2014年
3月
2020年
4月
2017年
11月
2019年
2月
2018年
9月
2021年
2月
GitHubリポジトリ automl/
auto-sklearn
Epistasis
Lab/tpot
awslabs/
autogluon
h2oai/
h2o-3
pycaret/
pycaret
keras-team/
autokeras
udwig-ai/
ludwig
microsoft/
nni
google/
model_search
実装
言語
Python Python Python コア部分はJava Python Python Python Python Python
ライセンス 三条項BSD LGPL-3.0 Apache-
2.0
Apache-
2.0
MIT Apache-
2.0
Apache-
2.0
MIT Apache-
2.0
表1 連載内で紹介したOSSの基本情報

 本連載のまとめとして、紹介した9つのOSSを以下の観点で比較していきます。

比較の観点 比較の意図(把握できること)
GitHubのStar数 人気の動向
GitHubのコミット数 開発の活発度
GitHubのコントリビューター数 開発の活発度、透明性
ソースコードの行数 OSSの規模、機能の多さ、複雑さ
Google Searchの検索結果数 公開されている情報の多さ、人気
Google Trends OSSの注目度の動向
Snyk Advisorのスコア GitHubプロジェクトの健全性
自動化の範囲 機能の網羅性
AutoMLを実現するコードの最小行数 自動化の程度
最小コードの予測精度 自動化の性能
習得しやすさ 習得の難易度
表2 比較の観点

GitHubのStar数で比較

 GitHubのStar数の推移を比較してみましょう。

図1 GitHubのStar数推移の比較
図1 GitHubのStar数推移の比較

 これを見ると、2022年2月時点ではNNIのStar数が最も多く、上昇率も高いです。また、PyCaretのStar数も同様に急上昇していることが分かります。Model Searchはリリースと同時に急上昇した後、停滞しています。

GitHubのコミット数で比較

 GitHubのコミット数の推移を比較してみましょう。2017年〜2022年のコミット数の推移は以下のようになります。

図2 GitHubのコミット数推移の比較(2017年1月〜2022年1月)
図2 GitHubのコミット数推移の比較(2017年1月〜2022年1月)

 これを見ると、H2Oの開発が継続的に活発であることが分かります。ただし、Javaベースでソースコードの行数が多いことが、コミット数の差として表れているのかもしれません。次に直近の開発状況を確認するため、原稿執筆時点(2022年1月13日)から過去1年間のコミット数に絞り込んでみましょう。

図3 GitHubのコミット数推移の比較(原稿執筆時点〈2022年1月13日〉から過去1年間のコミット数)
図3 GitHubのコミット数推移の比較(原稿執筆時点〈2022年1月13日〉から過去1年間のコミット数)

 2021年の1年間ではH2Oに次いでNNIの開発が盛んに行われていることが分かります。一方、TPOTはコミットがなく、開発が停止しているようにも見えます。本連載の開始当初は、Googleが開発したAutoMLのOSSということで注目していたModel Searchも、2021年2月に初めてGitHub上で公開されてから原稿執筆時点(2022年1月)では9件のコミットしかありません。

GitHubのコントリビューター数で比較

 GitHubのコントリビューター数を比較してみましょう。

図4 GitHubのコントリビューター数の比較
図4 GitHubのコントリビューター数の比較

 Model Searchを除くと、コントリビューター数は50人を超えています。GitHubを見てみると、どのOSSも外部からのプルリクエストも積極的に取り込んでいるようでした。

ソースコードの行数で比較

 各OSSのソースコードの行数を比較してみましょう。ソースコードの行数の多さは機能の豊富さをある程度示す指標として見ることができるでしょう。逆に、保守の難しさを示す指標といえます。

図5 ソースコードの行数の比較
図5 ソースコードの行数の比較

 このグラフを見ると、圧倒的にH2Oのソースコードの行数が多いことが分かります。この理由は、H2Oが機能的に他を圧倒しているというよりは、Javaで実装されているためと考えられます。Javaで実装する場合、Pythonと比較してコードの行数が増える傾向があります。その上、機械学習でよく利用されるPythonライブラリを利用できず、一から開発しなければならないため、どうしてもソースコードの行数は増えてしまいます。

Google Searchの検索結果数で比較

 Google Searchの検索結果数で比較してみましょう。「Model Search」のようなキーワードで検索すると、Google Model Searchとは無関係な情報までヒットしてしまうので、公平性を担保するために、キーワードはGitHubのリポジトリの識別子をダブルクォーテーションで囲んだもの(“google/model_search”)にします。結果は以下のようになりました。

図6 Google Searchの検索結果数の比較
図6 Google Searchの検索結果数の比較

 圧倒的にNNIの情報量が多いように見えますが、実際に検索してみると中国語の情報が多く、日本語の情報はそこまで多くないように見受けられます。日本語の情報に絞ってみると、結果は以下のようになりました。日本語ではPyCaretの情報が多いようです。

図7 図7 日本語情報のみに絞ったGoogle Searchの検索結果数の比較
図7 図7 日本語情報のみに絞ったGoogle Searchの検索結果数の比較

Google Trendsで比較

 Google Trendsで比較してみましょう。OSSの名称が別の意味を持つもの(例えば、ドイツ語圏の男性名によく用いられるLudwig、水の化学式でありWebサーバのOSS名でもあるH2Oなど)は除外して、auto-sklearn、AutoGluon、PyCaret、AutoKeras、Neural Network Intelligenceの5つのみを検索キーワードに指定してみます。

図8 Google Trendsでの比較
図8 Google Trendsでの比較

この結果を見ると、近年はPyCaretが注目を集めているように見えます。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る