「机器学习速成」静态推理和动态推理(预测)

大家好,今天我们学习【机器学习速成】之 静态推理和动态推理(预测)。

我们 马上学三点 ,

了解静态推理和动态推理

静态推理优缺点

动态推理优缺点


机器学习

静态推理与动态推理

我们在设计机器学习系统时, 需要考虑的另一个重要设计因素是, 我们是以离线还是在线的方式进行推理, 这里的推理当然是指做出预测。

我们是要以离线方式做一次推理, 并将此类预测记录到某个表格 或某个静态位置以便日后读取。

还是要借助存储在某个服务器中的模型, 根据需要不断进行推理, 并在出现新的请求时,对新数据进行预测? 再次说明,这两种方式各有利弊。

机器学习

离线推理

使用 MapReduce 或类似方法批量进行所有可能的预测。

记录到表格中,然后提供给缓存/查询表。

优点:不需要过多担心推理成本。

优点:可以使用批量方法。

优点:可以在推送之前对数据预测执行后期验证。

缺点:只能对我们知晓的数据进行预测,不适用于存在长尾的情况。

缺点:更新可能延迟数小时或数天。

如果我们离线计算分数, 就会有很好的机会进行预测后验证。 我们记下所有分数,并且可以对其进行健全性检查, 以便在据此预测现实世界的情况之前, 确保这些分数是有意义的。 此外,我们也不必太过担心计算成本。 如果我们的模型代价很高, 如果计算预测需要花费很高的成本, 我们只需投入更多机器即可。 或许可以使用批量方法或某种大型的映射归纳架构, 您无需担心太多。

离线计算分数的缺点是, 我们需要在执行预测时准备好所有样本。 而某些领域可能存在长尾或极端分布, 会由于我们而发生变化, 在这种情况下 我们可能没法准备好所有样本。 但是,如果我们预先知道所有样本将会有哪些, 或者,如果我们只关心频率最高的查询等之类的内容, 那么就可以将所有这些样本纳入离线分数对照表中。

在线推理

使用服务器根据需要进行预测。

优点:可在新项目加入时对其进行预测,非常适合存在长尾的情况。

缺点:计算量非常大,对延迟较为敏感,可能会限制模型的复杂度。

缺点:监控需求更多。

对于在线计算分数, 请注意,我们会将模型放入一个服务器, 然后根据需要查询该服务器。 现在看来这种方式不错, 因为它意味着,对于长尾情况, 出现的任何新样本都可能是极端的, 但无论如何,我们仍然可以根据需要获得预测结果。 不过,我们需要考虑延迟问题。 很多情形都对延迟较为敏感, 因此,我们做出预测所花的时间不能超过5毫秒、10毫秒或15毫秒。 也就是说,如果计算模型需要很高的费用, 我们可能需要使用大量生产级资源进行预测工作, 费用可能会很高,我们需要考虑到这部分预算。 另外一件需要考虑的事情是: 我们可能需要在监控方面投入更多精力。 不仅需要监控数据提供工作本身, 还需要监控预测的输出分布, 以确保不会发生故障。 同样,在线提供服务也是既有优势也有劣势。

机器学习

总结:

离线推理,进行所有可能的预测,提供给一个查询表。

在线推理,指的是使用服务器根据需要进行预测。

https://www.toutiao.com/i6707962805858861575/

你可能感兴趣的:(「机器学习速成」静态推理和动态推理(预测))