西安网站开发公司定制,wordpress 字体 服务器,seo营销培训,中级经济师考试时间1. cube-studio介绍
云原生机器学习平台cube-studio介绍#xff1a;https://juejin.cn/column/7084516480871563272
cube-studio是开源的云原生机器学习平台#xff0c;目前包含特征平台#xff0c;支持在/离线特征#xff1b;数据源管理#xff0c;支持结构数据和媒体标…1. cube-studio介绍
云原生机器学习平台cube-studio介绍https://juejin.cn/column/7084516480871563272
cube-studio是开源的云原生机器学习平台目前包含特征平台支持在/离线特征数据源管理支持结构数据和媒体标注数据管理在线开发在线的vscode/jupyter代码开发在线镜像调试支持免dockerfile增量构建任务流编排在线拖拉拽开放的模板框架支持tf/pytorch/spark/ray/horovod/kaldi等分布式训练任务task的单节点debug分布式任务的批量优先级调度聚合日志任务运行资源监控报警定时调度支持补录忽略重试依赖并发限制定时任务算力的智能修正nnikatibray的超参搜索多集群多资源组算力统筹联邦调度tf/pytorch/onnx模型的推理服务serverless流量管控tensorrt gpu推理加速依据gpu利用率/qps等指标的 hpa能力虚拟化gpu虚拟显存等服务化能力。
目前cube-studio由腾讯音乐开源到githubhttps://github.com/tencentmusic/cube-studio
开源试用环境http://114.96.98.168:20080/frontend/ 账号admin 密码 admin
2. 开源代码框架与结构
平台控制端为fab-python框架基于Flask框架可先了解Flask框架相关
2.1 数据库相关代码
2.1.1 数据库结构
myapp/models 中存储数据库结构如图所示
2.1.2 数据库初始化 如图所示在cli.py中初始化写入数据库对数据的操作通过db.session来进行
2.1.3 数据库的更新迭代
迭代版本文件在myapp/migrations/versions 1、先使用myapp db upgrade命令将数据库依据versions目录下的接口更新到最新
2、然后myapp db migrate 将代码中的最新接口更新到versions目录下
3、然后再调用myapp db upgrade命令更新到最新版数据库
2.2 后端接口介绍
2.2.1 后端代码介绍 如图所示通过定义一个类设置route_base基本路由之后通过expose定义具体的api接口及restful方法之后通过appbuilder.add_api将类添加即可定义一个后端接口。 #所有api操作headerheaders {Content-Type: application/json,Authorization: $rtx|$token}- api(GET)http://x.x.x.x/$view/api/#获取当前view 增删改查搜索接口中需要发送的参数以及参数的描述- api: (GET)http://xx.xx.xx.xx/$view/api/_info #list接口其中$value为json序列化后的字符串- api: (GET)http:/xxx/api/?form_data$value- api(POST)http://x.x.x.x/$view/api/- api(PUT)http://x.x.x.x/$view/api/id- api(GET)http://x.x.x.x/$view/api/id- api(DELETE)http://x.x.x.x/$view/api/id#单数据操作- api(GET)http://x.x.x.x/$view/api/action/$action_name/id#批数据操作- api(POST)http://x.x.x.x/$view/api/multi_action/$action_name/json参数为{ids:[xx,xx,xx]}2.2.2 接口过滤函数
过滤函数
Starts withsw
Not Starts withnsw
Ends withew
Not Ends withnew
Containsct
Not Containsnct
Equal toeq
Not Equal toneq
Greater thangt
Smaller thanlt
Relationrel_o_m
No Relationnrel_o_m
elation as Manyrel_m_m
Filter view with a functioneqf
Filter view where field is in a list returned by a functioninf#filter示例
#查询name列包含aa的记录
filters:[{col: name,opr: ct, value: aa}
]
#filter示例
#a表通过外键b_id绑定b表查询指定b_id为1的所有a
filters:[{col: b,opr: rel_o_m,value: 1}
]# 分页
page:0,
page_size:10,# 排序
order_column: $column1
order_direction: desc
2.2.3 celery定时/异步任务的开发 定时任务代码开发myapp/tasks/schedules.py 使用场景 1、定时任务比如定时删除旧的workflowtfjob,pytorchjob测试的任务服务notebook等。 定时提交定时任务的配置监控gpu资源以及在多项目组间进行资源调配 异步任务代码开发myapp/tasks/async_task.py 使用场景 1、异步任务需要花费比较长时间完成的功能比如灰度升级服务构建镜像等 任务配置config.py中CeleryConfig
2.2.4 监听crd变化 代码开发myapp/tools/watch_xx.py
使用场景监听训练和推理workflow的状态变化推送消息并通过redis缓存记录任务队列
2.2.5 调用k8s相关组件 3. 项目运行
3.1 本地运行
本地运行起来主要需要两个配置文件mysql-compose.ymldocker-compose.yml 1 启动本地的dockerwindows可启用docker-desktop
2 运行起来mysql数据库
cd ./install/docker目录下执行 docker-compose -f .\mysql-compose.yml up3.build前后端镜像 前端镜像dockerfileinstall/docker/dockerFrontend/Dockerfile 后端镜像dockerfileinstall/docker/Dockerfile.dashboard
4.修改/install/docker/docker-compose.yml中的前后端镜像并运行docker-compose, 就可以在浏览器中查看页面http://localhost:8888/frontend
docker-compose -f /install/docker/docker-compose.yml up3.2 运行容器
3.2.1 infra命名空间 如上图所示 kubeflow-dashboard后端容器 kubeflow-dashboard-frontend前端容器 kubeflow-dashboard-schedule异步、定时等任务调度容器 kubeflow-dashboard-worker异步、定时等任务工作容器 kubeflow-watch crd等监视容器 mysql数据库 redis缓存数据库记录异步、定时等任务队列
3.2.2 kubeflow命名空间