Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplifying Edge AI documentation part. #570

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/architecture/beehive.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_position: 1

## Beehive Overview

Beehive is a messaging framework based on go-channels for communication between modules of KubeEdge. A module registered with beehive can communicate with other beehive modules if the name with which other beehive module is registered or the name of the group of the module is known.
Beehive is a messaging framework based on go-channels for communication between modules of KubeEdge. A module is an unit or component within KubeEdge platform that performs specific tasks and communicate with other modules. So, a module registered with beehive can communicate with other beehive modules if the name with which other beehive module is registered or the name of the group of the module is known.
Beehive supports following module operations:

1. Add Module
Expand Down
24 changes: 12 additions & 12 deletions docs/concept/ai/ianvs.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ The distributed synergy AI benchmarking Ianvs aims to test the performance of di
The scope of Ianvs includes
- Providing end-to-end benchmark toolkits across devices, edge nodes and cloud nodes based on typical distributed-synergy AI paradigms and applications.
- Tools to manage test environment. For example, it would be necessary to support the CRUD (Create, Read, Update and Delete) actions in test environments. Elements of such test environments include algorithm-wise and system-wise configuration.
- Tools to control test cases. Typical examples include paradigm templates, simulation tools, and hyper-parameter-based assistant tools.
- Tools to control test cases. Typical examples include paradigm templates, simulation tools, and hyper-parameter-based assistant tools. Hyper-parameters are settings that can affect how well your AI models learn from the data.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The explanation on hyperparameters looks fine to me.

Copy link
Author

@Himanshu-kiran Himanshu-kiran Sep 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anvithks @edisonxiang Can you look into this

- Tools to manage benchmark presentation, e.g., leaderboard and test report generation.
- Cooperation with other organizations or communities, e.g., in KubeEdge SIG AI, to establish comprehensive benchmarks and developed related applications, which can include but are not limited to
- Cooperation with other organizations or communities, e.g., in KubeEdge SIG AI, to establish comprehensive benchmarks and developed related applications, which can include but are not limited to:
- Dataset collection, re-organization, and publication
- Formalized specifications, e.g., standards
- Holding competitions or coding events, e.g., open source promotion plan
Expand All @@ -24,32 +24,32 @@ The scope of Ianvs includes

## Architecture
The architectures and related concepts are shown in the below figure. The ianvs is designed to run within a single node. Critical components include
- Test Environment Manager: the CRUD of test environments serving for global usage
- Test Case Controller: control the runtime behavior of test cases like instance generation and vanish
- Generation Assistant: assist users to generate test cases based on certain rules or constraints, e.g., the range of parameters
- Simulation Controller: control the simulation process of edge-cloud synergy AI, including the instance generation and vanishment of simulation containers
- Test Environment Manager: Manages the setup of test environments. Allow users to do CRUD operations (create,read,update,delete) on test environments.
- Test Case Controller: Controls the runtime behavior of test cases like instance generation, managing the test cases and vanishing it.
- Generation Assistant: Assists users to generate test cases based on certain rules or constraints, e.g., the range of parameters.
- Simulation Controller: Controls the simulation process of edge-cloud synergy AI, including the instance generation and vanishment of simulation containers
- Story Manager: the output management and presentation of the test case, e.g., leaderboards


![](/img/subproject/ianvs_arch.png)

More details on Ianvs components:
1. Test-Environment Manager supports the CRUD of Test environments, which basically includes
1. Test-Environment Manager supports the CRUD of Test environments, which basically includes:
- Algorithm-wise configuration
- Public datasets
- Pre-processing algorithms
- Feature engineering algorithms
- Post-processing algorithms like metric computation
- Pre-processing algorithms: Preapring data before it's used.
- Feature engineering algorithms: For creating new features.
- Post-processing algorithms like metric computation.
- System-wise configuration
- Overall architecture
- System constraints or budgets
- End-to-end cross-node
- Per node
1. Test-case Controller, which includes but is not limited to the following components
2. Test-case Controller, which includes but is not limited to the following components
- Templates of common distributed-synergy-AI paradigms, which can help the developer to prepare their test case without too much effort. Such paradigms include edge-cloud synergy joint inference, incremental learning, federated learning, and lifelong learning.
- Simulation tools. Develop simulated test environments for test cases
- Other tools to assist test-case generation. For instance, prepare test cases based on a given range of hyper-parameters.
1. Story Manager, which includes but is not limited to the following components
3. Story Manager, which includes but is not limited to the following components
- Leaderboard generation
- Test report generation

