GAE 加载句子转换器非常慢

问题描述 投票:0回答:1

我正在使用 Google App Engine 来托管一个使用 Python 和 Flask 的网站。

我需要使用句子转换器添加文本相似性功能。在requirements.txt中,我添加了对torch的cpu版本的依赖:

torch @ https://download.pytorch.org/whl/cpu/torch-2.2.1%2Bcpu-cp311-cp311-linux_x86_64.whl 
sentence-transformers==2.4.0

当我将这些语句添加到 main.py 文件中时:

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')

GAE 实例创建时间从 < 1 sec to > 20 秒缩短。

如果我将模型保存到项目中的目录并使用,性能会提高:

model = SentenceTransformer('./idp_web_server/model')

但仍然超过15秒。 (删除模型创建语句可将实例创建时间缩短至 4 秒)。从 F4 实例(2.4 GHZ,具有自动扩展)到 B8 实例(4.8 MHZ,基本扩展)实例不会提高性能,因此,它似乎受到 IO 限制。在我的机器(2.4 GHz)上本地运行该应用程序,模型创建只需要 1.7 秒,即速度快了 5 到 10 倍。

这个可以改进吗?我应该迁移到 Google Cloud 而不是 GAE 吗?

python google-app-engine pytorch sentence-transformers
1个回答
0
投票

尝试的两个建议:

  1. 在实例创建过程中不要加载模型。而是在第一个需要它的请求时加载它。 此处有更详细的描述
  2. 您可能需要更多内存。对于我的 ML 模型,我使用具有此实例规范的 GAEFlexible:
resources:
  cpu: 2
  memory_gb: 8.0
  disk_size_gb: 20
© www.soinside.com 2019 - 2024. All rights reserved.