Releases: kubeedge/sedna
Sedna v0.6.0 release
What's New
Supports Unstructured Lifelong Learning
The new unstructured lifelong learning feature try to improve the efficiency and reduce cost of high-value data collection, in many scenarios like robot, factory, etc.. Those scenarios usually require a lot of unstructured image data to be processed, and will also face various corner cases. For example, robots need to process image data from cameras for perception, they may encounter different curb on different roads while the class of curb already exists at training phase , or a different new class like flower bed. If these classes are not recognized correctly, the robot will wrestle and even cause environmental damage.
Therefore, this version of unstructured lifelong learning supports the following functions to solve the preceding problems:
- Supports unstructured lifelong learning: implement closed-loop data of unstructured data, and provides robot delivery example demo vedio and code based on image segmentation.
- Supports unseen task recognition.
- Supports early warning of unseen task: For example, robots can stop in time when encountering image samples that cannot be processed by models for manual intervention or other optional measures.
- Supports High-value data filtering: Only inference samples those cannot be inferenced correctly by models are considered high-value data, and will be collected then used for model training and update.
- Supports displaying knowledge base: Displays knowledge base information to users, including the number of unseen samples (or high-value samples) and the corresponding number of trained models.
The detailed pull requests are as follows:
- Proposal and tutorial of unstructured lifelong learning by @luosiqi in #391
- Unstructured Sedna Lifelong Learning Architecture by @luosiqi in #392
- Unstructured lifelong learning with cloud robotics example by @luosiqi in #382
- Support displaying knowledge base by @jaypume in #406
O&M and Monitoring
- Supports observability management for displaying logs and metrics of sedna in real time.
- Supports lifelong learning exporter and Visualization.
The detailed pull requests are as follows:
- The proposal for Observability management by @Kanakami in #340
- The implementation for Observability management by @Kanakami in #366
- The proposal for Lifelong Learning O&M by @wjf222 in #335
- The implementation for Lifelong Learning exporter and Visualization by @wjf222 in #369
More Examples Provided:
- Provides a Mindspore demo by @Lj1ang in #376
- Provides a high-frequency Sedna-based end-to-end use case in ModelBox by @Ymh13383894400 in #368
- Provides a tutorial for ATCII Lifelong Learning Job by @qxygxt in #405
By @Lj1ang @Ymh13383894400 @qxygxt
Other Notable Changes
- Supports JSON format Dataset Parse in Python Lib by @yqhok1 in #375
- Supports TinyMS backend in Python SDK by @Lj1ang in #341
Bug Fixes
- Fixed wrong url in document by @RyanZhaoXB in #394
- Fixed wrong path of installation document in README.md by @RyanZhaoXB in #385
- Fixed ci e2e running failed issue. by @jaypume in #410
New Contributors
- @Kanakami made their first contribution in #340
- @wjf222 made their first contribution in #335
- @Lj1ang made their first contribution in #376
- @yqhok1 made their first contribution in #375
- @Ymh13383894400 made their first contribution in #368
- @RyanZhaoXB made their first contribution in #394
- @qxygxt made their first contribution in #405
Full Changelog: v0.5.1...v0.6.0
Sedna v0.5.1 release
What's Changed
- Add key envs for train worker in LL by @JimmyYang20 in #345
- Add check pylint script by @JimmyYang20 in #338
- Add missed files in ReID feature merge and fix Docker images name. by @vcozzolino in #319
- Fix regression bug in JobBase class. by @vcozzolino in #325
- Fix kb not starting normally after installation by @jaypume in #332
- Fix the bug: download cc multiple times in buildx by @JimmyYang20 in #346
- Fix bug: pods can not connect to kb in LL by @JimmyYang20 in #348
- LL: initial container can download label file by @JimmyYang20 in #343
- Update e2e test script by @JimmyYang20 in #331
- Move algorithm-specific dependencies into class definition (optical flow) by @vcozzolino in #327
Full Changelog: v0.5.0...v0.5.1
Sedna v0.5.0 release
What's New
Add the Multi-Edge Inference Paradigm
The new Multi Edge Inference feature introduces a new mode of collaboration to manage distributed AI applications to combine computing power of edge nodes and fully utilize resources of edge nodes.
- Provide feature extraction-based collaborative inference to protect privacy of data on the edge.
- Filters data to reduce the amount of data transmitted from the edge.
- Message-oriented middleware is introduced to support asynchronous message communication between multi-edge AI application components.
For details, see https://github.com/kubeedge/sedna/tree/main/examples/multiedgeinference/pedestrian_tracking
By @vcozzolino @soumajm @jaypume.
Incremental learning supports heterogeneous chips
The chips of the training, evaluation, and inference worker nodes in incremental learning are different, and it causes that AI models of the same version cannot be used in a unified manner. Therefore, models need to be converted based on the special chip version.
When this feature is imported to Incremental Learning, users do not need to manually convert different models. Instead, users can configure the chip version corresponding to the model when creating an application. In this way, models can be adaptively converted on different nodes.
By @JimmyYang20 in #315
Lifelong learning supports multi-node deployment
Sedna 0.4 supports the lifelong learning application of the single-node version. It need that the dataset and the node name of the training, evaluation, and inference worker must be the same.
However, this method has certain limitations in the following scenarios:
- Training workers require more resources than evaluation workers and inference workers. In some cases, computing resources cannot meet requirements, and they need to be scheduled on different nodes.
- In some scenarios, you need to manually specify that training, evaluation, and inference work on a specific node. For example, both of them work on an edge node.
Therefore, the new feature enables the training, evaluation, and inference workers of lifelong learning to support the configuration of different nodeNames and nodeSelectors, allowing users to flexibly specify running nodes when creating workers.
By @JimmyYang20 in #287
Sedna supports Helm deployment
Sedna helm charts are introduced, including helm charts of sedna-gm, sedna-lc, and sedna-kb. Users can install required components on demand. You can also customize or modify the sedna helm charts application template based on helm rules. In addition, users can upload sedna helm charts to various cloud-native app markets to deploy the entire sedna environment in a simpler and more convenient manner.
For details, see https://github.com/kubeedge/sedna/tree/main/build/helm/sedna
Other Notable Changes
- Upgrade K8S to v1.21.4 by @llhuii in #232
- Upgrade golang from 1.14 to 1.16 by @llhuii in #255
- Update docs: add lib development guide by @JoeyHwong-gk in #178
- Update DirectoryorCreate to DirectoryOrCreate by @hey-kong in #313
- Add edgemesh installation by @llhuii in #253
- Add pr template. by @haiker2011 in #271
- buildx: speed the language having builtin build by @llhuii in #230
- installation: allow *_VERSION passing without
v
by @llhuii in #247 - Make min resync period configurable by @haiker2011 in #270
- IL: decouple eval task and deploy task by @JimmyYang20 in #242
Bug Fixes
- Fix IL bug: TrainTriggerStatus used in eval task by @JimmyYang20 in #239
- Fix IL bug: job misses first data when reads data. by @JimmyYang20 in #237
- Fix grammar error in api module by @xujingjing-cmss in #248
- Fix grammar error in globalmanager module by @xujingjing-cmss in #249
- Fix docs: index and quickstart by @jaypume in #233
- Fix the wrong uvicorn version in sedna lib by @jaypume in #240
- Fixbug: cloud node cannot connect k8s apiservice in allinone by @JimmyYang20 in #291
- Fixbug: db path has missed the mount volume prefix in LC by @JimmyYang20 in #282
- Fix downstream bug in IL by @JimmyYang20 in #283
- Fix all-in-one doc by @JimmyYang20 in #281
- Examples: fix the image name prefix by @llhuii in #243
New Contributors
- @xujingjing-cmss made their first contribution in #248
- @haiker2011 made their first contribution in #270
- @hey-kong made their first contribution in #313
Full Changelog: v0.4.3...v0.5.0
Sedna v0.4.3 release
What's Changed
- Fix the display problem in the home page by @jaypume in #216
- Fix kb image version in the install script by @JimmyYang20 in #209
- all-in-one: fix master node unschedule taint bug by @llhuii in #210
- Improve update-codegen.sh to copy generated files into SEDNA_ROOT. by @vcozzolino in #218
- Improve build script of examples by @vcozzolino in #214
- Add missing object search/tracking CRD and RBAC yamls by @llhuii in #223
- Unify all services exposed as ClusterIP by integrating EdgeMesh by @llhuii in #220
- example: fix fl_model.train in surface_defect_detection_v2 by @XinYao1994 in #226
- storage initializer: keep dir name in s3 download by @JimmyYang20 in #221
- all-in-one: add NO_INSTALL_SEDNA variable flag by @llhuii in #227
- Fix building wrong GM/LC arm64 docker images by @JimmyYang20 in #215
New Contributors
- @vcozzolino made their first contribution in #218
Full Changelog: v0.4.2...v0.4.3
Sedna v0.4.2 release
What's Changed
- Add object search controller by @EnfangCui in #190
- Sedna control plane supports amd64/arm64 by @JimmyYang20 in #196
- Fix install issues about lib by @JoeyHwong-gk in #184
Full Changelog: v0.4.1...v0.4.2
Sedna v0.4.1 release
New Features
- Add all-in-one script and docs, you can try our online katacoda courses (#192)
Bug Fixes
Sedna v0.4.0 release
Federated Learning
- MistNet integrated, a representation extraction aggregation algorithm.
- further reduce the resources requirement for the edge, by extracting the representation data on the edge side, and aggregation training on the cloud side.
- further protect data privacy, by quantization and noise.
- provides a sample code based on the yolov5 network.
- Supports extending edge-cloud transmission method, including S3 and WebSocket protocols, by abstracting Transmitter interface.
- Supports extending client choose algorithm in federated learning, by abstracting the ClientChoose interface.
Sedna v0.3.1 release
Notable Changes:
- In Incremental Learning, Inference/Train/Eval worker now can be deployed by nodename and nodeselector on multiple nodes.
Bug Fixes
- Fixed train/eval/infer callback function args not supported of sklearn backend.
- Fixed model saving problem in Lifelong Learning Estimator.
- Fixed incorrectly executing aggregation algorithm on the edge in Federated Learning.
- Fixed that the job cann't be resumed after the LC restarts.
Improvment
- Decouple all features into independent package of gm and lc.
Sedna v0.3.0 release
Lifelong learning
- Support edge-cloud synergy lifelong learning feature:
- 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.
- Add lifelong learning example.
Lib refactor
- By using a registration of class-factory functions to emulate virtual constructors, developers can invoke different components by change variables in the Config file.
- Clean up and redesign the base Config class, each feature maintains it's specific variables, and ensures that developers can be manually updated the variables.
- Decouple the ML framework from the features of sedna, allows developers to choose their favorite framework.
- Add a common file operation and a unified log-format in common module, use an abstract base class to standardize the feature modules' interface, and features are invoked by inheriting the base class.
Published images
The published images can be found under docker.io/kubeedge:
kubeedge/sedna-gm:v0.3.0
kubeedge/sedna-lc:v0.3.0
kubeedge/sedna-kb:v0.3.0
kubeedge/sedna-example-joint-inference-helmet-detection-big:v0.3.0
kubeedge/sedna-example-joint-inference-helmet-detection-little:v0.3.0
kubeedge/sedna-example-incremental-learning-helmet-detection:v0.3.0
kubeedge/sedna-example-federated-learning-surface-defect-detection-train:v0.3.0
kubeedge/sedna-example-federated-learning-surface-defect-detection-aggregation:v0.3.0
kubeedge/sedna-example-lifelong-learning-atcii-classifier:v0.3.0
Sedna v0.2.0 release
Add shared storage support for dataset/model, such as s3/http protocols.