Expand Down
34 changes: 19 additions & 15 deletions docs/concept/ai/sedna.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,35 @@ sidebar_position: 1

## What is Sedna?

Sedna is an edge-cloud synergy AI project incubated in KubeEdge SIG AI. Benefiting from the edge-cloud synergy capabilities provided by KubeEdge, Sedna can implement across edge-cloud collaborative training and collaborative inference capabilities, such as joint inference, incremental learning, federated learning, and lifelong learning. Sedna supports popular AI frameworks, such as TensorFlow, Pytorch, PaddlePaddle, MindSpore.
Sedna is an edge-cloud synergy AI project incubated in KubeEdge SIG AI. Taking benefits from the edge-cloud synergy capabilities provided by KubeEdge, Sedna can implement across edge-cloud collaborative training and collaborative inference capabilities, such as joint inference, incremental learning, federated learning, and lifelong learning. Sedna supports popular AI frameworks, such as TensorFlow, Pytorch, PaddlePaddle, MindSpore.

Sedna can simply enable edge-cloud synergy capabilities to existing training and inference scripts, bringing the benefits of reducing costs, improving model performance, and protecting data privacy.


## Features
### Features

Sedna has the following features:
#### Sedna has the following features:

* Provide the edge-cloud synergy AI framework.
#### Provide the edge-cloud synergy AI framework.
* Provide dataset and model management across edge-cloud, helping developers quickly implement synergy AI applications.

* Provide edge-cloud synergy training and inference frameworks.
* Joint inference: under the condition of limited resources on the edge, difficult inference tasks are offloaded to the cloud to improve the overall performance, keeping the throughput.
* Incremental training: For small samples and non-iid data on the edge, models can be adaptively optimized over time on the cloud or edge.
* Federated learning: For those scenarios that the data being too large, or unwilling to migrate raw data to the cloud, or high privacy protection requirements, models are trained at the edge and parameters are aggregated on the cloud to resolve data silos effectively.
#### Provide edge-cloud synergy training and inference frameworks.
* Joint inference: Firstly, inference is performed on edge devices but under the condition of limited resources on the edge, difficult inference tasks are offloaded to the cloud to improve the overall performance, keeping the throughput.
* Incremental training: For small samples and non-iid data
(non-independent and identically distributed data) on the edge, models can be adaptively optimized over time on the cloud or edge.
* Federated learning: For those scenarios that the data being too large, or unwilling to migrate raw data to the cloud, or high privacy protection requirements, models are trained at the edge and parameters are aggregated on the cloud to resolve data silos effectively. This helps to improve the model's accuracy and performance without transferring large volumes of raw data to cloud.
* Lifelong learning: Confronted with the challenge of heterogeneous data distributions in complex scenarios and small samples on the edge, the edge-cloud synergy lifelong learning:
* leverages the cloud knowledge base which empowers the scheme with memory ability, which helps to continuously learn and accumulate historical knowledge to overcome the catastrophic forgetting challenge.
* is essentially the combination of another two learning schemes, i.e., multi-task learning and incremental learning, so that it can learn unseen tasks with shared knowledge among various scenarios over time.
* etc..
* leverages the cloud knowledge base which empowers the scheme with memory ability, which helps to continuously learn and accumulate historical knowledge to overcome the catastrophic forgetting challenge that is previously learned
information is not lost when new knowledge is acquired.
* is essentially the combination of another two learning schemes, i.e., multi-task learning and incremental learning, so that it can learn unseen tasks with shared knowledge and handle diverse and changing data among various scenarios over time.
* etc.

