我部署了一个带有异步端点的自定义模型。我想用它来处理视频文件,因为视频可以有5-10分钟的时间,我不能把所有的帧加载到内存中。当然,我想对每一帧做一个推论。我写过
input_fn -使用boto从s3下载视频文件并创建带有给定批处理大小的视频帧的生成器返回用OpenCV编写的生成器
predict_fn -在生成器批处理帧上迭代并使用列表中的模型保存预测生成预测
output_fn -将预测转换为json格式,gzip全部用于缩小大小。
端点运行良好,但问题是并发性。save端点处理一个又一个请求(来自cloudwatch和s3保存文件时间)。我不知道为什么会这样。max_concurrent_invocations_per_instance设置为1000。PyTorch服务的其他设置如下:
SAGEMAKER_MODEL_SERVER_TIMEOUT: 100000
SAGEMAKER_TS_MAX_BATCH_DELAY: 10000
SAGEMAKER_TS_BATCH_SIZE: 1000
SAGEMAKER_TS_MAX_WORKERS: 4
SAGEMAKER_TS_RESPONSE_TIMEOUT: 100000尽管如此,它还是行不通的。那么,如何使用PyTorch创建异步推理端点以获得并发性呢?
发布于 2022-05-28 19:27:05
TorchServe DLC的并发设置由诸如工人#之类的机制控制,这些机制可以通过定义适当的变量(如SAGEMAKER_TS_*和SAGEMAKER_MODEL_* )来设置(例如,有关其含义和含义的详细信息,请参见此页 )。
虽然后者对任何特定的服务堆栈都是不可知的,并且是在SageMaker推理工具包中定义的,但是前者是特定于TorchServe的,并且是在TorchServe推理工具包中定义的。此外,由于TorchServe推理工具包构建在SageMaker推理工具包的基础上,这两组参数之间存在着一种非平凡的相互作用。
因此,您还可能希望对类似于SAGEMAKER_MODEL_SERVER_WORKERS这样的参数进行试验,以正确设置SageMaker异步端点的并发设置。
https://stackoverflow.com/questions/72392070
复制相似问题