gpt4 book ai didi

Django:服务器端的机器学习模型?

转载 作者:IT王子 更新时间:2023-10-29 06:03:08 26 4
gpt4 key购买 nike

我有一个 Word2Vec 模型(机器学习模型之一),可以通过文件名获得这个预训练模型:

model = Word2Vec.load(fname)

所以,我可以通过使用这个模型得到一些预测:

预测=模型.预测(X)

我正在尝试做的是从用户那里获取请求(包括查询词)并将此数据查询到我的预训练模型并获得预测,以便服务器可以使用此预测数据发送响应。这个过程应该在用户每次发送查询时发生,所以这个预训练模型应该总是在内存中。

要实现这一点,我想我必须使用 RedisCelery 之类的东西,但据我所知,Celery 是异步工作的使用 Django web 应用程序,所以它不适合我想做的事情...

如何在我的 Django 应用程序中实现此功能?

谢谢。

最佳答案

您实际上不需要为此使用 Redis 或 celery。

在发布使用 Django 的解决方案之前,我应该提一下,如果您的 ML 项目只需要一个 Web 界面,也就是说,您不需要 Django 花哨的 ORM、admin 等,那么您应该使用 Flask。它非常适合您的用例。


使用 Flask 的解决方案:

使用 Flask 将训练好的模型存储在内存中非常容易:

# ...
# your Flask application code
# ...
# ...

if __name__ == '__main__':
model = Word2Vec.load(fname)
app.run()

如果您有兴趣,完整的例子是here .


使用 Django 的解决方案:

您可以利用 Django 的缓存框架来存储您的模型。首先,激活本地内存缓存后端。 Instructions are here .

现在,您需要将模型存储在缓存中。

from django.core.cache import cache

model_cache_key = 'model_cache'
# this key is used to `set` and `get`
# your trained model from the cache

model = cache.get(model_cache_key) # get model from cache

if model is None:
# your model isn't in the cache
# so `set` it
model = Word2Vec.load(fname) # load model
cache.set(model_cache_key, model, None) # save in the cache
# in above line, None is the timeout parameter. It means cache forever

# now predict
prediction = model.predict(...)

您可以将上述代码保留在您的 View 中,但我宁愿您为此创建一个单独的文件,然后将此文件导入您的 View 中。

你可以找到完整的例子是on this blog .

关于Django:服务器端的机器学习模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43169272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com