DEV Community 👩‍💻👨‍💻

Keita Onabuta
Keita Onabuta

Posted on

Azure Machine Learning is the Best Place for LightGBM

LightGBM は Microsoft が主導して開発を進めている勾配ブースティングのライブラリです。数多くの実績があり、Microsoft 社内でも利用されています。

GitHub logo microsoft / LightGBM

A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine

Python-package GitHub Actions Build Status R-package GitHub Actions Build Status CUDA Version GitHub Actions Build Status Static Analysis GitHub Actions Build Status Azure Pipelines Build Status Appveyor Build Status Documentation Status Link checks License Python Versions PyPI Version CRAN Version

LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with the following advantages:

  • Faster training speed and higher efficiency.
  • Lower memory usage.
  • Better accuracy.
  • Support of parallel, distributed, and GPU learning.
  • Capable of handling large-scale data.

For further details, please refer to Features.

Benefiting from these advantages, LightGBM is being widely-used in many winning solutions of machine learning competitions.

Comparison experiments on public datasets show that LightGBM can outperform existing boosting frameworks on both efficiency and accuracy, with significantly lower memory consumption. What's more, distributed learning experiments show that LightGBM can achieve a linear speed-up by using multiple machines for training in specific settings.

Get Started and Documentation

Our primary documentation is at https://lightgbm.readthedocs.io/ and is generated from this repository. If you are new to LightGBM, follow the installation instructions on that site.

Next…

本投稿では、Azure Machine Learning で LightGBM を利用するメリットや実装方法について説明します。

Azure Machine Learning とは?

Azure が提供する機械学習プラットフォームです。 Python & R のプログラム言語、 機械学習に特化した UI も提供しています。統計解析、従来の機械学習、深層学習、強化学習 (Preview) まであらゆる機械学習要件に対応しています。

azureml

Web ページ : Azure Machine Learning

LightGBM とは?

アルゴリズムの詳細については数多くのブログで説明されているので、ここでは説明を割愛させていただきます。特徴的な点は下記になると思います。

  • 決定木がベースモデル
  • アンサンブル学習としてブースティングを採用
  • Leaf-wise tree growth
  • ヒストグラム法
  • 数多くのハイパーパラメータ

分析コンペなどで優秀な成績を残しています。
参考 : Winning Solutions

モデル学習

Automated Machine Learning

Microsoft の AutoML といえば、 Azure Machine Learning の自動機械学習 Automated Machine Learning です。 Microsoft Research が開発した 協調フィルタリングとベイズ最適化の探索アルゴリズム により効率的に高精度モデルを探索します。

automated-machine-learning

LightGBM は回帰、分類、時系列予測の全てのシナリオでアルゴリズム候補となっており、私の個人的な印象にはなりますが、上位の精度を出すことが多いです。

LightGBM Estimator

LightGBM は並列学習に対応しており、大量データのハンドリングも出来ます。Microsoft 社内では、Bing のログ解析に LightGBM が利用されています。

また、Azure Machine Learning には LightGBM 専用の Estimator が提供されており、マネージドなインフラを利用できるので、すぐに大規模学習を実行することができます。

Bing チームも Azure Machine Learning の LightGBM Estimator を用いており、最大 13TB 以上のデータを 100台以上の計算環境で並列学習しています。

training_data_list=["binary0.train", "binary1.train"]
validation_data_list = ["binary0.test", "binary1.test"]
lgbm = LightGBM(source_directory=scripts_folder, 
                compute_target=cpu_cluster, 
                distributed_training=Mpi(),
                node_count=100,  # 100台並列の場合
                lightgbm_config='train.conf',
                data=training_data_list,
                valid=validation_data_list
               )

experiment = Experiment(ws, name='lightgbm-estimator-test')
run = experiment.submit(lgbm, tags={"test public docker image": None})
Enter fullscreen mode Exit fullscreen mode

ドキュメント : Bing accelerates model training with LightGBM and Azure Machine Learning

ハイパーパラメータチューニング

Hyperdrive

Hyperdrive は Azure Machine Learning が提供するハイパーパラメータチューニング機能になります。LightGBM を利用する際はパラメータチューニングすることが多いので、Hyperdrive の利用は欠かせません。

hyperdrive-output1
hyperdrive-output2

Hyperdrive のアウトプット例になります。パラメータ探索は、 Grid Search、Random Search、Bayesian Optimization をサポートしています。

ドキュメント : Azure Machine Learning でモデルのハイパーパラメーターを調整する

モデル推論

LightGBM は ONNX に変換することができます。onnxmltools が変換ツールです。Azure Machine Learning で ONNX の推論環境を構築することもできます。

※ ONNX を利用してモデルの相互運用性が向上します。ONNX はオープンソースのモデルフォーマットで、あらゆるプログラム環境で動作します。

ドキュメント : ONNX と Azure Machine Learning:ML モデルの作成と能率化

モデル解釈

LightGBM のモデルから出力される変数の重要度はモデルに影響している説明変数を理解するために用いられます。モデル解釈手法の Global Surrogate は、LightGBM のような解釈可能なサロゲートモデルを利用して、複雑な機械学習モデルのグローバル(広域的)解釈を行います。

Azure Machine Learning では Microsoft が OSS で公開しているモデル解釈フレームワーク Interpret Community を利用することができます。

GitHub logo interpretml / interpret-community

Interpret Community extends Interpret repository with additional interpretability techniques and utility functions to handle real-world datasets and workflows.

Build Status MIT license versions PyPI

Interpret Community SDK

Interpret-Community is an experimental repository extending Interpret, with additional interpretability techniques and utility functions to handle real-world datasets and workflows for explaining models trained on tabular data. This repository contains the Interpret-Community SDK and Jupyter notebooks with examples to showcase its use.

Contents

Overview of Interpret-Community

Interpret-Community extends the Interpret repository and incorporates further community developed and experimental interpretability techniques and functionalities that are designed to enable interpretability for real world scenarios. Interpret-Community enables adding new experimental techniques (or functionalities) and performing comparative analysis to evaluate them.

Interpret-Community

  1. Actively incorporates innovative experimental interpretability techniques and allows for further expansion by researchers and data scientists
  2. Applies optimizations to make it possible to run interpretability techniques on real-world datasets at scale
  3. Provides improvements such as the capability to "reverse the…

Global Surrogateのようなグローバル解釈だけでなく、SHAPなどのローカル(局所的)解釈もサポートしています。簡単なコーディングと使いやすいダッシュボードが特徴です。

from interpret.ext.glassbox import LGBMExplainableModel
explainer = MimicExplainer(model, 
                           x_train, 
                           LGBMExplainableModel, 
                           augment_data=True, 
                           max_num_of_augmentations=10, 
                           features=breast_cancer_data.feature_names, 
                           classes=classes)
Enter fullscreen mode Exit fullscreen mode

interpret-community
 

他システムとの連携

  • Optuna LightGBM Tuner
    Optuna にて LightGBM 専用の Tuner を提供しています。Azure Machine Learning 上で Optuna のパラメータチューニングを行うことも可能です。

  • Neural Network Intelligence
    Neural Network Intelligenceは、Microsoft Research が開発している AutoML Toookit です。

nni-log
nni-flow

LightGBM における実装例は、下記ドキュメントをご参照ください。

ドキュメント : GBDT in nni

まとめ

Azure Machine Learning は LightGBM に関する機能を数多くご提供しています。ぜひ一度使ってみてください。

参考情報

Top comments (0)

Take Your Github Repository To The Next Level

Take Your Github Repository To The Next Level 🚀️: A step-by-step guide on creating the perfect Github repository.