YMIR 学习与实践

一、介绍

YMIR(You Mine In Recursion)是一个简化的模型开发产品,专注于AI SUITE开源系列中的数据集版本和模型迭代。

file

目前人工智能商业化在算力、算法和技术方面达到阶段性成熟。AI应用在产品落地过程中经常会遇到无法大规模扩展的瓶颈,例如人才紧缺、开发成本高、迭代周期长等问题。

在此基础上,为了降低企业利用AI技术的成本,加速推进AI赋能企业,YMIR系统为算法人员提供端到端的算法研发工具,围绕AI开发过程中所需要的数据处理、模型训练等业务需求提供一站式服务,推动算法技术应用。

YMIR主要以数据为中心,提供高效模型开发迭代能力,集成了主动学习方法、数据和模型版本控制,同时集成工作空间等概念,实现多个任务特定数据集的并行快速迭代。平台设计开放API来集成第三方工具,支持企业将有限的人力投入到应用的开发中,以更低成本实现AI到行业的落地。

1.1 主要功能

在AI开发过程中,基本流程通常可以归纳为几个步骤:确定目的、准备数据、训练模型、评估模型、部署模型。

  • 确定目的:在开始AI开发之前,必须明确要分析什么?要解决什么问题?商业目的是什么?基于商业的理解,整理AI开发框架和思路。例如,图像分类、物体检测等。不同的项目对数据的要求,使用的AI开发手段也是不一样的。
  • 准备数据:数据准备主要是指收集和预处理数据的过程。按照确定的分析目的,有目的性的收集、整合相关数据,数据准备是AI开发的一个基础。此时最重要的是保证获取数据的真实可靠性。而事实上,不能一次性将所有数据都采集全,因此需要反复新增数据来调整优化。
  • 训练模型:俗称“建模”,指通过分析手段、方法和技巧对准备好的数据进行探索分析,从中发现因果关系、内部联系和业务规律,为商业目的提供决策参考。训练模型的结果通常是一个或多个机器学习或深度学习模型,模型可以应用到新的数据中,得到预测、评价等结果。
  • 评估模型:训练得到模型之后,整个开发过程还不算结束,需要对模型进行评估和考察。通过现有的数据往往不能一次性获得一个满意的模型,需要反复的调整算法参数,新增有效数据,不断地迭代和评估生成的模型。一些常用的指标,如mAP,能帮助您有效的评估,最终获得一个满意的模型。
  • 部署模型:模型的开发训练,是基于之前的已有数据(有可能是测试数据),而在得到一个满意的模型之后,需要将其应用到正式的实际数据或新产生数据中,进行预测、评价、或以可视化和报表的形式把数据中的高价值信息以精辟易懂的形式提供给决策人员,帮助其制定更加正确的商业策略。
  • 监控模型:待补充(运行监控、资源监控、稳定性监控、表现性监控)

YMIR平台主要满足用户规模化生产模型的需求,为用户提供良好、易用的展示界面,便于数据和模型的管理与查看。平台包含项目管理、标签管理、系统配置等主要功能模块,支持实现以下主要功能:

file

二、安装

1、环境依赖

1.1 需要安装docker:

docker compose >= 1.29.2, docker >= 20.10

2、安装Ymir-GUI

需要保证环境依赖中所有条件已满足才能部署,否则容易出现各种不可控问题。

YMIR-GUI项目包在DockerHub上,安装部署YMIR步骤如下:

登录Git地址:https://github.com/IndustryEssentials/ymir
将部署项目YMIR下拉到本地服务器,克隆仓库地址命令: git clone git@github.com:IndustryEssentials/ymir.git

如无可用显卡,用户需要安装CPU模式,请修改为CPU启动模式,修改.env文件将SERVER_RUNTIME参数修改为runc:
# nvidia for gpu, runc for cpu.

SERVER_RUNTIME=runc

执行启动命令:bash ymir.sh start,建议不要使用sudo命令,否则可能会造成权限不足。

# 添加普通用户ai
cat /etc/passwd   
adduser ai 
passwd ai
 vim /etc/sudoers
 usermod -g root ai
 su ai

