首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >状态AI服务器的API

状态AI服务器的API
EN

Software Engineering用户
提问于 2022-12-17 15:12:52
回答 1查看 91关注 0票数 0

我正在设计一个利用人工智能进行图像分析的web应用程序。我的CRUD操作API是用Django编写的。现在我想添加AI功能,它在启动时加载模型一次,接收图像,并返回结果。将来,它还将允许对数据进行注释并对模型进行微调。

首先,我想在Django应用程序中加载模型,但是接下来我必须用加载的模型存储一个变量,这不是一个好的设计。对吗?

我还有别的选择吗?AI服务器必须是有状态的,我需要某种API。有什么干净的解决办法吗?

AI模型在Keras中实现,并从*.h5文件中加载。我考虑了一个消息队列和一个单独的AI服务器,但是除了图像处理之外,服务器还必须公开一些API来进行设置。如果我想用API实现一个单独的AI服务器,那么为什么不使用我已经拥有的Django服务器呢?在这种情况下,在哪里存储模型的对象?

另一个问题是,我需要存储的对象之一是线程,它持续监视服务器检查要分析的新映像。如果我声明这个变量(例如在settings.py中),它将阻止进一步的执行,因为它从未离开声明在其中的命名空间。

我要求就这个问题的设计提出建议。

EN

回答 1

Software Engineering用户

发布于 2022-12-18 09:28:54

这是一个粗略的答案。

  • web的“良好设计”是基于这样一个假设:您正在运行一个web站点。
  • 网站通常希望同时为许多用户提供服务
  • 要同时为许多用户提供服务,您不能同时容纳每个用户,请在内存中状态,因为您将耗尽。
  • 要想在拥有状态时成为无状态状态,可以将状态存储在db中并重新加载,或者存储状态客户端并每次发送状态。在服务器端,有许多关于避免状态的技巧。

不过!如果您的应用程序需要大量的服务器端状态(如ML模型),或者需要基于状态的超快响应,例如多人游戏。然后,您需要在调用之间的内存中保存该状态。这只是一个技术上的限制,这些技巧对你来说是行不通的。

如果您必须这样做,那么您的体系结构就会改变,以避免以不同的方式耗尽内存的问题,而不是无状态。

  • 限制具有队列的并发用户数
  • 使用粘性会话将用户链接到服务器
  • 服务器的积极横向扩展
  • 客户支付计算机时间
  • 超时后强制注销

一个网站的标准“良好实践”,不适用于你。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/442892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档