littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于Kubernetes的云上飞桨深度学习平台

项目简介

本项目是一个基于Kubernetes的全面开源开放、技术领先、功能完备的产业级深度学习平台。旨在助力飞桨用户快速达成深度学习工作流的上云需求,提供一系列云原生组件与工具,方便用户在云上开展模型训练与部署工作。

项目的主要特性和功能

Web UI层

  • JupyterHub:支持多用户隔离的交互式编程入口,适用于算法团队多人协作。
  • Pipeline UI:用户可用Python SDK构建飞桨深度学习工作流,并在界面查看工作流状态。
  • VisualDL:飞桨可视化分析工具,辅助用户理解模型训练过程与结构,优化模型。

编程接口层

  • Dataset API:定义样本数据集的存储、缓存、管理、预处理等操作接口。
  • Training API:封装基于飞桨框架的模型训练接口,支持分布式训练。
  • ModelHub API:定义模型格式转换、集中存储、版本管理等操作接口。
  • Serving API:封装模型推理服务相关接口,支持自动扩缩容、蓝绿发版等功能。

领域应用工作流Operator层

  • PaddleOCR Operator:封装OCR领域常见深度学习工作流。
  • PaddleClas Operator:封装图像识别领域常见深度学习工作流。
  • PaddleNLP Operator:封装NLP领域常见深度学习工作流。
  • PaddleRec Operator:封装推荐系统领域深度学习工作流。

云原生依赖组件层

  • Argo:云原生工作流调度引擎,用于编排作业执行流程。
  • Istio:为Web UI和模型推理服务提供统一网关。
  • Knative:为模型推理服务提供自动扩缩容、蓝绿发版等功能。
  • JuiceFS:提供支持POSIX接口的CSI插件,用于存储样本数据和临时文件。

安装使用步骤

前提条件

  • Kubernetes >= 1.8
  • kubectl
  • Redis(可选)

安装方法

一键脚本安装

  1. 下载项目代码: bash cd hack sh install.sh
  2. 确认所有依赖组件安装成功: bash kubectl get pods -n cert-manager kubectl get pods -n istio-system kubectl get pods -n auth kubectl get pods -n knative-eventing kubectl get pods -n knative-serving kubectl get pods -n kubeflow kubectl get pods -n kubeflow-user-example-com
  3. 通过Port-Forward暴露UI界面端口: bash kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
  4. 打开浏览器访问 http://localhost:8080,默认用户名和密码分别为 user@example.com12341234

standalone模式安装

  1. 下载项目代码: bash cd hack sh install-standalone.sh
  2. 查看各组件部署情况: bash kubectl get pods -n kubeflow kubectl get pods -n istio kubectl get pods -n knative

创建StorageClass和Secret

使用JuiceFS CSI插件需要Redis作为元数据存储,将Redis连接URI进行Base64编码,并填入data-center.yamltask-center.yaml文件中。执行以下命令创建StorageClass和Secret: bash kubectl apply -f ./prerequisites/data-center.yaml kubectl apply -f ./prerequisites/task-center.yaml

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】