【发布时间】:2020-11-02 00:33:03
【问题描述】:
我有一个服务器集群,每个服务器获取实时身份验证事件作为请求,并根据 S3 中的 AI 模型返回传入事件的风险评分。
此集群为多个客户提供服务。每个客户在 S3 中都有自己的 AI 模型。 S3 大小的每个 AI 模型文件大小约为 50MB。
问题:
假设这个集群由 10 台服务器组成,它为 20 个客户提供服务。 S3中分别有20个AI模型。
在一个简单的解决方案中,集群中的每台服务器最终可能会将所有 20 个模型从 S3 加载到服务器内存中。 20(集群中的服务器)*50MB(S3 中的模型大小)= 1GB。 下载模型并加载到内存需要很长时间,并且内存量受限于服务器的内存容量。 当然 - 这些问题随着规模的扩大而变得更大。
那么我有哪些选择? 我知道有开箱即用的产品用于模型生命周期管理,例如:MlFlow、KubeFlow、... 这些产品能解决我提出的问题吗?
也许使用 Redis 作为缓存层?
也许将 Redis 与 MlFlow 和 KubeFlow 结合使用作为缓存层?
还有其他解决方案吗?
限制: 我不能在该集群中的服务器之间进行粘性会话,因此我无法确保同一客户的所有请求最终都会在同一台服务器中结束。
【问题讨论】:
标签: artificial-intelligence scalability mlflow kubeflow