Aws lambda 如何在lambda函数中加载大文件模型

Aws lambda 如何在lambda函数中加载大文件模型,aws-lambda,Aws Lambda,比方说,我想要一个lambda函数,用一个经过训练的模型来预测传入的消息类别。但是,该模型的大小过大(~1GB) 在当前架构下,我应该将经过训练的模型上传到AWS S3,然后在每次触发lambda时加载它。这是不可取的,因为大多数时间都在加载模型 需要考虑的一些解决方案: 不要使用lambda。有一个专用的ec2实例来工作 通过定期发送虚拟请求来保持温暖 或者,我怀疑AWS会缓存该文件,因此下一次加载时间可能会更短?我认为阅读lambda中的容器重用可能会有所帮助 通过在处理函数外部声明和初始

比方说,我想要一个lambda函数,用一个经过训练的模型来预测传入的消息类别。但是,该模型的大小过大(~1GB)

在当前架构下,我应该将经过训练的模型上传到AWS S3,然后在每次触发lambda时加载它。这是不可取的,因为大多数时间都在加载模型

需要考虑的一些解决方案:

  • 不要使用lambda。有一个专用的ec2实例来工作
  • 通过定期发送虚拟请求来保持温暖

  • 或者,我怀疑AWS会缓存该文件,因此下一次加载时间可能会更短?

    我认为阅读lambda中的容器重用可能会有所帮助

    通过在处理函数外部声明和初始化模型,可以将其添加为全局缓存变量。如果Lambda正在为后续请求重用同一容器,则不会重新下载该文件

    但这完全取决于Lambda是重新使用容器还是启动一个新容器。既然这是拉姆达的特权,你就不能依赖这种行为


    如果您想最大限度地减少从S3下载的次数,可以在同一AZ中使用外部托管缓存解决方案(Elasticache、Redis),因为您的功能是一个可能的替代方案

    考虑将AWS Lambda与ECS结合使用,如下所述:感谢@Leon。我读了博客。这个问题由容器解决方案处理,lambda只触发任务。我想我想知道我是否可以用lambda解决方案来实现它。