〔从零搭建〕机器学习算法平台部署指南

63 阅读6分钟

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。

✨杭州奥零数据科技官网:www.aolingdata.com

✨AllData开源项目:github.com/alldatacent…

✨Gitee组织:gitee.com/alldatacent…

摘要:机器学习算法平台基于开源项目Cube-Studio建设。它提供丰富算法库和可视化工具,支持分布式计算,具备拖拉拽任务流编排、超参搜索、模型一键开发推理微调等能力。内容主要为以下五部分:

一、在线演示环境

二、功能简介

三、源码编译部署安装

四、访问机器学习算法平台页面

五、常见问题与解决方案

💡Tips:关注「公众号」大数据商业驱动引擎

在线演示环境.jpg

🔹AllData数据中台线上正式环境:http://43.138.156.44:5173/ui_moat/ 请联系市场总监获取账号密码

官网主页.jpg

机器学习算法平台功能简介.jpg 2.1 机器学习算法平台基于开源项目Cube-Studio建设

机器学习算法平台集成了数据处理、模型训练、自动调参、模型部署等功能。 它提供丰富算法库和可视化工具,支持分布式计算,具备拖拉拽任务流编排、超参搜索、模型一键开发推理微调等能力,助力用户高效完成机器学习项目,加速AI应用开发与落地。

🔹Cube-Studio开源项目:github.com/tencentmusi… 🔹Cube-Studio文档:github.com/tencentmusi…

2.2 机器学习算法平台功能特点

  • 一站式开发
  • 可视化开发
  • 多框架支持
  • 超参搜索
  • 模型管理与监控
  • 多租户管理
  • 多种算力支持
  • 大模型支持
  • 数据管理
  • 灵活部署

功能特点.png (引用官网cube-studio图片)

源码编译部署安装.jpg

💡部署步骤:

3.1 环境准备 🔹服务器配置:建议控制端机器CPU≥16核,内存≥32GB,磁盘空间不低于500GB;任务端机器可根据实际需求配置。若需GPU加速,需配置NVIDIA GPU,并安装对应驱动和CUDA工具包。

🔹操作系统: 支持Ubuntu 20.04+或CentOS 7+。

🔹基础环境依赖: Docker版本≥19.03。Kubernetes版本1.18+,推荐使用kubeadm或RKE部署。kubectl版本≥1.18。存储方面,单机环境可挂载本地磁盘,集群环境建议使用Ceph或NFS,并配置StorageClass。网络方面,确保Kubernetes集群网络与外部网络互通,配置Ingress Controller(如Nginx)以支持外部访问。

3.2 获取源码

🔹版本选择: 建议使用与AllData商业版兼容的Cube-Studio版本。

3.3 编译构建

🔹安装必要工具: 在一台全新的服务器上,需要先安装docker和k8s。由于rancher能管理k8s集群,可直接安装rancher。例如,安装docker的步骤包括设置docker存储库、添加官方秘钥、设置稳定存储库,然后安装指定版本的docker。

🔹构建过程: 根据源码提供的构建文档,使用相应的构建工具(如Maven等)进行编译构建。

3.4 部署及运行配置

🔹安装rancher:

  • 使用命令sudo docker run -d --privileged --restart=unless-stopped -p 443:443 rancher/rancher:v2.5.2进行安装。
  • 安装完成后,使用公网ip + 443端口打开rancher页面,设置密码,去掉allow collection of anonymous statistics,勾选上I agree to the Terms and Conditions for using Rancher。

🔹配置K8S集群

  • 进入rancher后,addcluster,后面可以在右下角选择把语言切换成中文。选择自定义,修改yaml文件,在kube_api部分用指定内容替换,并新增kubelet部分,注意空格对齐。
  • 主机选项把以上三个角色都勾选,并复制命令到服务器中执行,点击完成。

🔹安装cube-studio:

  • 下载Cube-Studio后,点击进入集群,打开kubeconfig文件,点击左下方的复制到剪贴板,在服务器中切换到/cube-studio/install/kubernetes目录下,新增一个config文件,将复制的内容添加到config文件中,并执行命令sudo sh start.sh [内网ip](这里的ip记得改成实际的内网ip)。

  • 运行结束后,打开外网ip,如http://[外网ip],还需要移动一下命名空间,能打开即为成功。若不成功,可以在rancher中查看是哪个组件安装失败,有时候是因为网络问题拉取镜像失败,可以重新拉取一次,或者需要手动拉取,或提bug给开源项目。

3.5 可选配置

🔹镜像管理: 使用私有镜像仓库(如Harbor)存储Cube-Studio及相关依赖镜像,避免镜像拉取失败。

🔹资源隔离: 配置Kubernetes Namespaces和Resource Quotas,实现租户间资源隔离。

🔹版本兼容: 确保Cube-Studio版本与Kubernetes、Docker版本兼容,避免API不兼容问题。

3.6 监控与运维

🔹健康检查: 配置livenessProbe和readinessProbe,避免僵尸Pod占用资源。监控关键指标:

kube_pod_container_status_restarts_total、etcd_server_has_leader。

🔹日志管理 使用EFK(Elasticsearch+Fluentd+Kibana)集中存储日志,保留周期≥30天。 关键错误(如OOMKilled)需配置告警规则。

🔹备份恢复 定期备份etcd数据(建议每小时增量备份,每天全量备份)。 恢复测试需在隔离环境验证,避免生产环境数据污染。

