cube-studio/README.md
2024-06-22 10:45:40 +08:00

401 lines
31 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cube Studio
[English](README_EN.md) | 简体中文
### 整体架构
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/a07b1742-3413-4957-bd15-0f2b3c30f66f)
# 帮助文档
https://github.com/tencentmusic/cube-studio/wiki
# 开源共建
学习、部署、体验、开源建设、商业合作 欢迎来撩。或添加微信luanpeng1234备注<开源建设>
<img border="0" width="20%" src="https://user-images.githubusercontent.com/20157705/219829986-66384e34-7ae9-4511-af67-771c9bbe91ce.jpg" />
# 功能清单
cube studio是 腾讯音乐 开源的一站式云原生机器学习平台,目前主要包含
|模块分组|功能模块|功能清单|
|:-|:--|:--|
|基础能力|项目组管理|<li>AI平台需要通过项目划分<li>支持配置相应项目组用户的权限,<li>任务/服务的挂载,资源组,集群,服务代理,<li><u>项目组内角色应用|
|基础能力|网络|<li>支持非80端口<li>支持公网/域名,<li>支持反向代理和内网穿透方式访问,<li><u>支持https</u>|
|基础能力|用户管理 角色管理/权限管理|<li>管理平台用户的基本信息组织架构支持账号密码rbac权限体系。<li> <u>增加修改和删除,清理等操作的历史记录</u>|
|基础能力|计量计费功能|<u><li>1、支持平台资源限制的分配和查看项目组资源限制租户资源限制、任务资源限制项目组下个人的资源限制包括开发资源训练资源、推理资源等。   额度限制限制在notebookdocker构建pipeline超参搜索内部服务推理服务中的生效。限制支持单任务并行任务总和和历史任务总和等方法<li>2、提供统一的开发、训练、推理服务资源监控从租户、项目、任务角度分析模型资源分配及使用情况。<li> 3、支持自定义计费模式通过计量结果自定义获取计费值</u>|
|基础能力|SSO单点登录|<li>账号密码注册自动登录,<li><u>支持对接公司账号体系AUTH_OID/AUTH_LDAP/AUTH_REMOTE_USER等登录注册方式<li><u>支持消息推送。 <li><u>增加登录验证,强密码,远程用户,登录频率限制,密码密文传输等|
|基础能力|支持多种算力|<li>提供多种规格的资源支持不同的使用场景cpu/gpu等 支持T4/V100/A100等多种卡型<li><u>支持arm64芯片<li><u>支持vgpu等模式。<li><u>支持国产gpu支持调度海光dcu华为npu寒武纪mlu天数智芯GPU<li><u>支持rdma调度mellanox。<li><u>支持gpu禁用模型共享模式独占模式|
|基础能力|多资源组/多集群|<li>支持划分多资源组,<li>支持ipvs的k8s网络模式<li><u>支持多k8s集群<li>支持containerd容器运行态|
|基础能力|边缘集群|<li><u>支持边缘集群模式,支持边缘节点开发,训练,推理|
|基础能力|serverless集群模式|<li><u>支持腾讯云serverless集群模式notebook,pipeline,推理服务模块支持)<li><u>阿里云serverless集群模式notebook,pipeline,推理服务模块支持)|
|基础能力|数据库存储|<li>支持外部mysql作为元数据库<li><u>支持外部postgres作为元数据库|
|基础能力|机器资源管理|<li><u>web界面控制机器调度类型所属资源组是否启动rdma是否启动vgpu可用任务场景等|
|基础能力|存储盘管理|<li><u>支持web界面添加存储盘支持项目组绑定notebook pipeline 推理服务直接在pod中挂载外部分布式存储。<li><u>支持nfscfsossnascosglusterfscephfss3/minio|
|基础能力|国际化能力|<li><u>mlops支持配置多语言配置目前支持中英文|
|数据管理|数据地图|<li>元数据库表管理,指标,维表|
|数据管理|数据计算|<li>sqllab交互查询支持mysql<u>postgresqlclickhousehivepresto</u>等计算引擎|
|数据管理|ETL编排|<li>数据ETL任务流编排任务管理等对接公司数据中台相应计算/调度引擎|
|数据管理|数据集管理|<li>允许用户随时上传样本集(图片、音频、文本等),<li><u>支持sdk进行数据集对接<li><u>支持数据集一键探索功能|
|数据管理|数据标注|<li><u>支持标注平台,图/文/音/多模态各类型标注能力,<li><u>对接一站式机器学习平台,支持自动化标注(需购买aihub)<li><u>支持目标识别目标边界识别目标遮罩识别图片分类图片描述ocr关键点检测。支持大模型自动化标注文本分类文本翻译命名实体识别阅读理解问答摘要提取。|
|开发环境|镜像功能|<li>镜像仓库/镜像管理/在线构建镜像。同时提供平台所有镜像,包括模板镜像/服务镜像/notebook镜像/gpu基础环境的构建方法和构建后镜像<li><u>支持dockerfile在线构建 <li><u>支持同一仓库多个秘钥配置|
|开发环境|notebook|<li>支持基于开源的Jupyterlab/vscode提供在线的交互式开发调试工具<li>提供多种可选环境ide和开发示例支持资源类型选择 支持大数据版本,机器学习版本,深度学习版本 <li><u>大数据版本支持用户信息hdfs客户端hive客户端和spark客户端 <li>支持ssh remote与notebook对接远程开发方便快速将本地代码提交到平台的训练环境。<li><u>ssh隧道代理单端口开放 <li><u>支持matlabRstudio等在线ide <li><u>支持gpucpu内存监控支持git交互 <li><u>支持自定义notebook镜像便于封装公司自己的notebook <li><u>多环境notebook支持R语言/julia语言/python2.7/python3.6/python3.7/python3.8/python3.9/python3.10环境和cube-studio专有环境 <li><u>支持tensorboard任务可视化 <li><u>notebook支持环境镜像保存 <li><u>jupyter支持密码保护 <li><u>notebook支持整卡占用虚拟卡占用gpu共享占用 <li>支持notebook启动自动初始化环境|
|模型训练|拖拉拽任务流编排调试|<li>提供拖拽式交互开发环境支持开发者以拖拽的方式完成业务逻辑的PIPLINE <li>支持单任务调试,<li>训练支持多种资源规格CPU、GPU等支持卡型的选择超时重试等。<li><u>任务支持独占和共享占用gpu</u></li><li><u>分布式任务模板支持单任务调试用户镜像而非模板镜像</u> <li><u>支持rdma资源占用 <li><u>支持gpu不同厂商不同卡型的占用 <li><u>分布式任务模板支持gpu型号透传rdma资源透传拉取秘钥透传 </u><li>pipeline调试支持定时调度补录并发限制超时实例依赖等<li>任务管理,<li>workflow实例管理<li>资源监控,<li><u>支持任务输入输出,<li><u>任务流全局变量,<li><u>文本/图片/echart结果可视化<li><u>支持workflow暂停和恢复。<li><u>支持任务流优先级 <li><u>支持单任务和pipeline运行中任务监听端口提供运行中服务监听能力 <li><u>任务流支持任务推荐<li><u>定时调度支持最大保留实例数<li><u>pipeline支持任务流优先级|
|模型训练|主流功能算子|基础算子:<li>自定义镜像,<li><u>逻辑节点,</u><li><u>python</u></li> 数据同步:<li>数据集导入,<u>(支持huggingface数据集)</u><li>datax<u>datax-import</u></li><li>模型导入<u>(支持huggingface模型)</u></li> 数据处理工具:<li>hadoop/spark作业提交<li>volcanojob/ray分布式数据处理<li>sparkjob </li> <li><u>hadoop支持hadfshive命令spark命令</u></li> 特征处理: <u><li>-数据合并包含union、join操作 <li>-去除重复样本 <li>-数据变换包括boxcox转换、二值化、数据类型转换、dct变换、根据函数转换、ma移动平均、多项式展开 <li>-非数值型变量处理包括hash、根据统计量转换、one-hot <li>-异常值检测 <li>-获取变量的统计量 <li>-去除值过于单一的变量 <li>-删除缺失率过高的值 <li>-删除缺失率过高的值 <li>-填充缺失值 <li>-数据离散化,等宽、等频、聚类离散化 <li> -标准化、正则化、归一化有最大绝对值归一化、最大最小归一化、z_score标准化 <li>-索引处理,包含增加索引、索引转列、列索引重命名 <li> -排序 <li> -执行sql <li> -hadamard乘积 <li> -特征组合,用于衍生特征 <li> -降维包括pca降维和卡方降维 <li> -特征重要性通过随机森林、逻辑回归、xgboost等模型计算特征重要性可计算特征的iv值、互信息值、方差等 <li> -特征向量间的相关性计算 <li> -数据拆分包括列内拆分、列间拆分、行间拆分、svd奇异值分解 <li> -采样,包括随机采样、分层采样、过采样、欠采样</li></u> 传统机器学习:<li>ray-sklearn分布式<li>xgb单机训练推理 </li>传统机器学习算法:<u><li>ar/arima时间序列算法/random-forest/random-forest-regression/lr/lightgbm/knn/kmean/gbdt/decision-tree/pca/lda/catboost/xgb/超参搜索 </u></li>分布式深度学习框架:<li>tf/pytorch/<u>mxnet/horovod/paddlejob/mindspore分布式训练</u></li> 分布式加速框架:<li><u>mpi/colossalai/deepspeed/horovod/megatron </u></li>模型处理:<u><li>模型评估,<li>模型格式转换 </li></u>模型服务化:<li>模型注册,<li><u>模型离线推理</u><li>模型部署 </li>媒体分布式处理:<li>分布式媒体下载,<li>视频提取图片,<li>视频提取图片|
|模型训练|算子自定义|支持算子自定义通过web界面操作将自定义算法代码镜像注册为可被他人复用的pipeline算子|
|模型训练|自动学习|面向非AI背景的用户提供自动学习服务用户选择某一个场景之后上传训练数据即可自动开始训练和模型部署<u>支持示例automl任务流导入导出|
|模型训练|自定义镜像|面向高级 AI 开发者,提供自定义训练作业(执行环境 + 代码)功能;|
|模型训练|自动调参|基于单机/<u>分布式自动超参搜索|
|模型训练|TensorBoard作业|<u>实时/离线观察模型训练过程中的参数和指标变化情况|
|模型管理 推理服务|内部服务|支持开发或运维工具快捷部署提供mysql-webpostgresql webmobgo web redis webneo4jrstudio等开源工具|
|模型管理 推理服务|模型管理|模型管理用于对模型多版本管理,支持模型发布为推理服务|
|模型管理 推理服务|推理服务|<li>支持<u>ml</u>/tf/pytorch/tentortrt/onnx常规模型的多版本的0代码发布。 <li>支持gpu卡型选择<u>支持vgpu独占共享占用</u><li>支持cpu/mem/<u>gpu等弹性伸缩<li>支持服务优先级,</u><li>支持远程模型路径,支持流量分流流量复制sidecar配置支持泛域名配置支持配置文件挂载启动目录/命令/环境变量/端口/指标/健康检查等 支持调试环境/测试环境/生产环境 支持域名/ip代理多种形式 <li>支持服务负载指标监控 <li>支持多版本服务滚动升级和回滚,<li><u>支持单pod滚动发布 </u><li><u>支持禁用k8s service负载均衡器 </u><li><u>支持大模型分布式推理 </u><li>提供<u>ml</u>/tf/pytorch/tentortrt/onnx常规模型推理服务镜像 支持用户自定义模型推理镜像<li><u>支持定时伸缩容</li><li><u>支持配置服务的jwt认证功能</li>|
|监控|整体资源|<li>所有集群所有计算机器的使用情况包括机器的所属集群所属资源组机器ipcpu/gpu类型和卡型当前cpu/内存/gpu的使用率<li> 所有集群所有计算pod的使用情况包括pod所属集群所属资源组所属命名空间调度ippod名称启动用户cpugpu内存的申请使用率 <li><u>整体资源页面,支持管理员批量删除|
|监控|监控体系|<li>所有机器的gpu资源的使用情况 <li>所有机器的内存/cpu/网络io/磁盘io的负载情况 <li>所有pod的内存/cpu/gpu/网络io负载情况 <li>所有推理服务的内存/cpu/gpu/qps/吞吐/vgpu负载情况 <li><u>支持ib流量监控|
|模型应用市场|模型应用管理方案|<li><u>提供cubestudio sdk提供模型开发规范和使用规范|
|模型应用市场| 模型应用管理方案|<li><u>提供web端模型应用体验支持同步/异步推理|
|模型应用市场| 模型应用管理方案|<li><u>提供开发多个python cuda版本的基础镜像|
|模型应用市场|预训练模型|<li><u>提供视觉听觉nlp多模态等400+预训练模型提供预训练模型的模型加载和推理能力可直接一键部署服务并提供api|
|模型应用市场|模型市场|<li><u>aihub应用对接cube-studio平台进行卡片式展示|
|模型应用市场|模型一键开发|<li><u>提供一键转notebook开发提供符合当前模型所需环境的jupyter|
|模型应用市场|模型一键微调|<li><u>支持一键转pipeline微调链路包括示例数据集下载微调模型注册模型部署支持微调后模型部署|
|模型应用市场|模型一键部署web|<li><u>提供模型一键部署提供手机端和pc端web界面和api和demo示例弹窗演示|
|模型应用市场|模型自动化标注|<li><u>支持部署对接labelstudio自动化标注|
|模型应用市场|数据集sdk|<li><u>支持通过python sdk搜索上传下载数据集支持数据集的加解密/解压缩/数据集基础信息查看等|
|模型应用市场|notebook sdk|<li><u>支持通过api对接cube-studio创建notebook并跳转到指定目录用于其他算法平台在当前平台的调试和演示|
|模型应用市场|pipeline训练sdk|<li><u>支持AI开发主流语言 Python提供Python SDK支持用户通过SDK来进行pipeline任务流管理和训练任务启动以及任务流编排|
|模型应用市场|推理服务sdk|<li><u>提供python sdk对接cube tudio进行推理服务的发布服务升级|
|大模型|大模型分布式多机多卡|<li><u>支持分布式多机多卡训练例如mpi/deepspeed/Colossal-AI|
|大模型|支持大模型推理aihub形式|<li><u>支持openjourney/gpt3/yuan/sd-v1.5/sd-v2/sd-v3/Stable Cascade/Stable Diffusion XL/chatglm/chatglm2/chatglm3/chatglm4/llama/llama2/llama3/chinese-llama2/chinese-alpaca/llama2-chinese/qwen/baichuan2/qwen2/gemma/yi/aquilachat2部署|
|大模型|支持大模型推理openai接口|<li><u>支持fastchat+vllm大模型推理支持推理加速+流式接口|
|大模型|支持大模型微调|<li><u>支持chatglm2/chatglm3/chatglm4/llama2-chinese/llama3-chinese/baichuan2/qwen2 lora微调支持llama-factory 100+llm微调|
|大模型|智能对话|<li><u>提供支持多场景对话支持提示词构建推理接口配置llm问答支持问询中模型切换清理历史上下文|
|大模型|私有知识库|<li><u>私有知识库配置,私有知识库召回|
|大模型|私有知识库|<li><u>支持召回列表模式|
|大模型|私有知识库|<li><u>支持aigc模式|
|大模型|私有知识库|<li><u>支持微信公众号服务号对接|
|大模型|私有知识库|<li><u>支持企业微信群聊机器人对接|
|大模型|私有知识库|<li><u>支持钉钉群聊机器人对接|
# 支持模板
提示:
- 1、可自由定制任务插件更适用当前业务需求
| 模块 | 模板 | 类型 | 文档地址 |
|:-------|:----------------------| :---- |:---- |
| 数据导入导出 | datax | 单机 | job-template/job/datax/README.md
| 数据导入导出 | 数据集导入 | 单机 | job-template/job/dataset/README.md
| 数据导入导出 | 模型导入 | 单机 | job-template/job/model_download/README.md
| 数据预处理 | data-process | 单机 | job-template/job/data-process/README.md
| 数据处理工具 | hadoop | 单机 | job-template/job/hadoop/README.md
| 数据处理工具 | ray | 分布式 | job-template/job/ray/README.md
| 数据处理工具 | volcanojob | 分布式 | job-template/job/volcano/README.md
| 特征处理 | feature-process | 单机 | job-template/job/feature-process/README.md
| 机器学习框架 | ray-sklearn | 分布式 | job-template/job/ray_sklearn/README.md
| 机器学习算法 | random_forest | 单机 | job-template/job/random_forest/README.md
| 机器学习算法 | lr | 单机 | job-template/job/lr/README.md
| 机器学习算法 | lightgbm | 单机 | job-template/job/lightgbm/README.md
| 机器学习算法 | knn | 单机 | job-template/job/knn/README.md
| 机器学习算法 | kmeans | 单机 | job-template/job/kmeans/README.md
| 机器学习算法 | nni | 单机 | job-template/job/hyperparam-search-nni/README.md
| 机器学习算法 | xgb | 单机 | job-template/job/xgb/README.md
| 机器学习算法 | gbdt | 单机 | job-template/job/gbdt/README.md
| 机器学习算法 | decision-tree | 单机 | job-template/job/decision_tree/README.md
| 机器学习算法 | bayesian | 单机 | job-template/job/bayesian/README.md
| 机器学习算法 | adaboost | 单机 | job-template/job/adaboost/README.md
| 深度学习 | tfjob | 分布式 | job-template/job/tf/README.md
| 深度学习 | pytorchjob | 分布式 | job-template/job/pytorch/README.md
| 深度学习 | paddle | 分布式 | job-template/job/paddle/README.md
| 深度学习 | mxnet | 分布式 | job-template/job/mxnet/README.md
| 深度学习 | mindspore | 分布式 | job-template/job/mindspore/README.md
| 深度学习 | horovod | 分布式 | job-template/job/horovod/README.md
| 深度学习 | mpi | 分布式 | job-template/job/mpi/README.md
| 深度学习 | colossalai | 分布式 | job-template/job/colossalai/README.md
| 深度学习 | deepspeed | 分布式 | job-template/job/deepspeed/README.md
| 深度学习 | megatron | 分布式 | job-template/job/megatron/README.md
| 模型处理 | model-evaluation | 单机 | job-template/job/model_evaluation/README.md
| 模型服务化 | model-convert | 单机 | job-template/job/model_convert/README.md
| 模型服务化 | model-register | 单机 | job-template/job/model_register/README.md
| 模型服务化 | deploy-service | 单机 | job-template/job/deploy-service/README.md
| 模型服务化 | model-offline-predict | 分布式 | job-template/job/model_offline_predict/README.md
| 多媒体类 | media-download | 分布式 | job-template/job/video-audio/README.md
| 多媒体类 | video-img | 分布式 | job-template/job/video-audio/README.md
| 多媒体类 | video-audio | 分布式 | job-template/job/video-audio/README.md
| 大模型 | llama2 | 单机多卡 | job-template/job/llama2/README.md
| 大模型 | chatglm2 | 单机多卡 | job-template/job/chatglm2/README.md
| 大模型 | chatglm3 | 单机多卡 | job-template/job/chatglm3/README.md
| 大模型 | chatglm4 | 单机多卡 | job-template/job/chatglm4/README.md
| 大模型 | baichuan2 | 单机多卡 | job-template/job/baichuan2/README.md
| 大模型 | qwen2 | 单机多卡 | job-template/job/qwen2/README.md
| 大模型 | llama-factory | 单机多卡 | job-template/job/llama_factory/README.md
# 公司
![图片 1](https://user-images.githubusercontent.com/20157705/223387901-1b922d96-0a79-4542-b53b-e70938404b2e.png)
# 平台简介
完整的平台包含
- 1、机器的标准化
- 2、分布式存储(单机可忽略)、k8s集群、监控体系(prometheus/efk/zipkin)
- 3、基础能力(tf/pytorch/mxnet/valcano/ray等分布式nni/katib超参搜索)
- 4、平台web部分(oa/权限/项目组、在线构建镜像、在线开发、pipeline拖拉拽、超参搜索、推理服务管理等)
<img width="1437" alt="image" src="https://user-images.githubusercontent.com/20157705/182564530-2c965f5f-407d-4baa-8772-73cb2645901b.png">
# 算力/存储/用户管理
算力:
- 云原生统筹平台cpu/gpu等算力
- 支持划分多资源组支持多k8s集群多地部署
- 支持T4/V100/A100/昇腾/dcu/VGPU等异构GPU/NPU环境
- 支持边缘集群模式,支持边缘节点上开发/训练/推理
- 支持鲲鹏芯片arm64架构RDMA
存储:
- 自带分布式存储,支持多机分布式下文件处理
- 支持外部存储挂载,支持项目组挂载绑定
- 支持个人存储空间/组空间等多种形式
- 平台内存储空间不需要迁移
用户权限:
- 支持sso登录对接公司账号体系
- 支持项目组划分,支持配置相应项目组用户的权限
- 管理平台用户的基本信息组织架构rbac权限体系
# 多集群管控
cube支持多集群调度可同时管控多个训练或推理集群。在单个集群内不仅能做到一个项目组内对在线开发、训练、推理的隔离还可以做到一个k8s集群下多个项目组算力的隔离。另外在不同项目组下的算力间具有动态均衡的能力能够在多项目间共享公共算力池和私有化算力池做到成本最低化。
![image](https://user-images.githubusercontent.com/20157705/167534695-d63b8239-e85e-42c4-bc7b-5999b9eff882.png)
# 分布式存储
cube会自动为用户挂载用户的个人目录同一个用户在平台任何地方启动的容器其用户个人子目录均为/mnt/$username。可以将pvc/hostpath/memory/configmap等挂载成容器目录。同时可以在项目组中配置项目组的默认挂载进而实现一个项目组共享同一个目录等功能。
![image](https://user-images.githubusercontent.com/20157705/167534724-733ad796-745e-47e1-9224-9e749f918cf2.png)
# 在线开发
- 系统多租户/多实例管理,在线交互开发调试,无需安装三方控件,只需浏览器就能完成开发。
- 支持vscodejupyterMatlabRstudio等多种在线IDE类型
- Jupyter支持cube-studio sdkJuliaRpythonpyspark多内核版本
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/0819214b-d7c1-421a-8978-465f20b8d594)
- 支持c++javaconda等多种开发语言以及tensorboard/git/gpu监控等多种插件
- 支持ssh remote与notebook互通本地进行代码开发
- 在线镜像构建通过Web Shell方式在浏览器中完成构建并提供各种版本notebookinferencegpupython等基础镜像
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/5793beea-715d-40e2-a01f-8d36939e35bd)
# 标注平台:
- 支持图/文/音/多模态/大模型多种类型标注功能,用户管理,工作任务分发
- 对接aihub模型市场支持自动化标注对接数据集支持标注数据导入对接pipeline支持标注结果自动化训练
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/a70eb024-77b8-4fe9-9b3e-0f0187470c23)
# 拖拉拽pipeline编排
1、Ml全流程
数据导入数据预处理超惨搜索模型训练模型评估模型压缩模型注册服务上线ml算法全流程
2、灵活开放
支持单任务调试、分布式任务日志聚合查看pipeline调试跟踪任务运行资源监控以及定时调度功能(包含补录,忽略,重试,依赖,并发限制,过期淘汰等功能)
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/17d8fc5c-8c13-48ed-934b-bdaffceab4e9)
# 分布式框架
1、训练框架支持分布式协议和策略
2、代码识别分布式角色有状态
3、控制器部署分布式训练集群operator
4、配置分布式训练集群的部署CRD
# 多层次多类型算子
以k8s为核心
1、支持tf分布式训练、pytorch分布式训练、spark分布式数据处理、ray分布式超参搜索、mpi分布式训练、horovod分布式训练、nni分布式超参搜索、mxnet分布式训练、volcano分布式数据处理、kaldi分布式语音训练等
2、 以及在此衍生出来的分布式的数据下载hdfs拉取cos上传下载视频采帧音频抽取分布式的训练例如推荐场景的din算法ComiRec算法MMoE算法DeepFM算法youtube dnn算法ple模型ESMM模型双塔模型音视频的wenetcontainAI等算法的分布式训练。
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/b88580a2-a8bb-47e4-9701-008be2960f73)
# 功能模板化
- 和非模板开发相比,使用模板建立应用成本会更低一些,无需开发平台。
- 迁移更加容易,通过模板标准化后,后续应用迁移迭代只需迁移配置模板,简化复杂的配置操作。
- 配置复用,通过简单的配置就可以复用这些能力,算法与工程分离避免重复开发。
为了避免重复开发对pipeline中的task功能进行模板化开发。平台开发者或用户可自行开发模板镜像将镜像注册到平台这样其他用户就可以复用这些功能。平台自带模板在job-template目录下
![image](https://user-images.githubusercontent.com/20157705/167534770-505ffce8-8172-49be-9506-b265cd6ed465.png)
# 流水线调试
- Pipeline调试支持定时执行支持补录并发限制超时实例依赖等。
- Pipeling运行支持变量在任务间输入输出全局变量流向控制模板变量数据时间等
- Pipeling运行支持任务结果可视化图片、csv/jsonechart源码可视化
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/3d24ac7c-24d8-4192-9575-477665836da0)
# nni超参搜索
界面化呈现训练各组数据,通过图形界面进行直观呈现。
减少以往开发调参过程的枯燥感,让整个调参过程更加生动具有趣味性,完全无需丰富经验就能实现更精准的参数控制调节。
```bash
# 上报当前迭代目标值
nni.report_intermediate_result(test_acc)
# 上报最终目标值
nni.report_final_result(test_acc)
# 接收超参数为输入参数
parser.add_argument('--batch_size', type=int)
```
![image](https://user-images.githubusercontent.com/20157705/167534784-255f101a-3273-4eea-9254-f2df6879ddf1.png)
# 推理服务
0代码发布推理服务从底层到上层包含服务网格serverlesspipelinehttp框架模型计算。
- 服务网格阶段:主要工作是代理流量的中转和管控,例如分流,镜像,限流,黑白名单之类的。
- serverless阶段主要为服务的智能化运维例如服务的激活伸缩容版本管理蓝绿发布。
- pipeline阶段主要为请求在各数据处理/推理之间的流动。推理的前后置处理逻辑等。
- http/grpc框架主要为处理客户端的请求准备推理样本推理后作出响应。
- 模型计算模型在cpu/gpu上对输入样本做前向计算。
主要功能:
- 支持模型管理注册灰度发布版本回退模型指标可视化以及在piepline中进行模型注册
- 推理服务支持多集群多资源组异构gpu环境平台资源统筹监控VGPU服务流量分流复制sidecar
- 支持0代码的模型发布gpu推理加速支持训练推理混部服务优先级自定义指标弹性伸缩。
![image](https://user-images.githubusercontent.com/20157705/167534820-9202851a-a97c-41f7-8d63-900d73e4c57e.png)
# 监控和推送
监控cube-studio集成prometheus生态可以监控包括主机进程服务流量gpu等相关负载并配套grafana进行可视化
推送cube-studio开放推送接口可自定义推送给企业oa系统
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/8e767e8f-b7ef-4015-907f-95cb46b37ed8)
# AIHub
- 系统自带通用模型数量400+,覆盖绝大数行业场景,根据需求可以不断扩充。
- 模型开源、按需定制,方便快速集成,满足用户业务增长及二次开发升级。
- 模型标准化开发管理大幅降低使用门槛开发周期时长平均下降30%以上。
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/03923858-49b4-4430-90e0-94e90735f8b4)
- AIHub模型可一键部署为WEB端应用手机端/PC端皆可实时查看模型应用效果
- 点击模型开发即可进入notebook进行模型代码的二次开发实现一键开发
- 点击训练即可加入自己的数据进行一键微调,使模型更贴合自身场景
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/561b670d-797c-47b5-93fc-de0de7e4b915)
# GPT训练微调
- cube-studio支持deepspeed/colossalai等分布式加速框架可一键实现大模型多机多卡分布式训练
- AIHub包含gpt/AIGC大模型可一键转为微调pipeline修改为自己的数据后便可以微调并部署
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/d3589c4b-afca-44bd-8270-2b542ec4ceaa)
# GPT-RDMA
rdma插件部署后k8s机器可用资源
```bash
capacity:
cpu: '128'
memory: 1056469320Ki
nvidia.com/gpu: '8'
rdma/hca: '500'
```
代码分布式训练中使用IB设备
```bash
export NCCL_IB_HCA=mlx5
export MLP_WORKER_GPU=$GPU_NUM
export MLP_WORKER_NUM=$WORLD_SIZE
export MLP_ROLE_INDEX=$RANK
export MLP_WORKER_0_HOST=$MASTER_ADDR
export MLP_WORKER_0_PORT=$MASTER_PORT
```
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/d53e6a99-4053-4931-9456-cb857dc69723)
# gpt私有知识库
- 数据智能模块可配置专业领域智能对话快速敏捷使用llm
- 可为某个聊天场景配置私有知识库文件支持主题分割语义embedding意图识别概要提取多路召回排序多种功能融合
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/f207cb09-1b5e-486c-91c0-a9ce31863e34)
# gpt智能聊天
- 可以将智能会话与AIHub相结合例如下面AIGC模型与聊天会话
- 可使用Autogpt方式串联所有aihub模型进行图文音智能化处理
- 智能会话与公共直接打通,可在微信公众号中进行图文音对话
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/eb62c8a9-7f89-4898-90d8-d544dd73251c)
# 数据中台对接
为了加速AI算法平台的使用cube-studio支持对接公司原有数据中台包括数据计算引擎sqllab元数据管理指标管理维表管理数据ETL数据集管理
![image](https://github.com/tencentmusic/cube-studio/assets/20157705/a9a0b399-8d02-4d19-8198-4e3681074f2f)
### 实时训练
tmeps支持tf框架实时训练秒级上线能应对embedding稀疏大模型推荐场景
![image](https://user-images.githubusercontent.com/20157705/167534836-418855cf-daef-45a5-85c9-3bb1b7135f4f.png)
# 三种方式部署
针对企业需求,根据不同场景对计算实时性的不同需求,可以提供三种建设模式
模式一:私有化部署——对数据安全要求高、预算充足、自己有开发能力
模式二:边缘集群部署——算力分散,多个子网环境的场景,或边缘设备场景
模式三serverless集群——成本有限按需申请算力的场景
## 边缘计算
通过边缘集群的形式在中心节点部署平台并将边缘节点加入调度每个私有网用户通过项目组将notebookpipelineservice部署在边缘节点
- 1、避免数据到中心节点的带宽传输
- 2、避免中心节点的算力成本充分利用边缘节点算力
- 3、避免边缘节点的运维成本
![图片 1](https://user-images.githubusercontent.com/20157705/170262037-12ad086a-c427-4746-a0fa-ce3bc1586729.png)