有时候预测任务跑很慢,日志里一直在刷
predict: 2015-11-09 01:02:03 Predict_job:xxx/0/xxx[0%]
类似格式的日志,可以这样排查:
先检查任务能否跑起来。先弄一两条数据跑一下预测,看有没有报错,任务能不能跑好。如果一条数据都跑不起来,可以判断是集群的负载过高。有报错针对报错处理。
如果一条数据能跑起来,那可能是预测工作量太大导致任务一直在跑但是没跑好。比较常见的是一个多树算法,比如随机森林。可以检查:
1. 在满足需求的前提尽量减少任务的输入的数据条数(毕竟测过数据就一两条的时候能跑的)。
2.
减少模型的复杂度:
2.1 比如减少训练的时候的树的深度。
2.2 也见到一些用户使用double类型当成离散的feature来对待。这样会把出现的每个值作为一个分支,最后模型会非常大。预测的时候也要走到每个分支,导致预测非常慢。曾经见过十几万个节点的一棵树,那预测起来就超慢了。
3.
减少模型里DappendColNames里所涉及的列的个数。如果设置了
DappendColNames,
这些列的数据是要从源表copy到预测结果表的,如果源表很大比如有上亿行,那么这个开销是非常大的。appendColNames不是feature,是说在结果表中附加哪些列,便于方便对比。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。