The GPU versions are performing surprisingly bad. To even match CPU performance, you need a training set in the tens of millions, and even far beyond that, a doubling of speed seems to be the best you can hope for. Compare to, for example, tensorflow, where it isn't uncommon to see a 10x speedup even for moderately-sized training sets. (I say "surprising" in the sense that I'm surprised; I don't know the algorithms u…
Lessons Learned from Benchmarking Fast Machine Learning Algorithms
11–20 of 21 posts
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#12Earlier quoted context omitted.
In decision trees more than half of the optimization time is spent doing sorting (sorting the set at each node to find the optimal splitting for the key at that node), in neural nets it's almost all matrix multiplies. That's where the speedup difference comes in the CPU v GPU comparison.
There are fast parallel sorting algorithms that should be able to take advantage of GPUs. Maybe they didn't implement them?
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#13Seems to be a project under Microsoft's Distributed Machine Learning Toolkit ( http://www.dmtk.io/ ).
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#14It would be interesting if they compared training speed with CatBoost [0]. I remember seeing a paper where they managed to avoid getting stuck in local optimum in terms of number of learners, and the more trees you add better the result. Logloss results seem to confirm there's a superior tree algorithm going on there in CatBoost. [0]: https://catboost.yandex/
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#15The GPU versions are performing surprisingly bad. To even match CPU performance, you need a training set in the tens of millions, and even far beyond that, a doubling of speed seems to be the best you can hope for. Compare to, for example, tensorflow, where it isn't uncommon to see a 10x speedup even for moderately-sized training sets. (I say "surprising" in the sense that I'm surprised; I don't know the algorithms u…
In decision trees more than half of the optimization time is spent doing sorting (sorting the set at each node to find the optimal splitting for the key at that node), in neural nets it's almost all matrix multiplies. That's where the speedup difference comes in the CPU v GPU comparison.
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#16It's interesting that LightGBM was initially promoted as being more accurate than XGB, but that claim always seemed marginal at best and was hard to reproduce. Other investigations show the same thing about training speed though, eg https://medium.com/implodinggradients/benchmarking-lightgbm-...
Also, there are many kaggle winning solutions using lightgbm recently. e.g. The 2nd on "Quora Question Pairs" used the ensemble of 6 lightGBM and 1 NN (https://www.kaggle.com/c/quora-question-pairs/discussion/343...). And almost top-10 in this competition used LightGBM as sub-models for the ensemble.
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#17The GPU versions are performing surprisingly bad. To even match CPU performance, you need a training set in the tens of millions, and even far beyond that, a doubling of speed seems to be the best you can hope for. Compare to, for example, tensorflow, where it isn't uncommon to see a 10x speedup even for moderately-sized training sets. (I say "surprising" in the sense that I'm surprised; I don't know the algorithms u…
In decision trees more than half of the optimization time is spent doing sorting (sorting the set at each node to find the optimal splitting for the key at that node), in neural nets it's almost all matrix multiplies. That's where the speedup difference comes in the CPU v GPU comparison.
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#18It would be interesting if they compared training speed with CatBoost [0]. I remember seeing a paper where they managed to avoid getting stuck in local optimum in terms of number of learners, and the more trees you add better the result. Logloss results seem to confirm there's a superior tree algorithm going on there in CatBoost. [0]: https://catboost.yandex/
Fighting biases with dynamic boosting - Dorogush, Gulin, Gusev, Kazeev, Prokhorenkova, Vorobev
https://arxiv.org/pdf/1706.09516.pdf
> While gradient boosting algorithms are the workhorse of modern industrial machine learning and data science, all current implementations are susceptible to a non-trivial but damaging form of label leakage. It results in a systematic bias in pointwise gradient estimates that lead to reduced accuracy
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#19It would be interesting if they compared training speed with CatBoost [0]. I remember seeing a paper where they managed to avoid getting stuck in local optimum in terms of number of learners, and the more trees you add better the result. Logloss results seem to confirm there's a superior tree algorithm going on there in CatBoost. [0]: https://catboost.yandex/
from the catboost page there's also a link to this: Fighting biases with dynamic boosting - Dorogush, Gulin, Gusev, Kazeev, Prokhorenkova, Vorobev https://arxiv.org/pdf/1706.09516.pdf > While gradient boosting algorithms are the workhorse of modern industrial machine learning and data science, all current implementations are susceptible to a non-trivial but damaging form of label leakage. It results in a systematic b…
I see a github link in there https://github.com/arogozhnikov/infiniteboost, but it does not seem to be in CatBoost (as someone here pointed out better logloss has to do with CatBoost handling of categorical features).
Re: Lessons Learned from Benchmarking Fast Machine Learning Algorithms
#20It would be interesting if they compared training speed with CatBoost [0]. I remember seeing a paper where they managed to avoid getting stuck in local optimum in terms of number of learners, and the more trees you add better the result. Logloss results seem to confirm there's a superior tree algorithm going on there in CatBoost. [0]: https://catboost.yandex/