开发者社区> 问答> 正文

算法平台的预测任务特别慢怎么查

有时候预测任务跑很慢,日志里一直在刷
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,是说在结果表中附加哪些列,便于方便对比。


展开
收起
传学 2015-11-09 14:09:42 6685 0
2 条回答
写回答
取消 提交回答
  • 很好的经验总结。
    2015-11-30 19:55:45
    赞同 展开评论 打赏
  • 赞!大家奔走相告,互相分享哦~~
    2015-11-09 14:16:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载