我训练了一个Tensorflow模型,该模型使用BioSentVec embeddings预处理模型输入。该嵌入模型的大小为20GB,因此我无法在AWS Lambda(大小限制为512 MB)或docker(大小限制为10 GB)中部署最终模型。
因此,我决定与Lambda + EFS
一起使用,并且我能够成功-
现在,当我尝试使用以下代码在lambda中加载嵌入模型时-
import json
import os
import sys
sys.path.append('/mnt/access')
import numpy as np
import pandas as pd
import tensorflow as tf
import sent2vec
from nltk import word_tokenize
import nltk
efs_path = "/mnt/access"
model_path = os.path.join(efs_path, 'models/BioSentVec_PubMed_MIMICIII-bigram_d700.bin')
model = sent2vec.Sent2vecModel()
try:
model.load_model(model_path)
print('BioSentVec model successfully loaded')
except Exception as e:
print(e)
lambda说-
在完成请求之前退出流程
当我查看cloudwatch日志时,看到以下错误-
在抛出'std :: bad_alloc'实例后调用terminate
我还尝试过从EFS上相同的models
目录中的lambda内部加载一个简单的文本文件,效果很好。
有人可以告诉我发生了什么事,并指出解决方案吗?
谢谢