推理优化

推理优化是一个复杂的主题,取决于您的模型和用例。本页提供了各种建议。

自定义 Python 代码优化

使用 Seldon python 封装器,需要查看各种优化领域。

带有 REST 和 gRPC 的 Seldon 协议有效负载类型

据您是要使用 REST 还是 gRPC 并要发送张量数据,请求的格式将在 python 封装器中具有反序列化/序列化成本。这在 python 序列化笔记提供了调查。

结论是:

  • gRPC 比 REST 快

  • tftensor 最适合大批量

  • 带有 gRPC 的 ndarray 不适合大批量

  • 更简单的 tensor/ndarray 更适合小批量

KMP_AFFINITY

如果您在具有兼容库的 Intel CPU 上运行推理,那么正确使用 KMP 和 OMP 的环境变量会很有用。大多数关于这些主题的建议通常讨论单个推理请求以及如何优化低延迟。 当您希望处理并行推理请求时,在使用 KMP_AFFINITY 时必须小心,因为如果使用 CPU Affinity,它们可能会以意想不到的方式阻塞。我们提供了一个示例基准测试笔记本

有许多资源可以为您的模型案例进行更深入的循环。我们发现的一些是:

gRPC 多处理

从 Seldon Core 1.10.0 版本开始,python 封装器 gRPC 服务器也将尊重 GUNICORN_NUM_WORKERS 并能够处理并行 gRPC 请求。

基准

我们提供各种基准测试笔记本的链接。