服务启动时会询问用户是否愿意发送使用报告到YMIR开发团队,不输入默认为愿意。

当询问用户是否需要启动label free标注平台时,如果用户需要启动,则需要前往.env配置文件中将ip和port信息改为用户当前所部署的标注工具地址及端口号。

# Note format: LABEL_TOOL_HOST_IP=http(s)://(ip)
LABEL_TOOL_HOST_IP=set_your_label_tool_HOST_IP
LABEL_TOOL_HOST_PORT=set_your_label_tool_HOST_PORT

修改完成后再执行启动命令:bash ymir.sh start。

服务启动成功后,默认配置端口为12001,可以直接访问 http://localhost:12001/ 显示登录界面即安装成功。如果需要停止服务,运行命令为:bash ymir.sh stop

启动:

[root@dev ymir-release-2.1.0]# su ai
[ai@dev ymir-release-2.1.0]$ bash ymir.sh start
Welcome to Ymir world.
[+] Running 11/11
 ⠿ Container ymir-model_deploy_nginx-1  Removed                                                                                                   0.2s
 ⠿ Container ymir-labelstudio-1         Removed                                                                                                  10.3s
 ⠿ Container ymir-web-1                 Removed                                                                                                   0.0s
 ⠿ Container ymir-backend-1             Removed                                                                                                   0.0s
 ⠿ Container ymir-redis-1               Removed                                                                                                   0.0s
 ⠿ Container ymir-tensorboard-1         Removed                                                                                                   0.0s
 ⠿ Container ymir-mongodb-1             Removed                                                                                                   0.0s
 ⠿ Container ymir-db-1                  Removed                                                                                                   0.0s
 ⠿ Container ymir-model_deploy_api-1    Removed                                                                                                  10.2s
 ⠿ Container ymir-model_deploy_mysql-1  Removed                                                                                                   1.0s
 ⠿ Network ymir_model_deploy_network    Removed                                                                                                   0.1s
DEPLOY_MODULE_HOST_PORT=18801
deploy module, starting...
[+] Running 4/4
 ⠿ Network ymir_model_deploy_network    Created                                                                                                   0.1s
 ⠿ Container ymir-model_deploy_mysql-1  Started                                                                                                   0.4s
 ⠿ Container ymir-model_deploy_api-1    Started                                                                                                   0.9s
 ⠿ Container ymir-model_deploy_nginx-1  Started                                                                                                   1.5s

in prod mode, starting service.
label_tool already set
WARN[0000] Found orphan containers ([ymir-model_deploy_nginx-1 ymir-model_deploy_api-1 ymir-model_deploy_mysql-1]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. 
[+] Running 6/6
 ⠿ Container ymir-redis-1        Started                                                                                                          1.8s
 ⠿ Container ymir-db-1           Started                                                                                                          1.9s
 ⠿ Container ymir-tensorboard-1  Started                                                                                                          1.5s
 ⠿ Container ymir-mongodb-1      Started                                                                                                          1.9s
 ⠿ Container ymir-backend-1      Started                                                                                                          2.4s
 ⠿ Container ymir-web-1          Started                                                                                                          3.3s
LABEL_TOOL=label_studio
label-studio set, starting...
WARN[0000] Found orphan containers ([ymir-web-1 ymir-backend-1 ymir-tensorboard-1 ymir-redis-1 ymir-db-1 ymir-mongodb-1 ymir-model_deploy_nginx-1 ymir-model_deploy_api-1 ymir-model_deploy_mysql-1]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. 
[+] Running 1/1
 ⠿ Container ymir-labelstudio-1  Started                                                                                                          1.0s
[ai@dev ymir-release-2.1.0]$ 

http://11.0.1.60:12001/
密码(w95//8)

管理后台:
file

file


相关文章:
YMIR(You Mine In Recursion)文档
零门槛开发 AI 模型!国际 AI 科学家联合开源算法训练平台 YMIR
论文 | YMIR: A Rapid Data-centric Development Platform for Vision Applications

为者常成,行者常至