AutoML OSSを紹介する本連載最終回は連載内で紹介したOSSの比較と、これまでに紹介できなかった幾つかのOSSやAutoMLクラウドサービスを概説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本記事で紹介したノートブックはGitHubにて公開しています。本記事内で言及するタイタニックの生存予測をする最小コードもアップロードしてあります。
「AIの民主化」や効率的なデータ分析の観点から注目が集まる「AutoML」のメリットや、AutoMLを実現するオープンソースソフトウェア(OSS)を10回にわたって解説してきました。本連載最終回は、これまでに紹介できなかった幾つかのOSSやAutoMLクラウドサービスを概説します。
本連載では、9つのAutoML OSSを解説してきました。
これらのOSSの基本情報は、以下の通りです。
製品名 | auto-sklearn | TPOT | AutoGluon | H2O | PyCaret | AutoKeras | Ludwig | NNI | Model Search |
---|---|---|---|---|---|---|---|---|---|
開発元 | フライブルク大学 | ペンシルベニア 大学 |
AWS | H2O.ai | Moez Ali氏 | テキサスA&M大学 | Uber | Microsoft | |
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数の推移を比較してみましょう。
これを見ると、2022年2月時点ではNNIのStar数が最も多く、上昇率も高いです。また、PyCaretのStar数も同様に急上昇していることが分かります。Model Searchはリリースと同時に急上昇した後、停滞しています。
GitHubのコミット数の推移を比較してみましょう。2017年〜2022年のコミット数の推移は以下のようになります。
これを見ると、H2Oの開発が継続的に活発であることが分かります。ただし、Javaベースでソースコードの行数が多いことが、コミット数の差として表れているのかもしれません。次に直近の開発状況を確認するため、原稿執筆時点(2022年1月13日)から過去1年間のコミット数に絞り込んでみましょう。
2021年の1年間ではH2Oに次いでNNIの開発が盛んに行われていることが分かります。一方、TPOTはコミットがなく、開発が停止しているようにも見えます。本連載の開始当初は、Googleが開発したAutoMLのOSSということで注目していたModel Searchも、2021年2月に初めてGitHub上で公開されてから原稿執筆時点(2022年1月)では9件のコミットしかありません。
GitHubのコントリビューター数を比較してみましょう。
Model Searchを除くと、コントリビューター数は50人を超えています。GitHubを見てみると、どのOSSも外部からのプルリクエストも積極的に取り込んでいるようでした。
各OSSのソースコードの行数を比較してみましょう。ソースコードの行数の多さは機能の豊富さをある程度示す指標として見ることができるでしょう。逆に、保守の難しさを示す指標といえます。
このグラフを見ると、圧倒的にH2Oのソースコードの行数が多いことが分かります。この理由は、H2Oが機能的に他を圧倒しているというよりは、Javaで実装されているためと考えられます。Javaで実装する場合、Pythonと比較してコードの行数が増える傾向があります。その上、機械学習でよく利用されるPythonライブラリを利用できず、一から開発しなければならないため、どうしてもソースコードの行数は増えてしまいます。
Google Searchの検索結果数で比較してみましょう。「Model Search」のようなキーワードで検索すると、Google Model Searchとは無関係な情報までヒットしてしまうので、公平性を担保するために、キーワードはGitHubのリポジトリの識別子をダブルクォーテーションで囲んだもの(“google/model_search”)にします。結果は以下のようになりました。
圧倒的にNNIの情報量が多いように見えますが、実際に検索してみると中国語の情報が多く、日本語の情報はそこまで多くないように見受けられます。日本語の情報に絞ってみると、結果は以下のようになりました。日本語ではPyCaretの情報が多いようです。
Google Trendsで比較してみましょう。OSSの名称が別の意味を持つもの(例えば、ドイツ語圏の男性名によく用いられるLudwig、水の化学式でありWebサーバのOSS名でもあるH2Oなど)は除外して、auto-sklearn、AutoGluon、PyCaret、AutoKeras、Neural Network Intelligenceの5つのみを検索キーワードに指定してみます。
この結果を見ると、近年はPyCaretが注目を集めているように見えます。
Copyright © ITmedia, Inc. All Rights Reserved.