MCPcopy Index your code
hub / github.com/PaddlePaddle/PaddleCloud

github.com/PaddlePaddle/PaddleCloud @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
534 symbols 1,417 edges 47 files 210 documented · 39%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PaddleCloud

English | 简体中文

Overview

PaddleCloud aims to provide a set of easy-to-use cloud components based on PaddlePaddle and related kits to meet customers' business cloud requirements. In order to get through the whole process from training to deployment, the model training component paddlejob, the model inference component serving, and the sample caching component sampleset for acceleration have been developed. The components provide users with almost zero-based experience tutorials and easy-to-use programming interfaces. You can get a clearer understanding of PaddleCloud through Architecture Overview.

Components introduction

  • The model training component paddlejob is designed to provide a simple and easy-to-use standardized interface for running Paddle distributed training tasks on Kubernetes, and to provide customized and complete support for the management of training tasks. More About paddlejob.
  • The sample cache component sampleset implements sample cache in paddlejob based on the open source project JuiceFS. It aims to solve the problem of high network IO overhead caused by the separation structure of computing and storage in Kubernetes, so as to improve the efficiency of distributed training jobs on the cloud. More about sampleset.
  • The model inference component serving is developed based on Knative Serving and provides functions such as automatic scaling, fault tolerance, and health check. It supports deploying model services on Kubernetes clusters using mainstream frameworks such as PaddlePaddle, TensorFlow, and onnx. More about serving.

Quick Start

Prerequisites

  • Kubernetes, 1.8 <= version <= 2.1
  • kubectl
  • helm

If you do not have a Kubernetes environment, you can refer to microk8s official documentation for installation. If you use macOS system, or encounter installation problems, you can refer to the document macOS install microk8s.

Installation

We assume that you have installed the kubernates cluster environment and you can access the cluster through command such as helm and kubectl. Otherwise, please refer to the more detailed installation tutorial for help. If you deploy components in the production environment or have custom installation requirements, please also refer to Installation Tutorial.

Add and update helm's charts repositories,

$ helm repo add paddlecloud https://paddleflow-public.hkg.bcebos.com/charts
$ helm repo update

Install all components and all dependencies using helm.

# create namespace in k8s
$ kubectl create namespace paddlecloud
# install
$ helm install test paddlecloud/paddlecloud --set tags.all-dep=true --namespace paddlecloud

You can find the specific meaning of all the parameters in Installation Tutorial.

Run demo paddlejob

You can get more detailed usage examples in here.

Deploy your first paddlejob demo with

$ kubectl -n paddlecloud apply -f $path_to_project/samples/paddlejob/wide_and_deep.yaml

Check pods status

kubectl -n paddlecloud get pods

Check paddle job status

kubectl -n paddlecloud get pdj

Tutorials

Quick Start

Design Introduction

License

PaddleCloud is released under the Apache 2.0 license.

Extension points exported contracts — how you extend this code

Dependence (Interface)
(no doc) [2 implementers]
pkg/sampleset/ctrls/base_controller.go
Driver (Interface)
(no doc)
pkg/sampleset/driver/driver.go

Core symbols most depended-on inside this repo

Error
called by 178
pkg/sampleset/ctrls/base_controller.go
RequeueWithError
called by 60
pkg/sampleset/utils/ctrl_utils.go
NoRequeue
called by 40
pkg/sampleset/utils/ctrl_utils.go
run
called by 16
pipeline/src/training.py
RequeueAfter
called by 15
pkg/sampleset/utils/ctrl_utils.go
UpdateResourceStatus
called by 15
pkg/sampleset/ctrls/base_controller.go
NewResource
called by 12
pkg/sampleset/ctrls/base_controller.go
GetDriver
called by 11
pkg/sampleset/driver/driver.go

Shape

Method 273
Function 166
Struct 66
Class 14
TypeAlias 13
Interface 2

Languages

Go86%
Python14%

Modules by API surface

pkg/sampleset/ctrls/base_controller.go80 symbols
pkg/apis/sampleset/v1alpha1/zz_generated.deepcopy.go56 symbols
pkg/sampleset/driver/driver.go33 symbols
pkg/paddlejob/paddlejob_helper.go31 symbols
pipeline/src/training.py29 symbols
pkg/sampleset/driver/juicefs.go19 symbols
pkg/apis/paddlejob/v1/zz_generated.deepcopy.go18 symbols
pkg/apis/paddlejob/v1/paddlejob_types.go18 symbols
pkg/sampleset/utils/ctrl_utils.go17 symbols
pkg/sampleset/manager/server.go17 symbols
pkg/apis/sampleset/v1alpha1/samplejob_types.go17 symbols
pkg/apis/serving/v1/zz_generated.deepcopy.go16 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add PaddleCloud \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact