我正在构建一个聊天机器人,用户发送的每条消息都需要转换为矢量(用于其他与ML相关的工作)。我正在使用预先训练过的Word2Vec模型来做到这一点。 Word2Vec模型是使用Gensim库创建的,并作为600MB文件保存到磁盘,并在Django / Python Web应用程序中使用。
每次收到新消息作为API请求时,函数都会加载word2Vec模型并使用该对象生成消息的向量。这需要实时发生。我担心每次收到新消息时,应用程序都会加载一个Word2Vec模型的实例,如果有多个请求同时出现,这会导致内存问题(因为会有多个Word2Vec模型实例)当时存在于RAM中)。如何有效处理内存,使其不会占用太多内存?
答案 0 :(得分:0)
"矢量"需要生成并立即返回给用户?如果没有,您可以考虑将请求传递给celery worker。
然后,您可以选择希望分配给处理队列的工作人员数量,以将内存使用限制在可管理的级别。