# Sugar-easy
#### 介绍
基于kubernetes crd(kubebuilder)封装的机器学习模型分布式训练和预测服务部署框架,使机器学习模型训练和服务部署流程标准化
#### 软件架构
主要思路为开发kubernetes crd controller,并定义自定义的训练和预测服务docker镜像,来控制训练和部署流程,使整个过程容器化。
整个工程按文件夹阐述,可分为以下几个部分:
* image_define包含所需的docker镜像定义,包括训练镜像和预测服务镜像
* kubernetes包含crd定义及其代码,配置文件
* model_repository作为模型仓库,包含已封装的部分模型
#### 安装教程
1. 进入image_define文件夹,运行bash scripts/build.sh,打包自定义镜像
2. 需安装kubebuilder,https://github.com/kubernetes-sigs/kubebuilder/releases,链接中下载2.3.1版本
3. 进入kubernetes/appserver文件夹,make install, make deploy
4. 进入kubernetes/distributetrain文件夹,make install, make deploy
5. 如果需要使用预测服务的弹性伸缩,类似kubernetes Horizontal Pod Autoscaler(HPA),需要部署metrics-server,参照git clone https://github.com/kubernetes-incubator/metrics-server,也可以通过kube-prometheus监控更多指标,参照https://github.com/prometheus-operator/kube-prometheus.git
#### 使用说明
1. 预测服务样例见kubernetes/appserver/config/samples/sugar_v1_appserver.yaml,以下是各字段说明:
* replicasmin #最小副本数
* replicasmax #最大副本数
* modelfile #模型文件名
* modelparam #模型加载的参数,文件夹或文件(checkpoint)
* modelclass #模型文件中的模型类名
* port #端口配置(参照kubernetes service端口配置)
* modelvolume #模型文件所在volume(参照kubernetes volume配置)
* modelparamvolume #模型加载的参数所在volume(参照kubernetes volume配置)
* resources #每个pod的资源配置(参照kubernetes resources配置)
* metrics #kubernetes HPA弹性伸缩监控指标配置(参照kubernetes metrics配置)
2. 训练样例见kubernetes/distributetrain/config/samples/sugar_v1_distributetrainjob.yaml,以下是各字段说明:
* replicas #副本数
* selector #参照kubernetes selector
* ports #分布式训练过程中使用的通信端口
* modelvolume #模型文件所在volume(参照kubernetes volume配置)
* modelparamvolume #模型加载的参数所在volume(参照kubernetes volume配置)
* datasetvolume #数据集所在volume(参照kubernetes volume配置)
* logvolume #日志所在volume(参照kubernetes volume配置)
* modelsavepath #模型训练完成参数的保存路径,文件名或文件夹
* modelfile #模型文件名
* modelclass #模型文件中的模型类名
* modelcheckpoint #模型的预训练参数
* modelparams #模型的初始化参数
* trainparams #模型的可变训练参数设置,对于不启用自动调参的情况,每个value为单个值,对于启动自动调参的情况,每个value为列表或元祖
* traindataset #训练数据集
* validatedataset #验证数据集
* destscore #目标得分
* maxtrials #最大尝试次数,对于已启用自动调参的任务需要设置
* useautoml #是否使用自动调参
3. 模型开发说明,每个模型类需实现以下类函数:
* train(self, dataset_path, **train_args) 训练函数
* evaluate(self, dataset_path) 评估函数
* predict(self, query) 预测函数
* save(self, path) 保存训练(参数)结果
* load(self, path) 加载模型训练(参数)结果
* destroy(self) 模型结束运行时某些必要的资源释放
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
没有合适的资源?快使用搜索试试~ 我知道了~
基于kubernetes crd封装的机器学习模型分布式训练和预测服务部署框架,使机器学习模型训练和服务部署流程标准化.zip
共146个文件
yaml:63个
py:31个
txt:12个
需积分: 5 0 下载量 106 浏览量
2024-04-16
22:48:40
上传
评论
收藏 34.94MB ZIP 举报
温馨提示
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
资源推荐
资源详情
资源评论
收起资源包目录
基于kubernetes crd封装的机器学习模型分布式训练和预测服务部署框架,使机器学习模型训练和服务部署流程标准化.zip (146个子文件)
pip.conf 89B
pip.conf 89B
test.csv 75B
Dockerfile 889B
Dockerfile 795B
train.dockerfile 473B
predictor.dockerfile 426B
example.dockerfile 378B
.gitignore 1KB
appserver_controller.go 17KB
distributetrainjob_controller.go 17KB
distributetrainjob_types.go 5KB
zz_generated.deepcopy.go 4KB
zz_generated.deepcopy.go 4KB
appserver_types.go 4KB
main.go 2KB
main.go 2KB
suite_test.go 2KB
suite_test.go 2KB
groupversion_info.go 1KB
groupversion_info.go 1KB
LICENSE 11KB
LICENSE 11KB
LICENSE 11KB
Makefile 2KB
Makefile 2KB
manager 42.76MB
manager 42.76MB
Readme.md 5KB
README.md 1013B
go.mod 292B
go.mod 249B
cover.out 6KB
cover.out 5KB
PROJECT 188B
PROJECT 166B
model.py 10KB
model.py 8KB
model.py 8KB
model.py 8KB
model.py 8KB
model.py 8KB
model.py 8KB
model.py 6KB
worker.py 6KB
test.py 3KB
dataset.py 2KB
dataset.py 2KB
test_predictor.py 1KB
run_app.py 1KB
test.py 919B
test_worker.py 747B
predictor.py 669B
run.py 488B
model.py 477B
log.py 279B
test_other.py 140B
__init__.py 82B
__init__.py 36B
__init__.py 30B
__init__.py 30B
__init__.py 27B
__init__.py 25B
__init__.py 25B
__init__.py 24B
__init__.py 24B
__init__.py 22B
build.sh 151B
build_image.sh 91B
go.sum 46KB
go.sum 46KB
boilerplate.go.txt 552B
boilerplate.go.txt 531B
requirements.txt 73B
requirements.txt 69B
requirements.txt 57B
requirements.txt 19B
requirements.txt 19B
requirements.txt 19B
requirements.txt 19B
requirements.txt 19B
requirements.txt 19B
requirements.txt 16B
sugar.sugar.com_distributetrainjobs.yaml 276KB
sugar.sugar.com_appservers.yaml 163KB
kustomization.yaml 2KB
kustomization.yaml 2KB
sugar_v1_distributetrainjob.yaml 2KB
certificate.yaml 943B
certificate.yaml 943B
kustomization.yaml 942B
kustomization.yaml 915B
sugar_v1_appserver.yaml 868B
manager.yaml 818B
kustomizeconfig.yaml 791B
kustomizeconfig.yaml 791B
manager.yaml 780B
manager_auth_proxy_patch.yaml 747B
manager_auth_proxy_patch.yaml 747B
webhook_in_distributetrainjobs.yaml 632B
共 146 条
- 1
- 2
资源评论
生瓜蛋子
- 粉丝: 3912
- 资源: 7441
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功