火花与h2o和苏打水之间的区别

Lal*_*wal 8 h2o sparkling-water

我对苏打水有一些疑问或怀疑,为什么需要它.

让我们假设我有一个二进制和pojo生成的h2o模型.

现在我想将模型部署到生产中,并且可以选择使用pojo和二进制(苏打水).

  1. 我应该使用哪一个?直接火花与pojo或苏打水与二进制.
  2. 当我们可以使用pojo和spark本身轻松部署模型时,什么是苏打水的确切用途?
  3. 只有当您需要在大量数据上训练模型时才需要苏打水吗?或者它也可以用于模型的PROD部署.

示例:https://github.com/h2oai/h2o-droplets/blob/master/h2o-pojo-on-spark-droplet/src/main/scala/examples/PojoExample.scala

使用spark来运行pojo模型.

示例:https://github.com/h2oai/h2o-droplets/blob/master/sparkling-water-droplet/src/main/scala/water/droplets/SparklingWaterDroplet.scala

火车/在苏打水中运行模型.

苏打水h2o比普通火花提供的优势是什么?

小智 7

  1. 我应该使用哪一个?直接火花与pojo或苏打水与二进制.

    • 没有"正确"的答案,这取决于您的使用案例.听起来你想要的是Spark中的POJO/MOJO,所以你可以在没有增加H2O群集依赖性的情况下进行评分.
  2. 当我们可以使用pojo和spark本身轻松部署模型时,什么是苏打水的确切用途?

    • Sparkling Water的确切用途是在Spark环境中提供H2O.这对于培训特别有用:您可以利用Spark的许多数据连接器,修改功能等.POJO/MOJO + Spark足以进行评分
  3. 只有当您需要在大量数据上训练模型时才需要苏打水吗?或者它也可以用于模型的PROD部署.

    • 当你想在一个与Spark生态系统很好地搭配的环境中利用H2O的算法时,需要苏打水.

如果将模型置于"生产"中意味着将"永远在线"评分暴露为REST端点或类似物:POJO/MOJO是您想要的方式(H2O集群不具备高可用性).您需要确保自己正确处理传入数据.

如果您正在进行批量评分,无论是夜间还是其他方式,那么使用带有Sparkling Water的二进制模型可能是有意义的,因为解析传入的数据变得微不足道(asH2OFrame(..))并且评分很容易作为predict()