Je travaille sur le package python AutoML et l'un de mes utilisateurs a signalé une utilisation très élevée de la mémoire lors de l'utilisation de xgboost .
J'ai fait une enquête pour montrer la consommation de mémoire par xgboost. Vous pouvez trouver le cahier ici . À partir du code, vous pouvez voir que le modèle alloue plus de 7 Go de mémoire RAM. Lorsque j'enregistre le modèle sur le disque dur (5 Ko !) puis que je le recharge, je peux économiser une énorme quantité de RAM.
Pour moi, on dirait que xgboost stocke la copie des données dans sa structure ? Ai-je raison?
Existe-t-il un moyen de réduire l'utilisation de la mémoire par xgboost ? Pensez-vous que l'enregistrement du modèle sur le disque dur, puis son chargement, est un moyen de gérer ce problème ?
@pplonski Nous essayons d'éliminer la copie pour l'algorithme d'histogramme. C'est un travail en cours. Pour le GPU, cela se fait principalement : https://github.com/dmlc/xgboost/pull/5420 https://github.com/dmlc/xgboost/pull/5465
Le processeur a encore du travail à faire.
@pplonski , nous avons également implémenté la réduction de la consommation de mémoire sur le processeur dans ce PR https://github.com/dmlc/xgboost/pull/5334 , mais uniquement pour la méthode 'hist'. Il n'est inclus dans master que pour le moment, mais j'espère qu'il fera partie de la future version.
mémoire, Ko | Compagnie aérienne | Higgs1m |
-- | -- | -- |
Avant | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
réduit : | 1,75 | 1.65 |
D'accord avec @trivialfis , il y a beaucoup de choses à faire dans le coin.
Bonjour, j'ai récemment rencontré un problème de mémoire élevée similaire avec xgboost. J'utilise 'gpu_hist' pour la formation.
Je remarque d'importants pics de mémoire système lorsque la méthode train()
est exécutée, ce qui entraîne le plantage de mon noyau jupyter.
Commentaire le plus utile
@pplonski , nous avons également implémenté la réduction de la consommation de mémoire sur le processeur dans ce PR https://github.com/dmlc/xgboost/pull/5334 , mais uniquement pour la méthode 'hist'. Il n'est inclus dans master que pour le moment, mais j'espère qu'il fera partie de la future version.
mémoire, Ko | Compagnie aérienne | Higgs1m |
-- | -- | -- |
Avant | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
réduit : | 1,75 | 1.65 |
D'accord avec @trivialfis , il y a beaucoup de choses à faire dans le coin.