【发布时间】:2019-10-01 09:53:47
【问题描述】:
在 AWS lambda 上使用 gensim 托管 word2vec 模型
使用 python 2.7 boto==2.48.0 gensim==3.4.0
我的 function.py 文件中有几行,我直接从 s3 加载模型
print('################### connecting to s3...')
s3_conn = boto.s3.connect_to_region(
region,
aws_access_key_id = Aws_access_key_id,
aws_secret_access_key = Aws_secret_access_key,
is_secure = True,
calling_format = OrdinaryCallingFormat()
)
print('################### connected to s3...')
bucket = s3_conn.get_bucket(S3_BUCKET)
print('################### got bucket...')
key = bucket.get_key(S3_KEY)
print('################### got key...')
model = KeyedVectors.load_word2vec_format(key, binary=True)
print('################### loaded model...')
在模型加载线上
model = KeyedVectors.load_word2vec_format(key, binary=True)
得到一个没有太多细节的神秘错误:
在云端手表上可以看到我所有的打印消息,直到 '################### got key...' 包含在内, 然后我得到:
START RequestId: {req_id} Version: $LATEST
然后就在它之后[这两条消息之间没有时间延迟]
module initialization error: __exit__
请问,有没有办法获得详细的错误或更多信息?
更多背景细节: 我能够将模型从 s3 下载到 /tmp/,它确实授权并检索了模型文件,但空间不足 [文件约为 2GB,/tmp/ 为 512MB]
所以,改用上面的 gensim 直接加载模型,现在得到了那个神秘的错误。
使用 python-lambda-local 运行函数没有问题
所以,这可能将其缩小到 gensim 的 smart open 或 aws lambda 的问题,不胜感激任何提示,谢谢!
【问题讨论】:
标签: python amazon-web-services aws-lambda gensim word2vec