modelscope有其专有的模型仓库和数据集仓库,通过git管理版本,使用时指定namespace/model-name就可以缓存到本地,方便复用。模型主要基于TensorFlow,Pytorch
与kubeflow在离线环境结合需要下载模型,加载本地模型,http服务,测试部署。
下面以https://www.modelscope.cn/models/damo/cv_vit-base_image-classification_Dailylife-labels/summary 为例子
目录结构
1 |
|
下载模型
1 |
|
下载模型到model目录
加载本地模型
加载example
1 |
|
http服务
我们面临两个选择
- 使用自定义镜像,运行在kserve的HTTP server
- 使用kubeflow开箱即用的http server服务
我们需要泛用性高,工作量少的方法
选择方案一,方案二有其局限性
-
开箱即用的http server服务有框架版本限制,自定义镜像则和框架甚至py版本版本无关
-
我们只得到模型文件没有模型源码,使用http server服务可能得修改模型的输入输出,自定义镜像更加灵活适应场景
就像模型返回的output 有numpy object 和 中文,不经过特殊处理,又没有模型源码根本解决不了response
1
2{'scores': [0.45598775, 0.25016323, 0.035127528, 0.021287015, 0.019946197], 'labels': ['鸟', '小鸟', '羽毛', '蜂鸟', '鸽']}
关于模型只接受路径、URL,离线环境下不做处理,根本用不了
model.py
1 |
|
测试部署
requirements.txt
1 |
|
modelscope没有在pypi,可以download命令拿到whl
1 |
|
Dockfile
1 |
|
docker 测试
1 |
|
interface.yaml
1 |
|
部署到kubeflow
1 |
|
测试
1 |
|