UfaceConvertServer模型量化服务

联合创作 · 2023-09-28 09:48

目前的嵌入式算法开发中,针对不同芯片平台进行模型量化是模型工程化必不可少的一部分。一般的方式是算法开发人员自己搭建量化环境进行量化,这种方式需要每个算法开发都搭建一套自己的环境,需要熟悉 不同的量化工具,而且需要手动量化。本项目试图通过模型量化服务,可免去算法工程师自己搭建各种芯片的量化环境,而只需要在服务所在的机器上配置好相关的量化工具链即可。算法工程师只要按规则通过Web将模型上传至指定位置,服务将根据配置自动为其量化,并将量化后模型上传至指定位置。当前支持RKNN芯片,可扩展至其他平台。

配置

  1. 安装minio, 可参考官网:https://docs.min.io/,或直接通过以下命令进行docker安装:
sudo docker run -p 9003:9000 --name minio \
    -d --restart=always \
    -e "MINIO_ACCESS_KEY=admin" \
    -e "MINIO_SECRET_KEY=123@abc.com" \
    -v /nfs_79/model_zoo:/data \  #模型位置
    -v /nfs_79/model_zoo/config:/root/.minio \ #minio配置存储路径
    minio/minio:RELEASE.2021-04-06T23-11-00Z.hotfix.e46577116 server /data

minio是一个对象存储服务,可以帮助我们管理模型文件,并且提供了Web和S3 API便于操作。 上述命令将在本机开启一个服务,用户上传的数据在本地的/nfs_79/model_zoo中,访问方式为 http://ip:9003 2. 安装rknn量化工具包

项目文件说明

sync_server.py

定时将minio上的文件同步至本地目录

model_repo_monitor.py

监控模型目录,如果发现有模型需要转换,添加到任务队列

rknn_quant.py

进行rknn量化,并上传日志和转换后的模型到minio

logger.py

日志相关

config.py

读取配置信息

repo_uploader.py

上传文件到minio仓库

common_utils.py

其他

如何使用

  1. 首先开启sync_server.py进行minio仓库和 本地目录的同步
  2. 设置config.py的信息,主要是minio仓库的账号信息
  3. python main.py --repo-dir local_path 开启服务
  4. 访问 http://ip:9003 上传模型至minio,目录结构应为: ModelName/ModelVersion/rknn, 在此目录下放置原始模型,convert_config.json(量化配置文件)以及quant_imgs(量化图片目录)
浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报