需要的是,我必须在lambda上触发一个SageMaker端点来获得预测(这很容易),但是必须使用XGBoost和SHAP这样的包对变量的重要性进行额外的处理。
我能够到达端点,并获得可变的重要性使用SageMaker木星笔记本。现在,我想在AWS lambda上复制同样的东西。
1) 如何在AWS上运行python代码,其中包含Pandas、XGBoost和SHAP的包依赖项(总包大小大于500 on )。解压缩的部署包大小大于250 MB,因此lambda不允许部署。我甚至尝试使用Cloud9中的lambda函数,但由于大小限制,得到了同样的错误。我也尝试过lambda层,但没有运气。
2) 是否有一种方法可以在lambda上或通过lambda运行具有如此大的包的代码,绕过部署包大小限制250 MB
3) 是否有一种方法可以通过lambda触发SageMaker笔记本的执行,从而完成计算并将输出返回到lambda?
发布于 2019-04-01 22:21:24
尝试将依赖项上载到Lambda层。金融时报:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html
发布于 2021-12-22 10:12:37
除了对依赖项使用多个层之外,您还可能希望通过linux *.so命令来减少strip文件,该命令从编译的对象文件中丢弃符号,而这些符号在生产中可能并不必要。
为了去除所有的*.so -
cdfind . -name *.so -exec strip {} \;将递归地对当前工作目录中的每个strip文件执行*.so命令。
它帮助我将依赖对象中的一个从94 7MB减少到只有7MB。
发布于 2019-11-01 16:08:12
我发现对AWS大小的250 be限制是严格的。来自xgboost包的只有一个文件ibxgboost.so已经在140 MB左右,这只剩下110 MB用于其他所有东西。这使得AWS lambdas除了简单的“你好世界”之外什么都没用。作为一个丑陋的解决方案,您可以将xgboost包存储在s3上的某个地方,将其从lambda调用例程复制到/tmp文件夹,并指向您的python。允许的tmp空间稍微高一点-500 it,因此它可能会工作。不过,我不确定在lambda函数之间是否清除了/tmp文件夹。
https://stackoverflow.com/questions/55463916
复制相似问题