访问机器学习算法平台页面.jpg

4.1 功能概览-机器学习中心 1_功能概览-机器学习中心.jpg

4.2 机器学习算法平台-新建流水线 2_机器学习算法平台-新建流水线.jpg

4.3 决策树训练部署 3_决策树训练部署.jpg

4.4 项目空间-项目分组 4_项目空间-项目分组.jpg

4.5 添加项目分组 5_添加项目分组.jpg

4.6 项目分组详情 6_项目分组详情.jpg

4.7 修改项目分组 7_修改项目分组.jpg

4.8 项目空间-模版分类 8_项目空间-模版分类.jpg

4.9 添加模版分组 9_添加模版分组.jpg

4.10 模版分组详情 10_模版分组详情.jpg

4.11 修改模版分组 11_修改模版分组.jpg

4.12 项目空间-安全设置 12_项目空间-安全设置.jpg

4.13 添加用户 13_添加用户.jpg

4.14 用户详情 14_用户详情.jpg

4.15 修改用户 15_修改用户.jpg

4.16 项目空间-日志列表 16_项目空间-日志列表.jpg

4.17 数据资产-数据探索-sqllab 17_数据资产-数据探索-sqllab.jpg

4.18 任务详情 18_任务详情.jpg

4.19 数据资产-元数据-库表 19_数据资产-元数据-库表.jpg 20_数据资产-元数据-库表.jpg 21_数据资产-元数据-库表.jpg 22_数据资产-元数据-库表.jpg

4.20 数据资产-元数据-指标 23_数据资产-元数据-指标.jpg 24_数据资产-元数据-指标.jpg 25_数据资产-元数据-指标.jpg 26_数据资产-元数据-指标.jpg

4.21 数据资产-元数据-维表 27_数据资产-元数据-维表.jpg 28_数据资产-元数据-维表.jpg

4.22 数据资产-媒体数据-数据集 29_数据资产-媒体数据-数据集.jpg 30_数据资产-媒体数据-数据集.jpg 31_数据资产-媒体数据-数据集.jpg 32_数据资产-媒体数据-数据集.jpg

4.23 导出数据 33_导出数据.jpg

4.24 在线开发-镜像仓库 34_在线开发-镜像仓库.jpg 35_在线开发-镜像仓库.jpg 36_在线开发-镜像仓库.jpg 37_在线开发-镜像仓库.jpg

4.25 在线开发-镜像构建 38_在线开发-镜像构建.jpg

4.26 在线开发-镜像管理 39_在线开发-镜像管理.jpg 40_在线开发-镜像管理.jpg 41_在线开发-镜像管理.jpg 42_在线开发-镜像管理.jpg

4.27 在线开发-代码开发-notebook 43_在线开发-代码开发-notebook.jpg 44_在线开发-代码开发-notebook.jpg

4.28 在线开发-数据开发-任务ETL 45_在线开发-数据开发-任务ETL.jpg 46_在线开发-数据开发-任务ETL.jpg 47_在线开发-数据开发-任务ETL.jpg 48_在线开发-数据开发-任务ETL.jpg

4.29 在线开发-数据开发-任务管理 49_在线开发-数据开发-任务管理.jpg

4.30 模型训练-任务模版 50_模型训练-任务模版.jpg 51_模型训练-任务模版.jpg 52_模型训练-任务模版.jpg 53_模型训练-任务模版.jpg

4.31 模型训练-任务流 54_模型训练-任务流.jpg 55_模型训练-任务流.jpg 56_模型训练-任务流.jpg 57_模型训练-任务流.jpg

4.32 模型训练-任务流-定时调度 58_模型训练-任务流-定时调度.jpg

4.33 模型训练-任务流-运行实例 59_模型训练-任务流-运行实例.jpg

4.34 模型训练-Automl-超参搜索 60_模型训练-Automl-超参搜索.jpg 61_模型训练-Automl-超参搜索.jpg 62_模型训练-Automl-超参搜索.jpg 63_模型训练-Automl-超参搜索.jpg

4.35 服务化-整体资源 64_服务化-整体资源.jpg

4.36 服务化-内部服务 65_服务化-内部服务.jpg 66_服务化-内部服务.jpg 67_服务化-内部服务.jpg 68_服务化-内部服务.jpg

4.37 服务化-模型服务-模型管理 69_服务化-模型服务-模型管理.jpg 70_服务化-模型服务-模型管理.jpg 71_服务化-模型服务-模型管理.jpg 72_服务化-模型服务-模型管理.jpg

4.38 服务化-模型服务-推理服务 73_服务化-模型服务-推理服务.jpg 74_服务化-模型服务-推理服务.jpg 75_服务化-模型服务-推理服务.jpg 76_服务化-模型服务-推理服务.jpg

常见问题与解决方案.jpg

5.1 Pod启动失败:

  • 检查kubectl describe pod中的Events,常见原因包括镜像拉取失败、资源不足、权限问题。
  • 使用kubectl logs --previous查看前一个容器的日志。

5.2 服务不可用:

  • 检查Ingress的Backend状态,如为UNHEALTHY需调整健康检查参数。
  • 使用telnet测试端口连通性,确认防火墙规则。

5.3 性能瓶颈:

  • 使用kubectl top监控节点资源使用率,CPU超过80%需扩容。
  • 检查存储IOPS,如低于1000需优化存储配置。