LightGBM v4

Summary of improvements:
  • totally-rewritten CUDA implementation, and more operations in the CUDA implementation performed on the GPU
  • quantized training can be used for greatly improved training speeds on CPU (paper link)
  • support for C++17
  • Python package:
    • now uses  (link) as its build backend
    •  Linux wheels now support GPU (OpenCL-based, not CUDA) build automatically... just  then pass  in params (thanks @jgiannuzzi!)
    • much more use of inline type hints, exported with  so any code using LightGBM can benefit
    • support for Python 3.10, 3.11
    • support for  nullable types
    • configurable threshold () for how much eval metrics must improve to be considered "improved" for early stopping
    • custom objective functions in Dask
    •  is no longer a required dependency
    • all callbacks are now pickleable (for better interoperability with e.g. , Dask) (thanks @Yard1!)
  • R package:
    • efficient support for more data types in prediction, like  and  (thanks @david-cortes!)
    • much more idomatic interface... e.g. support for  and  for  and  methods for  (thanks @david-cortes!)
    • various bug fixes related to multiple competing ways to provide parameters
    • support for R 4.2, 4.3
    •  
       
       
改善点のまとめ:
CUDA実装を全面的に書き換え、GPU上で実行されるCUDA実装の演算を増やした。 量子化されたトレーニングを使用することで、CPU上でのトレーニング速度が大幅に向上(論文リンク) C++17のサポート Pythonパッケージ: ビルドバックエンドとしてscikit-build-core (リンク)を使用するようになりました。 manylinux_2_28 LinuxホイールがGPU(OpenCLベース、CUDAではない)ビルドを自動的にサポートするようになりました...pip install lightgbmし、paramで{"device": params に {"device": "gpu"} を渡すだけだ(@jgiannuzzi に感謝!)。 py.typedでエクスポートされるインライン型ヒントをより多く使えるようになったので、LightGBMを使う全てのコードが恩恵を受けられる。 Python 3.10, 3.11 をサポート。 pandas の nullable 型のサポート 設定可能な閾値(lgb.early_stopping(..., min_delta=n))が追加されました。 Daskのカスタム目的関数 scikit-learnはもはや必須の依存関係ではない すべてのコールバックが pickleable になった (ray や Dask などとの相互運用性が向上した) (@Yard1 に感謝!) Rパッケージ: dgCMatrix や dsparseMatrix のような予測におけるより多くのデータ型を効率的にサポートするようになった (@david-cortes ありがとう!)。 例えば、BoosterのsaveRDS()とreadRDS()、Datasetのprint()とsummary()メソッドをサポートした。 複数の競合するパラメータ提供方法に関する様々なバグ修正。 R 4.2、4.3をサポート。