我正在使用 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 吗?
尝试的两个建议:
resources:
cpu: 2
memory_gb: 8.0
disk_size_gb: 20