V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SlipStupig
V2EX  ›  程序员

sklearn 如何分布式计算呢?

  •  
  •   SlipStupig · 2019-03-12 07:20:55 +08:00 · 3203 次点击
    这是一个创建于 2087 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在做一个nlp项目,算法都搞好了,训练数据大概 20G 左右的样子,本想用GridSearchCV直接调参(一个有 7 个参数,几万个候选值),结果发现半天都没动静( 48Core e5v3, 128G 内存),但是参数改小后可以正常跑,于是我认为是性能不够,请问一下大家,sklearn有办法分布式调参不?

    第 1 条附言  ·  2019-03-14 07:51:37 +08:00

    找到解决方法了,可以使用celery可以完成这项目工作,但是不能用GridSearchCv,而是用RandomsearchCV


    解决思路如下: celery里面需要有一个schedulerworker,下面讲一下作用和思路。

    如何确定scheduler

    用户提交任务后,第一个收到任务的节点将会成为scheduler

    scheduler作用是什么

    将用要调的参数范围确定,根据迭代次数,预先随机生成参数,将参数生成多个任务,发到其它节点上,然后等待所有的worker,将调参结果排序,取score最优结果的参数,进行交叉验证,输出给用户。

    worker作用

    作为计算资源池的一部分,将计算结果通过回调的方式进行返回

    4 条回复    2019-03-12 14:19:31 +08:00
    Allianzcortex
        1
    Allianzcortex  
       2019-03-12 07:39:45 +08:00   ❤️ 1
    我记得之前有人分享过 ML 应该是 Sklearn 出原型,Spark 上生产; DL 是 PyTorch 出原型,TensorFlow 上生产? DataBricks 倒是有一篇文章讲过 sklearn 的分布式计算,https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-apache-spark.html (:D
    Moming
        2
    Moming  
       2019-03-12 10:23:03 +08:00
    想调参的话,也没必要 20G 全用上吧。

    @Allianzcortex 顺便问一下,这个怎么讲?是 TF inference 性能好还是因为方便多机多卡?

    > DL 是 PyTorch 出原型,TensorFlow 上生产
    ddzzhen
        3
    ddzzhen  
       2019-03-12 13:30:55 +08:00 via Android
    之前看过文档没找到
    SorryChen
        4
    SorryChen  
       2019-03-12 14:19:31 +08:00
    @Moming #2 发展的早,相对成熟,有很多 终端设备,边缘设备甚至 js 都能用 TF,不过 PyTorch 1.0 已经追上很多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:54 · PVG 17:54 · LAX 01:54 · JFK 04:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.