生产型机器学习系统:静态推理与动态推理

推理是 通过将经过训练的模型应用到 无标签样本。 一般来说,模型可以通过以下两种方式之一推断出预测结果:

  • 静态推理(也称为离线推理批量推理)是指该模型对一组预测的 常见无标签样本 然后将这些预测结果缓存在某个位置。
  • 动态推理(也称为在线推理或实时推理) 即模型仅根据需要进行预测, 例如,当客户端请求预测时。

我们来看一个极端示例,假设有一个非常复杂的模型, 需要一个小时才能推断出一个预测值。 这可能是进行静态推理的绝佳场景:

图 4. 在静态推理中,模型生成预测,
            这些数据随后会缓存在服务器上
图 4. 在静态推理中,模型生成预测, 这些数据随后会缓存在服务器上

 

假设同一个复杂模型错误地使用了动态推理, 静态推理。如果有很多客户端几乎同时请求预测, 因此大部分用户可能要在数小时或数天内收到相关预测

现在,假设一个模型可以快速推理,也许可以在 2 毫秒内使用 计算资源的相对最小值。在这种情况下,客户端可以 通过动态推理快速、高效地接收预测, 如图 5 所示。

图 5. 在动态推理中,模型会根据
            需求
图 5. 在动态推理中,模型会根据需要推断预测结果。

 

静态推理

静态推理有一些优缺点。

优势

  • 无需过多担心推理的成本。
  • 可以在推送之前对预测结果进行后期验证。

缺点

  • 只能提供缓存的预测,因此系统可能无法 能够为不常见的输入样本提供预测。
  • 更新延迟时间可能以数小时或数天为单位。

动态推理

动态推理有一些优缺点。

优势

  • 可以在出现任何新项目时对其做出预测, 非常适合长尾(不太常见)预测。

缺点

  • 计算密集型且对延迟敏感。这种组合可能会限制 复杂性;也就是说,您可能需要构建一个更简单的模型, 可以比复杂模型更快地推断出预测。
  • 监控需求更多。

练习:检查您的掌握程度

以下四条陈述中,哪项是正确的 静态推理的正确示例是什么?
模型必须针对所有可能的输入创建预测。
是的,模型必须针对所有可能的输入和 并将它们存储在缓存或对照表中 如果模型预测的事物集是有限的, 静态推理是一个不错的选择。 不过,对于自由格式的输入,例如用户查询的 异常或稀有物品的尾巴,静态推理无法提供 专题报道。
系统可以在投放前验证推断的预测结果 。
是的,这是静态推理的一个有用方面。
对于给定的输入,模型可以更快地提供预测 而不是动态推理。
是的,静态推理几乎总是能更快地提供预测 比动态推理更复杂。
您可以快速应对全球变化。
不可以,这是静态推理的缺点。
以下哪个说法是 动态推理是正确的吗?
您可以为所有可能的条目提供预测结果。
可以,这是动态推理的一个优点。任何 都会打分。动态推理处理长尾 分布(包含许多稀有物品),例如 可能的句子。
你可以先对预测结果进行后期验证 。
一般来说,不可能对所有 预先进行预测, 可以按需进行不过,您可以监控 汇总预测质量,以提供一定程度的 但只有在进行过质量检查后才会触发火灾警报 火势已经蔓延了
执行动态推理时,您无需担心 预测延迟时间(返回预测的延迟时间) 和执行静态推理时一样。
在动态推理中,预测延迟通常是值得关注的问题。 很抱歉,您不一定能解决预测延迟时间问题 从而达到更精细的效果。