Estou trabalhando no pacote python AutoML e um dos meus usuários relatou um uso muito alto de memória ao usar xgboost .
Fiz uma investigação para mostrar o consumo de memória pelo xgboost. Você pode encontrar o caderno aqui . A partir do código, você pode ver que o modelo aloca mais de 7 GB de memória RAM. Quando salvo o modelo no disco rígido (5 kB!) e depois o carrego de volta, posso economizar uma enorme quantidade de RAM.
Para mim, parece que o xgboost está armazenando a cópia dos dados em sua estrutura? Estou certo?
Existe alguma maneira de diminuir o uso de memória pelo xgboost? Você acha que salvar o modelo no disco rígido e depois carregá-lo de volta é uma maneira de lidar com esse problema?
@pplonski Estamos tentando eliminar a cópia do algoritmo de histograma. É um trabalho em andamento. Para GPU, é feito principalmente: https://github.com/dmlc/xgboost/pull/5420 https://github.com/dmlc/xgboost/pull/5465
A CPU ainda tem mais trabalho a fazer.
@pplonski , implementamos a redução do consumo de memória na CPU também neste PR https://github.com/dmlc/xgboost/pull/5334 , mas apenas para o método 'hist'. Ele está incluído no master apenas por enquanto, mas espero que faça parte da versão futura.
memória, Kb | Companhia aérea | Higgs1m |
-- | -- | -- |
Antes | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
reduzido: | 1,75 | 1,65 |
Concordo com @trivialfis , há muitas coisas para fazer na área.
Oi, recentemente enfrentei um problema semelhante de alta memória com xgboost. Estou usando 'gpu_hist' para treinamento.
Percebo grandes picos de memória do sistema quando o método train()
é executado, o que leva ao travamento do meu kernel jupyter.
Comentários muito úteis
@pplonski , implementamos a redução do consumo de memória na CPU também neste PR https://github.com/dmlc/xgboost/pull/5334 , mas apenas para o método 'hist'. Ele está incluído no master apenas por enquanto, mas espero que faça parte da versão futura.
memória, Kb | Companhia aérea | Higgs1m |
-- | -- | -- |
Antes | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
reduzido: | 1,75 | 1,65 |
Concordo com @trivialfis , há muitas coisas para fazer na área.