web-dev-qa-db-ja.com

XGBoostはどのように並列計算を行いますか?

XGBoostは、前のモデルの残差をモデル化する加算トレーニングの方法を使用します。

これは順次ですが、それでは並列計算にどのようにしていくのでしょうか?

28
Cedric Oeldorf

Xgboostは、前述のように複数のツリーを並行して実行しません。勾配を更新するには、各ツリーの後に予測が必要です。

むしろ、openMPを使用してブランチを個別に作成して、単一のツリー内で並列化を行います。

これを観察するには、巨大なデータセットを構築し、n_rounds = 1で実行します。すべてのコアが1つのツリーで発火しているのがわかります。これが、それが非常に高速でよく設計されている理由です。

31
T. Scharf