首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在大规模的多租户环境中服务人工智能模型?

如何在大规模的多租户环境中服务人工智能模型?
EN

Stack Overflow用户
提问于 2020-07-12 18:51:12
回答 2查看 535关注 0票数 0

我有一个服务器集群,每个服务器根据请求获取实时身份验证事件,并根据位于S3中的AI模型返回传入事件的风险评分。

这个集群为多个客户服务。在S3中,每个客户都有自己的AI模型。S3大小的每个AI模型文件的大小约为50 is。

问题:

假设这个集群由10个服务器组成,它为20个客户服务。在S3中,分别有20个人工智能模型。

在天真的解决方案中,集群中的每个服务器最终可能会将所有20个模型从S3加载到服务器内存。20(集群中的服务器)*50 1GB (S3中的型号大小)=1GB。下载该模型并将其加载到内存中需要很长时间,而内存量仅限于服务器的内存容量。当然,随着规模的扩大,这些问题也会变得更大。

那我有什么选择?我知道有开箱即用的产品用于模型生命周期管理,例如: MlFlow、KubeFlow、.这些产品能解决我提出的问题吗?

也许使用Redis作为缓存层?

也许结合MlFlow和KubeFlow,使用Redis作为缓存层?

还有其他解决办法吗?

限制:--我不能在集群中的服务器之间进行粘性会话,因此不能确保同一个客户的所有请求最终都在同一台服务器上。

EN

回答 2

Stack Overflow用户

发布于 2020-07-15 07:49:49

就我理解您的问题而言,我会为每个模型使用单独的服务服务器。因此,您将有20个模型服务服务器,其中只加载50 to的模型数据,而服务器将为一个模型服务。您还需要有一个服务器来存储模型元数据,它负责将传入的请求发送到相关的模型服务服务器。该元数据将包含“客户对模型服务服务器端点”的信息。

本质上,Kubeflow将上述解决方案作为一个包提供,而且它具有很高的可伸缩性,因为它使用Kubernetes进行编排。例如,有一天,如果您想要添加新的客户,您可以触发一个Kubeflow管道,它训练您的模型,将其保存到S3,在Kubeflow集群中部署一个单独的模型服务器,并更新元数据。Kubeflow提供了使用管道方法的自动化和使用Kubernetes的可伸缩性。

在我看来,库贝弗尔目前的缺点是社区规模不大,产品也在不断改进。

我以前没有使用过MlFlow,所以我不能给出它的详细信息。

票数 0
EN

Stack Overflow用户

发布于 2020-07-16 16:40:02

就我理解您的问题而言,任何为库/框架服务的模型都无法解决这一问题。获取风险评分请求的服务器实例必须加载相应的模型。

要解决这个问题,您应该向特定的服务器实例依赖租户的请求。

在这种情况下,“部署邮票”模式可以帮助您。有关更多详细信息,请参阅https://learn.microsoft.com/en-us/azure/architecture/patterns/deployment-stamp

作为前门(见模式),NGINX或可能是一个很好的解决方案。只需查看请求头(授权头)就可以获得租户/用户,并确定适当的服务器实例。

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

https://stackoverflow.com/questions/62865250

复制
相关文章

相似问题

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