说,我想要一个lambda函数来预测带有训练模型的传入消息类别。但是,该模型的尺寸过大(约1GB)。
使用当前架构,我应该将训练好的模型上传到AWS S3,然后在每次触发lambda时加载它。这是不可取的,因为大部分时间都在加载模型。
一些解决方案:
或者,我怀疑AWS会缓存该文件,因此下一个加载时间可能更短?
答案 0 :(得分:0)
我认为在这里阅读有关lambda中的容器重用可能会有所帮助。
https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/
您可以通过在处理程序函数外部进行声明和初始化来将模型添加为全局缓存变量。而且,如果Lambda将相同的容器用于后续请求,则不会重新下载文件。
但是,重用容器还是启动新容器完全取决于Lambda。由于这是Lambda的特权,因此您不能依赖此行为。
如果要最大程度地减少从S3的下载次数,则可以在同一可用区中使用外部托管缓存解决方案(Elasticache,Redis),您可以考虑使用该功能。