Python 如何将第三方ML模型加载到无服务器函数中

Python 如何将第三方ML模型加载到无服务器函数中,python,lambda,scikit-learn,serverless-framework,Python,Lambda,Scikit Learn,Serverless Framework,我已经构建了一个ML模型(使用sklearn模块),我希望通过AWS API网关+Lambda函数为其提供预测服务 我的问题是: 由于lambda容量限制,我无法安装sklearn+numpy等。(捆绑包大于140MB) 也许这是个愚蠢的问题,但是,你知道有没有更好的方法来完成这项任务吗 为了减小捆绑包的大小,我尝试了本教程。但是,由于--use wheel标志,它引发了一个异常 其中z_特征是我使用标量后的特征只要想清楚 该解决方案基本上位于AWS Lambda层之上 我创建了一个仅包含相关

我已经构建了一个ML模型(使用sklearn模块),我希望通过AWS API网关+Lambda函数为其提供预测服务

我的问题是:

  • 由于lambda容量限制,我无法安装sklearn+numpy等。(捆绑包大于140MB)
  • 也许这是个愚蠢的问题,但是,你知道有没有更好的方法来完成这项任务吗
  • 为了减小捆绑包的大小,我尝试了本教程。但是,由于--use wheel标志,它引发了一个异常

    其中z_特征是我使用标量后的特征

    只要想清楚

    该解决方案基本上位于AWS Lambda层之上

    我创建了一个仅包含相关编译库的sklearn层。 然后,我运行
    sls包
    ,以便将包含这些文件的包与我自己的handler.py代码打包在一起

    最后一步是跑步
    sls部署——package.serverless

    希望它能对其他人有所帮助。

    想想看

    该解决方案基本上位于AWS Lambda层之上

    我创建了一个仅包含相关编译库的sklearn层。 然后,我运行
    sls包
    ,以便将包含这些文件的包与我自己的handler.py代码打包在一起

    最后一步是跑步
    sls部署——package.serverless

    希望对其他人有帮助

        bucket = s3.Bucket(os.environ['BUCKET'])
        model_stream = bucket.Object(os.environ['MODEL_NAME'])
        model = pickle.loads(model_stream)
        model.predict(z_features)[0]