返回首页

Roadmap
更新于 2026年11月8日 全文 1085 字未阅读

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

两种推理方式#

推理是把训练好的模型应用到未标注样本上、做出预测的过程。笼统地说,模型可以用两种方式做推理:

  • 静态推理(也叫离线推理或批量推理):模型先对一批常见的未标注样本做出预测,然后把这些预测结果缓存到某个地方。

  • 动态推理(也叫在线推理或实时推理):模型只在有需要的时候才做预测,比如客户端来请求一个预测的时候。

两个极端,说明为什么要分成这两种#

先来看一个极端情形。想象有一个非常复杂的模型,做一次预测要花一个小时。这种情况下,用静态推理大概再合适不过了:

图 4. 左侧一个蓝灰色方块写着「要花很长时间才能做出预测的模型」,箭头指向右侧一个白色方块「缓存的预测结果」;再往下是一条绿色长条「服务器」,最下面是五个写着「客户端」的米色椭圆,椭圆与服务器之间有上下双向箭头。
图 4. 在静态推理中,模型生成预测结果,然后把它们缓存到服务器上。

假如这个同样复杂的模型搞错了、误用了动态推理,会怎样?当很多客户端在同一时间前后请求预测时,他们中的大多数要等上几个小时甚至几天,才能拿到那个预测。

再看另一个极端。假设模型推理很快——也许只要 2 毫秒,用的算力也相对最少。这种情况下,客户端就能通过动态推理又快又高效地拿到预测,正如图 5 所示:

图 5. 顶部一条蓝色长条「能很快做出预测的模型」,中间一条绿色长条「服务器」,底部五个写着「客户端」的米色椭圆,每个客户端都有一条贯穿服务器、直抵模型的上下双向箭头;整张图里没有「缓存的预测结果」那一层。
图 5. 在动态推理中,模型按需做出预测。

静态推理#

静态推理有它的优点,也有它的缺点。

优点:

  • 不必太操心推理的成本。

  • 可以在把预测推出去之前,先做一轮事后验证。

缺点:

  • 只能提供缓存过的预测,所以系统可能没法为那些不常见的输入样本给出预测。

  • 更新延迟大概率是以小时或天来计的。

动态推理#

动态推理同样有优点,也有缺点。

优点:

  • 任何新来的项目都能当场算出预测,这对长尾(也就是不常见的那部分)预测特别有用。

缺点:

  • 既消耗算力,又对延迟敏感。这两件事凑在一起会限制模型的复杂度——也就是说,你可能不得不构建一个更简单、推理更快的模型,而不是继续用那个复杂模型。

  • 监控上的要求更高。

练习:检查你的理解#

第1题:下面关于静态推理的说法,以下四条中哪些选项是正确的?

  • A. 模型必须为所有可能的输入都生成预测。

  • B. 对于同一个输入,模型提供预测的速度比动态推理更快。

  • C. 系统可以在把预测提供出去之前,先对它做一轮验证。

  • D. 你能对世界上的变化做出快速反应。

第2题:下面关于动态推理的说法,以下说法中哪些选项是正确的?

  • A. 你可以在预测被使用之前,先做一轮事后验证。

  • B. 做动态推理时,你不必像做静态推理那样操心预测延迟(返回预测所花的时间)。

  • C. 你可以为所有可能的输入提供预测。


关键术语:

  • 示例(Example)
  • 推理(Inference)
  • 未标注样本(Unlabeled example)
阅读 --