在线预测与批量预测

AI Platform Prediction 提供两种通过经过训练的模型获取预测结果的方法,即在线预测(有时称为 HTTP 预测)和批量预测。无论使用哪种预测方法,您都可以将输入数据传递给在云端托管的机器学习模型,并获取每个数据实例的推断。下表列出了两种方法的不同之处:

在线预测 批量预测
经过专门优化,可最大限度缩短执行预测的延迟时间。 经过专门优化,可在作业中处理大量实例,以及运行更复杂的模型。
对于每个请求,可处理一个或多个实例。 对于每个请求,可处理一个或多个实例。
在响应消息中返回预测结果。 预测结果写入您指定的 Cloud Storage 位置中的输出文件。
输入数据作为 JSON 字符串直接传递。 输入数据作为 Cloud Storage 位置中文件的一个或多个 URI 间接传递。
尽快返回结果。 异步请求。

拥有以下 IAM 角色的账号可以请求在线预测:

拥有以下 IAM 角色的账号可以请求批量预测:

在您部署模型时选择的运行时版本及区域中运行。 可使用运行时版本 2.1 或更早版本在任意可用区域中运行。但是对于已部署的模型版本,您应该使用默认值运行。
运行已部署到 AI Platform Prediction 的模型。 运行已部署到 AI Platform Prediction 的模型或存储在可访问的 Google Cloud Storage 位置中的模型。
可配置为对预测节点使用各种类型的虚拟机 如果运行已部署到 AI Platform Prediction 的模型,则必须使用 mls1-c1-m2 机器类型
可以通过 TensorFlow SavedModel自定义预测例程(Beta 版)以及 scikit-learn 和 XGBoost 模型执行预测。 可以通过 TensorFlow SavedModel 执行预测。
每节点时 $0.045147 到 $0.151962(美洲)。价格取决于选择的机器类型。 每节点时 $0.0791205(美洲)

应用的需求决定了您应该使用的预测类型。

  • 如果您发出请求以响应应用输入,或者在其他需要及时推断的情况下,您通常应该使用在线预测。

  • 如果您不需要立即获知结果,则批量预测非常适合处理累积数据。例如,进行预测以处理自上一个作业以来收集的所有数据的定期作业。

做决定时,您还应该考虑预测费用方面可能存在的差异。

批量预测延迟时间

如果您使用简单的模型和一小组输入实例,您会发现,使用在线预测与批量预测完成相同预测请求所需的时间之间存在相当大的差异。在线请求预测结果时几乎可以立即获得返回结果,而批量作业可能需要数分钟时间才能完成预测。这是因为两种预测方法采用的基础架构有所不同。对于批量预测作业,AI Platform Prediction 会在您发出请求后为其分配和初始化资源。而在线预测通常是在您提出请求时便已做好处理准备。

后续步骤

如需详细了解预测,请参阅预测概览

或者,跳转至进行在线预测进行批量预测