ModelArts导入模型时,如何编写模型配置文件中的安装包依赖参数?
问题描述
从OBS中或者从容器镜像中导入模型时,开发者需要编写模型配置文件。模型配置文件描述模型用途、模型计算框架、模型精度、推理代码依赖包以及模型对外API接口。配置文件为JSON格式。配置文件中的“dependencies”,表示配置模型推理代码需要的依赖包,需要提供依赖包名、安装方式和版本约束的信息,详细参数见模型配置文件编写说明。导入模型时,模型配置文件中的安装包依赖参数“dependencies”如何编写?
解决方案
安装包存在前后依赖关系。例如您在安装“mmcv-full”之前,需要完成“Cython”、“pytest-runner”、“pytest”的安装,在配置文件中,您需要把“Cython”、“pytest-runner”、“pytest”写在“mmcv-full”的前面。
示例如下:
"dependencies": [
{
"installer": "pip",
"packages": [
{
"package_name": "Cython"
},
{
"package_name": "pytest-runner"
},
{
"package_name": "pytest"
},
{
"restraint": "ATLEAST",
"package_version": "5.0.0",
"package_name": "Pillow"
},
{
"restraint": "ATLEAST",
"package_version": "1.4.0",
"package_name": "torch"
},
{
"restraint": "ATLEAST",
"package_version": "1.19.1",
"package_name": "numpy"
},
{
"package_name": "mmcv-full"
}
]
}
]
当"mmcv-full"安装失败,原因可能是基础镜像中没有安装gcc,无法编译导致安装失败,此时需要用户使用线下wheel包安装。
示例如下:
"dependencies": [
{
"installer": "pip",
"packages": [
{
"package_name": "Cython"
},
{
"package_name": "pytest-runner"
},
{
"package_name": "pytest"
},
{
"restraint": "ATLEAST",
"package_version": "5.0.0",
"package_name": "Pillow"
},
{
"restraint": "ATLEAST",
"package_version": "1.4.0",
"package_name": "torch"
},
{
"restraint": "ATLEAST",
"package_version": "1.19.1",
"package_name": "numpy"
},
{
"package_name": "mmcv_full-1.3.9-cp37-cp37m-manylinux1_x86_64.whl"
}
]
}
]
模型配置文件的“dependencies”支持多个“dependency”结构数组以list形式填入。
"dependencies": [
{
"installer": "pip",
"packages": [
{
"package_name": "Cython"
},
{
"package_name": "pytest-runner"
},
{
"package_name": "pytest"
},
{
"package_name": "mmcv_full-1.3.9-cp37-cp37m-manylinux1_x86_64.whl"
}
]
},
{
"installer": "pip",
"packages": [
{
"restraint": "ATLEAST",
"package_version": "5.0.0",
"package_name": "Pillow"
},
{
"restraint": "ATLEAST",
"package_version": "1.4.0",
"package_name": "torch"
},
{
"restraint": "ATLEAST",
"package_version": "1.19.1",
"package_name": "numpy"
},
]
}
]