* Compatibility
#### Compatibility
* Compatible with mainstream AI frameworks such as TensorFlow, Pytorch, PaddlePaddle, and MindSpore.
* Provides extended interfaces for developers to quickly integrate third-party algorithms, and some necessary algorithms for edge-cloud synergy have been preset, such as hard sample discovering, aggregation algorithm.


## Architecture
### Architecture
#### Sedna's edge-cloud synergy is implemented based on the following capabilities provided by KubeEdge:
* Unified orchestration of across edge-cloud applications.
* Router: across edge-cloud message channel in management plane.
Expand All @@ -43,15 +45,15 @@ Sedna has the following features:


### Component
Sedna consists of the following components:
Sedna consists of the following four main components:

#### GlobalManager
* Unified edge-cloud synergy AI task management
* Cross edge-cloud synergy management and collaboration
* Central Configuration Management

#### LocalController
* Local process control of edge-cloud synergy AI tasks
* Local process control of AI tasks on edge-cloud synergy.
* Local general management: model, dataset, and status synchronization


Expand All @@ -64,6 +66,8 @@ Sedna consists of the following components:

#### Lib
* Expose the Edge AI features to applications, i.e. training or inference programs.
* Provides tools to integrate edge AI features into applications for training or inference.



More examples and description can be found from [Sedna documents](https://sedna.readthedocs.io/en/latest/)
5 changes: 2 additions & 3 deletions docs/welcome/why-kubeedge.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ title: Why KubeEdge
sidebar_position: 1
slug: /
---
**KubeEdge** is an open source system extending native containerized application orchestration and device management to hosts at the Edge. It is built upon Kubernetes and provides core infrastructure support for networking, application deployment and metadata synchronization between cloud and edge. It also supports MQTT and allows developers to author custom logic and enable resource constrained device communication at the Edge. KubeEdge consists of a cloud part and an edge part. Both edge and cloud parts are now open-sourced.
**KubeEdge** is an open source system that enhances Kubernetes by extending its capabilities to manage and orchestrate containerized applications and devices to host at the Edge. It is built upon Kubernetes and provides core infrastructure support for networking, application deployment, and metadata synchronization between cloud and edge. It also supports MQTT, a lightweight messaging protocol, and allows developers to write custom logic and enable resource constrained device communication at the Edge. KubeEdge consists of a cloud part and an edge part. Both edge and cloud parts are now open sourced.

## Advantages

The advantages of KubeEdge include mainly:

* **Edge Computing**

With business logic running at the Edge, much larger volumes of data can be secured & processed locally where the data is produced. This reduces the network bandwidth requirements and consumption between Edge and Cloud. This increases responsiveness, decreases costs, and protects customers' data privacy.
KubeEdge enables applications to run at the edge, securing larger volumes of data and processing it closer to the data source, which effectively reduces latency. This minimizes network bandwidth requirements and consumption between Edge and Cloud. By keeping sensitive data on local edge devices rather than a central cloud server, the risk of data interception, unauthorized access, and breaches is reduced. This also increases responsiveness, decreases costs, and protects customers' data privacy.

* **Simplified development**

Expand All @@ -37,7 +37,6 @@ KubeEdge is composed of these components:
- **[MetaManager](./architecture/edge/metamanager):** the message processor between edged and edgehub. It is also responsible for storing/retrieving metadata to/from a lightweight database (SQLite).
- **[ServiceBus](./architecture/edge/servicebus)**: a HTTP client to interact with HTTP servers (REST), offering HTTP client capabilities to components of cloud to reach HTTP servers running at edge.
- **[DeviceController](./architecture/cloud/device_controller)**: an extended kubernetes controller which manages devices so that the device metadata/status data can be synced between edge and cloud.

## Architecture

![KubeEdge Architecture](/img/kubeedge_arch.png)