项目简介
本项目是一个基于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(可选)
安装方法
一键脚本安装
- 下载项目代码:
bash cd hack sh install.sh
- 确认所有依赖组件安装成功:
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
- 通过Port-Forward暴露UI界面端口:
bash kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
- 打开浏览器访问
http://localhost:8080
,默认用户名和密码分别为user@example.com
和12341234
。
standalone模式安装
- 下载项目代码:
bash cd hack sh install-standalone.sh
- 查看各组件部署情况:
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.yaml
和task-center.yaml
文件中。执行以下命令创建StorageClass和Secret:
bash
kubectl apply -f ./prerequisites/data-center.yaml
kubectl apply -f ./prerequisites/task-center.yaml
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】