【问题标题】:What is the best way to handle multiple h2o api calls for training algorithms in production?处理生产中训练算法的多个 h2o api 调用的最佳方法是什么?
【发布时间】:2018-07-17 05:37:05
【问题描述】:

我正在尝试构建一个网络应用程序,让用户可以上传数据集,选择他们选择的 h2o 算法并训练他们的数据集以构建模型。 现在,如果多个用户同时访问服务器,h2o 开始并行处理请求(开始训练模型)。这增加了所有用户的培训时间。 那么,在这种情况下我应该使用 h2o 的最佳方式是什么? 我应该将这些请求保留在队列中并一一执行吗? (这会增加新用户的等待时间)

I ran a GLM model for classification on a 50 MB structured and clean data set. It took almost twice the time when I executed two api calls simultaenously (model 1 and 2) than when I ran it individually (model 3)

【问题讨论】:

    标签: machine-learning deep-learning data-science h2o


    【解决方案1】:

    我会让他们排队。

    另外,我每次都会从头开始重新启动 H2O 集群。

    最后,我会从 python 或 R 驱动 H2O 集群。

    【讨论】:

    • 非常感谢汤姆的回答。我做了一个小 poc,发现如果总的底层资源(CPU 和 RAM)是固定的,按顺序执行请求会更好。
    【解决方案2】:

    我认为这主要取决于您希望您的用户体验如何——您是否可以让用户等待,或者您是否希望所有用户都放慢速度。如果它是一项免费服务,那么我认为用户会期待等待。我同意 Tom 的观点,尽管这是个人设计/用户体验的选择,但将作业排队可能会更好。

    如果您并行运行作业,我建议在不同的端口上启动每个 H2O 实例(每个用户一个)。如果在同一台机器上运行,这些会话仍然会共享(竞争)资源,但至少会更干净一些(它们不能覆盖彼此的模型等)。

    【讨论】:

    • 你在 H2o 无人驾驶 AI 中的表现如何。您是并行还是顺序运行模型。我刚刚使用您的 21 天评估版运行了几个数据集,考虑到它运行了很多模型,这速度很快。
    • 非常感谢 Erin 的回答。我做了一个小 poc,发现如果总的底层资源(CPU 和 RAM)是固定的,按顺序执行请求会更好。
    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2015-02-03
    相关资源
    最近更新 更多