Xgboost: Konsumsi memori tinggi di python xgboost

Dibuat pada 2 Apr 2020  ·  3Komentar  ·  Sumber: dmlc/xgboost

Saya sedang mengerjakan paket python AutoML dan salah satu pengguna saya melaporkan penggunaan memori yang sangat tinggi saat menggunakan xgboost .

Saya telah melakukan penyelidikan untuk menunjukkan konsumsi memori oleh xgboost. Anda dapat menemukan buku catatan di sini . Dari kode tersebut, Anda dapat melihat bahwa model mengalokasikan lebih dari 7GB memori RAM. Ketika saya menyimpan model ke hard disk (5 kB!) Dan kemudian memuatnya kembali, saya dapat menghemat banyak RAM.

Bagi saya, sepertinya xgboost menyimpan salinan data dalam strukturnya? Apakah saya benar?

Apakah ada cara untuk mengurangi penggunaan memori dengan xgboost? Apakah menurut Anda menyimpan model ke hard drive dan kemudian memuatnya kembali adalah cara untuk menangani masalah ini?

Komentar yang paling membantu

@pplonski , kami menerapkan pengurangan konsumsi memori pada CPU juga dalam PR ini https://github.com/dmlc/xgboost/pull/5334 , tetapi hanya untuk metode 'hist'. Ini termasuk dalam master hanya untuk saat ini, tapi saya harap ini akan menjadi bagian dari rilis mendatang.

memori, Kb | Maskapai penerbangan | Higgs1m |
-- | -- | -- |
Sebelum | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
dikurangi: | 1,75 | 1,65 |

Setuju dengan @trivialfis , ada banyak hal yang dapat dilakukan di daerah tersebut.

Semua 3 komentar

@pplonski Kami mencoba untuk menghilangkan salinan untuk algoritma histogram. Ini sedang dalam proses. Untuk GPU sebagian besar dilakukan: https://github.com/dmlc/xgboost/pull/5420 https://github.com/dmlc/xgboost/pull/5465

CPU masih memiliki beberapa pekerjaan yang harus dilakukan.

@pplonski , kami menerapkan pengurangan konsumsi memori pada CPU juga dalam PR ini https://github.com/dmlc/xgboost/pull/5334 , tetapi hanya untuk metode 'hist'. Ini termasuk dalam master hanya untuk saat ini, tapi saya harap ini akan menjadi bagian dari rilis mendatang.

memori, Kb | Maskapai penerbangan | Higgs1m |
-- | -- | -- |
Sebelum | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
dikurangi: | 1,75 | 1,65 |

Setuju dengan @trivialfis , ada banyak hal yang dapat dilakukan di daerah tersebut.

Hai, Saya baru-baru ini menghadapi masalah memori tinggi yang serupa dengan xgboost. Saya menggunakan 'gpu_hist' untuk pelatihan.

Saya melihat memori sistem yang besar melonjak ketika metode train() dijalankan, yang menyebabkan kernel jupyter saya mogok.

  1. Apakah benar untuk mengatakan bahwa Xgboost membuat salinan data saya di RAM sistem (bahkan ketika saya menggunakan 'gpu_hist')?
  2. Saya berasumsi bahwa xgboost memuat seluruh data pelatihan ke GPU. Apakah itu juga salah?
Apakah halaman ini membantu?
0 / 5 - 0 peringkat