常见问题

本文为您介绍自定义Processor的相关问题。

如何提高自定义Processor压缩包的上传效率?

EAS推荐使用Docker镜像上传运行环境和大文件。业务代码变动时,只需增量更新改动部分,可以大幅度提升开发效率,详情请参见使用Python开发自定义Processor

如何解决导入cv2报错libSM.so.6: cannot open shared object file: No such file or directory的问题?

常见的pip install opencv方法依赖于libXext、libSMlibXrender库。因EAS线上环境没有预装这些库,所以使用该命令安装的cv2在离线测试环境中可能正常运行,但在线上环境可能运行失败。您可以通过以下任何一种方式解决该报错:

  • 使用pip install opencv-python-headless安装cv2,该方法不依赖于额外安装的libXext、libSMlibXrender库。

  • 查找系统中已安装的libXext、libSMlibXrender的二进制库文件,将其拷贝至ENV/lib并随Processor上传。(该方法可能出现其他依赖库问题,需要根据实际情况解决。)

EAS Python Processor中,如何配置环境变量?

EAS Python Processor会自动将Processor目录下的所有目录添加至LD_LIBRARY_PATH环境变量,所以将额外的依赖库存放至Processor目录的任意位置即可。对于其他环境变量,推荐在Python程序中使用os.environ['key'] = 'val'进行配置。

如何避免EAS Processor代码异常导致进程退出?

在开发业务服务逻辑过程中,在业务代码重要的地方增加异常检测机制(try-catch),以防止异常导致进程退出。即使由于某些特殊原因导致进程退出,EAS可以自动重启退出的进程,从而保证服务的稳定性。

如何配置AccessKeyEndpoint?

预测服务使用阿里云AccessKey进行身份认证,提交任务时需要使用AccessKey IDAccessKey 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。若超过此限制,建议您采用控制台自定义部署-镜像部署。