本文为您介绍自定义Processor的相关问题。
如何解决导入cv2报错libSM.so.6: cannot open shared object file: No such file or directory的问题?
为什么使用EASCMD创建任务时,一直处于[OK] Waiting [Total: 1, Pending: 1, Running: 0]状态?
如何提高自定义Processor压缩包的上传效率?
EAS推荐使用Docker镜像上传运行环境和大文件。业务代码变动时,只需增量更新改动部分,可以大幅度提升开发效率,详情请参见使用Python开发自定义Processor。
如何解决导入cv2报错libSM.so.6: cannot open shared object file: No such file or directory
的问题?
常见的pip install opencv
方法依赖于libXext、libSM及libXrender库。因EAS线上环境没有预装这些库,所以使用该命令安装的cv2在离线测试环境中可能正常运行,但在线上环境可能运行失败。您可以通过以下任何一种方式解决该报错:
使用
pip install opencv-python-headless
安装cv2,该方法不依赖于额外安装的libXext、libSM及libXrender库。查找系统中已安装的libXext、libSM及libXrender的二进制库文件,将其拷贝至ENV/lib并随Processor上传。(该方法可能出现其他依赖库问题,需要根据实际情况解决。)
在EAS Python Processor中,如何配置环境变量?
因EAS Python Processor会自动将Processor目录下的所有目录添加至LD_LIBRARY_PATH环境变量,所以将额外的依赖库存放至Processor目录的任意位置即可。对于其他环境变量,推荐在Python程序中使用os.environ['key'] = 'val'
进行配置。
如何避免EAS Processor代码异常导致进程退出?
在开发业务服务逻辑过程中,在业务代码重要的地方增加异常检测机制(try-catch),以防止异常导致进程退出。即使由于某些特殊原因导致进程退出,EAS可以自动重启退出的进程,从而保证服务的稳定性。
如何配置AccessKey和Endpoint?
预测服务使用阿里云AccessKey进行身份认证,提交任务时需要使用AccessKey ID和AccessKey Secret。Endpoint默认地域为华东2(上海),如果需要将模型部署至其它地域,可以使用-e参数指定地域对应的Endpoint,示例如下。
./eascmd64 config -i <yourAccessKey ID> -k <yourAccessKey Secret> -e pai-eas.cn-beijing.aliyuncs.com
为什么使用EASCMD创建任务时,一直处于[OK] Waiting [Total: 1, Pending: 1, Running: 0]
状态?
创建任务所需的资源可能不足或无法找到。首先需要确认配置的资源地域和名称是否正确,然后确认是否有足够的可用资源。如下EAS信息描述文件展示了相关配置。
{
"name": "service",
"token": "[Authorization-token]",
"data_image":"[your-public-docker-image-repo]",
"processor_entry": "app.py",
"processor_type": "python",
"processor_path": "[oss://eas-model-shenzhen/xxxxxxxxx/codes.tar.gz]",
"metadata": {
"region": "cn-shenzhen", # 确保资源组所在的地域正确。
"resource": "resource-name", # 确保资源组名称(类似:EAS-LsFlrwBP56)正确且与地域对应。
"gpu": 1,
"cpu": 6,
"memory": 2000,
"instance": 2, # 每个实例占用(gpu=1, cpu=6, memory=2000B)的资源。
# 如果可用资源不足,则该任务一直处于waiting状态。
"cuda": "10.0"
}
}
如何解决EAS服务内部访问公网失败的问题?
使用自定义Processor部署EAS服务时,由于代码里配置了从公网下载文件,导致部署服务时报错:加载文件失败。因为EAS服务内部默认与公网不通,您可以尝试为EAS服务配置公网连接。
自定义Processor方式部署时提示“Download processor files failed: forbidden to download file with size larger than 10G”
通过自定义Processor方式部署时,系统限定模型和Processor包大小不能超过10GB。若超过此限制,建议您采用控制台自定义部署-镜像部署。