部署在 kubernetes 上时,pytorch 模型评估速度很慢

mov*_*wig 4 python kubernetes pytorch bert-language-model

我想通过部署在 Kubernetes 上的端点提供文本分类模型(finBERT pytorch 模型)的结果。

整个管道正在运行,但部署后处理速度非常慢(一句话需要 30 秒)。如果我在本地对同一端点进行计时,我将在 1 或 2 秒内得到结果。在本地运行docker镜像,端点也需要2秒才能返回结果。

当我在请求运行时检查 kubernetes 实例的 CPU 使用率时,它没有超过 35%,所以我不确定这是否与计算能力不足有关?

在向 pytorch 模型进行前向传递时,有人目睹过此类性能问题吗?关于我应该调查什么的任何线索?

非常感谢任何帮助,谢谢!

我目前正在使用

限制:CPU:“2”请求:CPU:“1”

Python:3.7 Pytorch:1.8.1

Log*_*g23 5

我遇到过同样的问题。在本地,我的 pytorch 模型将在 25 毫秒内返回预测,而在 Kubernetes 上则需要 5 秒。问题与火炬可以使用的线程数量有关。我不是 100% 确定为什么会这样,但减少线程数量可以显着提高性能。

在您的 kubernetes pod 上设置以下环境变量。 OMP_NUM_THREADS=1

完成此操作后,它在 kubernetes 上的执行就像在本地运行一样,每次调用约 30 毫秒。

这些是我的 Pod 限制:

  • 中央处理器限制1
  • 内存限制:1500m

我从这篇博客文章中发现了这一点:https ://www.chunyangwen.com/blog/python/pytorch-slow-inference.html