From 82fea4c1f8b207e4ffdd25d9ad8852369c47fc8a Mon Sep 17 00:00:00 2001 From: JimmyYang Date: Thu, 17 Feb 2022 16:04:30 +0800 Subject: [PATCH 001/133] Initial commit --- .gitignore | 129 ++++++++++++++++++++++++++++++++++ LICENSE | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 3 files changed, 331 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b6e4761 --- /dev/null +++ b/.gitignore @@ -0,0 +1,129 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..78777b4 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# ianvs \ No newline at end of file From 63ee7f46e128ac70897b4243b92b80bee51216a4 Mon Sep 17 00:00:00 2001 From: JimmyYang20 Date: Tue, 12 Apr 2022 23:55:27 +0800 Subject: [PATCH 002/133] add the ability to parse config file Signed-off-by: JimmyYang20 --- Makefile | 193 ++++++++++++++++++++++++++++++++++ algorithms/__init__.py | 0 algorithms/demo.py | 0 examples/atcii/testjob.yaml | 39 +++++++ hack/make-rules/build.sh | 0 ianvs/__init__.py | 0 ianvs/cmd/__init__.py | 0 ianvs/cmd/experiment.py | 28 +++++ ianvs/experiment/__init__.py | 1 + ianvs/experiment/algorithm.py | 19 ++++ ianvs/experiment/pipeline.py | 0 ianvs/experiment/testcase.py | 0 ianvs/experiment/testenv.py | 10 ++ ianvs/experiment/testjob.py | 63 +++++++++++ requirements.dev.txt | 0 requirements.txt | 1 + setup.py | 2 + 17 files changed, 356 insertions(+) create mode 100644 Makefile create mode 100644 algorithms/__init__.py create mode 100644 algorithms/demo.py create mode 100644 examples/atcii/testjob.yaml create mode 100644 hack/make-rules/build.sh create mode 100644 ianvs/__init__.py create mode 100644 ianvs/cmd/__init__.py create mode 100644 ianvs/cmd/experiment.py create mode 100644 ianvs/experiment/__init__.py create mode 100644 ianvs/experiment/algorithm.py create mode 100644 ianvs/experiment/pipeline.py create mode 100644 ianvs/experiment/testcase.py create mode 100644 ianvs/experiment/testenv.py create mode 100644 ianvs/experiment/testjob.py create mode 100644 requirements.dev.txt create mode 100644 requirements.txt create mode 100644 setup.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3fb679c --- /dev/null +++ b/Makefile @@ -0,0 +1,193 @@ +# Copyright 2021 The KubeEdge Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +GOPATH ?= $(shell go env GOPATH) + +OUT_DIR ?= _output +OUT_BINPATH := $(OUT_DIR)/bin +OUT_IMAGESPATH := $(OUT_DIR)/images + +IMAGE_REPO ?= kubeedge + +# the env PLATFORMS defines to generate linux images for amd 64-bit, arm 64-bit and armv7 architectures +# the full list of PLATFORMS is linux/amd64,linux/arm64,linux/arm/v7 +PLATFORMS ?= linux/amd64,linux/arm64 +COMPONENTS ?= gm lc kb + +IMAGE_TAG ?= v0.3.0 +GO_LDFLAGS ?= "" + +# set allowDangerousTypes for allowing float +CRD_OPTIONS ?= "crd:crdVersions=v1,allowDangerousTypes=true" + +# make all builds both gm and lc binaries +BINARIES=gm lc +SHELL=/bin/bash + +.EXPORT_ALL_VARIABLES: + +define BUILD_HELP_INFO +# Build code with verifying or not. +# target all is the "build" with verify. +# Args: +# WHAT: binary names to build. support: $(BINARIES) +# the build will produce executable files under ./$(OUT_BINPATH) +# If not specified, "everything" will be built. +# +# Example: +# make TARGET +# make TARGET HELP=y +# make TARGET WHAT=gm +# make TARGET WHAT=lc GOLDFLAGS="" GOGCFLAGS="-N -l" +# Note: Specify GOLDFLAGS as an empty string for building unstripped binaries, specify GOGCFLAGS +# to "-N -l" to disable optimizations and inlining, this will be helpful when you want to +# use the debugging tools like delve. When GOLDFLAGS is unspecified, it defaults to "-s -w" which strips +# debug information, see https://golang.org/cmd/link for other flags. + +endef + +.PHONY: build docker-cross-build all +ifeq ($(HELP),y) +build all: + @echo "$${BUILD_HELP_INFO//TARGET/$@}" +else +# build without verify +# default target +build: + hack/make-rules/build.sh $(WHAT) +# build multi-platform images and results will be saved in tar packages. +docker-cross-build: + bash hack/make-rules/cross-build.sh + +all: verify build + +endif + + +define VERIFY_HELP_INFO +# verify golang, vendor, vendor licenses and codegen +# +# Example: +# make verify +endef +.PHONY: verify +ifeq ($(HELP),y) +verify: + @echo "$$VERIFY_HELP_INFO" +else +verify: verify-golang verify-vendor verify-codegen verify-vendor-licenses +endif + +.PHONY: verify-golang +verify-golang: + hack/verify-golang.sh + +.PHONY: verify-vendor +verify-vendor: + hack/verify-vendor.sh +.PHONY: verify-codegen +verify-codegen: + hack/verify-codegen.sh +.PHONY: verify-vendor-licenses +verify-vendor-licenses: + hack/verify-vendor-licenses.sh + +define LINT_HELP_INFO +# run golang lint check. +# +# Example: +# make lint +# make lint HELP=y +endef +.PHONY: lint +ifeq ($(HELP),y) +lint: + @echo "$$LINT_HELP_INFO" +else +lint: + hack/make-rules/lint.sh +endif + +define CLEAN_HELP_INFO +# Clean up the output of make. +# +# Example: +# make clean +# make clean HELP=y +# +endef +.PHONY: clean +ifeq ($(HELP),y) +clean: + @echo "$$CLEAN_HELP_INFO" +else +clean: + hack/make-rules/clean.sh +endif + +.PHONY: images gmimage lcimage kbimage +images: gmimage lcimage kbimage +gmimage lcimage kbimage: + docker build --build-arg GO_LDFLAGS=${GO_LDFLAGS} -t ${IMAGE_REPO}/sedna-${@:image=}:${IMAGE_TAG} -f build/${@:image=}/Dockerfile . + + +.PHONY: push push-examples push-all push-multi-platform-images +push-all: push-multi-platform-images push-examples + +# push target pushes sedna-built images +push: images + for target in $(COMPONENTS); do \ + docker push ${IMAGE_REPO}/sedna-$$target:${IMAGE_TAG} + done + bash scripts/storage-initializer/push_image.sh + +push-examples: + bash examples/push_image.sh + +# push multi-platform images +push-multi-platform-images: + bash hack/make-rules/push.sh + +.PHONY: e2e +e2e: + hack/run-e2e.sh + +# Generate CRDs by kubebuilder +.PHONY: crds controller-gen +crds: controller-gen + $(CONTROLLER_GEN) $(CRD_OPTIONS) paths="./pkg/apis/sedna/v1alpha1" output:crd:artifacts:config=build/crds + +# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) +ifeq (,$(shell go env GOBIN)) +GOBIN=$(shell go env GOPATH)/bin +else +GOBIN=$(shell go env GOBIN) +endif + +# find or download controller-gen +# download controller-gen if necessary +controller-gen: +ifeq (, $(shell which controller-gen)) + @{ \ + set -e ;\ + CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\ + cd $$CONTROLLER_GEN_TMP_DIR ;\ + go mod init tmp ;\ + go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.4.1 ;\ + rm -rf $$CONTROLLER_GEN_TMP_DIR ;\ + } +CONTROLLER_GEN=$(GOBIN)/controller-gen +else +CONTROLLER_GEN=$(shell which controller-gen) +endif diff --git a/algorithms/__init__.py b/algorithms/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/algorithms/demo.py b/algorithms/demo.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/atcii/testjob.yaml b/examples/atcii/testjob.yaml new file mode 100644 index 0000000..623638f --- /dev/null +++ b/examples/atcii/testjob.yaml @@ -0,0 +1,39 @@ +testjob: + name: demo + testenv: + dataset_url: "/root/test/data/data.csv" + train_ratio: 0.8 + label: ["Koppen climate classification"] + model_eval: + metric: "precision_score" + metric_param: "{'average': 'micro'}" + threashold: 0.95 + metrics: [smape] + visualization_modes: [line] + rank: + switch: true + rankBy: "smape" + output_url: "/root/test/" + algorithm: + paradigms: + - kind: lifelonglearning + incremental_rounds: 2 + funcs: + - kind: "task_definition" + method: "TaskDefinitionByDataAttr" + paramerters: + attribute: ["season", "Cooling startegy_building level"] + - kind: "task_mining" + method: "TaskMiningByDataAttr" + parameters: + attribute: ["season", "Cooling startegy_building level"] + basemodels: + - name: xgboost + # hyperparameter_file: /root/test/algorithm/config.py + hyperparameters: + learning_rate: 0.1 + n_estimators: [600, 500] + max_depth: 2 + num_class: 3 + multi_parameters: [n_estimators] + diff --git a/hack/make-rules/build.sh b/hack/make-rules/build.sh new file mode 100644 index 0000000..e69de29 diff --git a/ianvs/__init__.py b/ianvs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ianvs/cmd/__init__.py b/ianvs/cmd/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ianvs/cmd/experiment.py b/ianvs/cmd/experiment.py new file mode 100644 index 0000000..49ac05f --- /dev/null +++ b/ianvs/cmd/experiment.py @@ -0,0 +1,28 @@ +import argparse +import sys +import yaml +from yaml.loader import SafeLoader + +from ianvs.experiment import TestJob + + +def main(): + args = parse_args() + config = yaml.load(args.config_file, Loader=SafeLoader) + test_job = TestJob(config[str.lower(TestJob.__name__)]) + print(test_job.__dict__) + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("config_file", + nargs='?', default=sys.stdin, + type=argparse.FileType(), + help="test config file to read from (if not provided" + " standard input is used instead)") + args = parser.parse_args() + return args + + +if __name__ == '__main__': + main() diff --git a/ianvs/experiment/__init__.py b/ianvs/experiment/__init__.py new file mode 100644 index 0000000..0b9b2c1 --- /dev/null +++ b/ianvs/experiment/__init__.py @@ -0,0 +1 @@ +from .testjob import TestJob diff --git a/ianvs/experiment/algorithm.py b/ianvs/experiment/algorithm.py new file mode 100644 index 0000000..407557e --- /dev/null +++ b/ianvs/experiment/algorithm.py @@ -0,0 +1,19 @@ +class Algorithm: + def __init__(self): + self.paradigm = Paradigm() + self.basemodel = BaseModel() + + +class BaseModel: + def __init__(self): + self.name = "" + self.hyperparameters = {} + self.hyperparameter_file = "" + self.multi_parameters = [] + + +class Paradigm: + def __init__(self): + self.kind = "" + self.incremental_rounds = 2 + self.funcs = [] diff --git a/ianvs/experiment/pipeline.py b/ianvs/experiment/pipeline.py new file mode 100644 index 0000000..e69de29 diff --git a/ianvs/experiment/testcase.py b/ianvs/experiment/testcase.py new file mode 100644 index 0000000..e69de29 diff --git a/ianvs/experiment/testenv.py b/ianvs/experiment/testenv.py new file mode 100644 index 0000000..cb73627 --- /dev/null +++ b/ianvs/experiment/testenv.py @@ -0,0 +1,10 @@ +class TestEnv: + def __init__(self): + self.dataset_url = "" + self.train_ratio = 0.8 + self.label = [] + self.model_eval = {} + self.metrics = [] + self.rank = {"switch": False} + self.visualization_models = "off" + self.output_url = "./test/" diff --git a/ianvs/experiment/testjob.py b/ianvs/experiment/testjob.py new file mode 100644 index 0000000..6934ccd --- /dev/null +++ b/ianvs/experiment/testjob.py @@ -0,0 +1,63 @@ +import copy +from itertools import product + +from .testenv import TestEnv +from .algorithm import Algorithm, Paradigm, BaseModel + + +class TestJob: + def __init__(self, config): + self.name = "" + self.test_env = TestEnv() + self.algorithm_list = [] + self.parse(config) + + def parse(self, test_job_config): + for key in test_job_config: + v = test_job_config[key] + if key == str.lower(TestEnv.__name__): + self.dict_to_object(self.test_env, v) + elif key == str.lower(Algorithm.__name__): + self.parse_algorithms_config(v) + else: + self.__dict__[key] = test_job_config[key] + + def parse_algorithms_config(self, algorithms_config): + def parse_basemodels_config(basemodels_config): + basemodel_list = [] + for b in basemodels_config: + parameters_list = [] + for parameter in b.multi_parameters: + parameters_list.append(b.hyperparameters[parameter]) + for parameter_list in product(*parameters_list): + basemodel = copy.deepcopy(b) + for i in range(len(b.multi_parameters)): + basemodel.hyperparameters[b.multi_parameters[i]] = parameter_list[i] + basemodel_list.append(basemodel) + return basemodel_list + + def parse_algorithms_config(key, cls): + objects = [] + configs = algorithms_config[key] + if len(configs) > 0: + for config in configs: + obj = cls() + self.dict_to_object(obj, config) + objects.append(obj) + if cls == BaseModel: + return parse_basemodels_config(objects) + return objects + + paradigms = parse_algorithms_config(str.lower(Paradigm.__name__) + "s", Paradigm) + basemodels = parse_algorithms_config(str.lower(BaseModel.__name__) + "s", BaseModel) + + for p in paradigms: + for b in basemodels: + algorithm = Algorithm() + algorithm.paradigm = p + algorithm.basemodel = b + self.algorithm_list.append(algorithm) + + def dict_to_object(self, obj, object_config): + for k in object_config: + obj.__dict__[k] = object_config[k] diff --git a/requirements.dev.txt b/requirements.dev.txt new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5ca893e --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +PyYAML~=6.0 \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..4c94b90 --- /dev/null +++ b/setup.py @@ -0,0 +1,2 @@ +import setuptools + From 6e96453b4531d2defb10ab84bc702da587ded836 Mon Sep 17 00:00:00 2001 From: Zimu Zheng Date: Sat, 28 May 2022 20:17:26 +0800 Subject: [PATCH 003/133] proposal of ianvs --- ianvs.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 ianvs.md diff --git a/ianvs.md b/ianvs.md new file mode 100644 index 0000000..ad668eb --- /dev/null +++ b/ianvs.md @@ -0,0 +1,71 @@ +# Distributed Synergy AI Benchmarking +Edge computing emerges as a promising technical framework to overcome the challenges in cloud computing. In this AI era, AI applications are the most critical types of application on the edge. Driven by the increasing computation power of edge devices and the increasing amount of data generated from the edge, Edge-cloud synergy AI and distributed synergy AI techniques has received more and more attention for the sake of device, edge and cloud intelligence enhancement. + +Nevertheless, distributed synergy AI is at its initial stage. For the time being, the comprehensive evaluation standard is not yet available for scenarios with system with various AI paradigms on all three layers of edge computing. That limits the wide application of related techniques and hindering a prosperous ecosystem on distributed synergy AI. A comprehensive end-to-end distributed synergy AI benchmark suite is thus needed to measure and optimize the systems and applications. + +## Motivation +### Goals +The distributed synergy AI benchmarking toolkits Ianvs aims to test the performance of distributed synergy AI solutions following recongized standards, in order to facilitate more efficient and effective development. Its scope includes: +- Provide end-to-end benchmarks across devices, edge nodes and cloud nodes based on typical distributed synergy AI paradigms and applications. + - Tools for Test Environment Management. For example, it would be neccessary to support the CRUD (Create, Read, Update and Delete) actions on test environments. Elements of such test environments include algorithm-wise and system-wise configuration + - Tools for Test-case Preparation. Typical examples include paradigm templates, simulation tools and hyper-parameter based preparation tools. + - Tools for Benchmark Presentation, e.g., leaderboard and test report generation. +- Establish comprehensive benchmarks and developed related applications via cooperation with other communities, which can include but not limitted to + - Dataset collection, re-organization and publication + - Formalized Specifications, e.g., Standards + - Holding Competitions or + - Maintaining Solution Leaderboards or Certification for commercial usage + + + + +## Proposal + +### User flow +The user flow for algorithm developer is as follows. +1. Prepare Ianvs Executable File +1. Integrate +![](images/user_flow.png) + +### Architecture +The architectures and related concepts are shown in the below figure. Critical components include +- Test Environment Management: the CRUD of test environments serving for global usage +- Test Case Controller: control the runtime behavior of test cases like instance generization and vanish +- Test Case Preparation: test case generization based on certain rules or constraints, e.g., the range of parameters +- Story Management: the output management and presentation of test case, e.g., leaderboards +- Simulation Controller: control the simulation process of edge-cloud synergy AI, including the instance generization and vanish of simulation containers + +![](images/ianvs_arch.png) + +### Detailed Modules and Instances + +Quite a few terms exist in ianvs, which include the detialed modules and instances. To facilitate easier concept understanding, +![](images/ianvs_concept.png) + +Benchmarking Job: job instance for individual benchmarking, which includes the components of ianvs + +### Design Details of Modules + +The proposal includes Test Environment Management, Test-case Preparation and Benchmark Presentation in the Distributed Synergy AI benchmarking toolkits, where +1. Test Environment Management supports the CRUD of Test environments, which include + - Algorithm-wise configuration + - Public datasets + - Pre-processing algorithms + - Feature enginneering algorithms + - Post-processing algorithms like metric computation + - System-wise configuration + - Overall architeture + - System constraint or budgets + - End-to-end cross-node + - Per node +1. Test-case Preparation which include + - Templates of common distributed synergy AI paradigms, which can help 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 test-case preparation tools. For instance, prepare test cases based on a given range of hyper-parameters. +1. Benchmark Presentation which includes + - Leaderboard generation + - Test report generation + + + + From 91ebc80cc5694e9acd4aa9c810f9a921aed87f12 Mon Sep 17 00:00:00 2001 From: Zimu Zheng Date: Sat, 28 May 2022 20:19:46 +0800 Subject: [PATCH 004/133] images for ianvs proposal --- images/ianvs_arch.png | Bin 0 -> 117390 bytes images/ianvs_concept.png | Bin 0 -> 64149 bytes images/user_flow.png | Bin 0 -> 29502 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/ianvs_arch.png create mode 100644 images/ianvs_concept.png create mode 100644 images/user_flow.png diff --git a/images/ianvs_arch.png b/images/ianvs_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..2c3d0e471b3eb225cff0004cd2152ed3980e6221 GIT binary patch literal 117390 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 z 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%0Ah{5c)?RzDADJD->s*n)VaU-rd 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 WeaL!l#ZxyF5*mdH{4w7p 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 IyMF(F0aQy?o&W#< literal 0 HcmV?d00001 diff --git a/images/ianvs_concept.png b/images/ianvs_concept.png new file mode 100644 index 0000000000000000000000000000000000000000..63b6bd294cfc5206ff8560a6931fbc1530be9abf GIT binary patch literal 64149 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