commit | 6e988c77f81eda3eca5c9cb04f6b41039d2ef185 | [log] [tgz] |
---|---|---|
author | Byron <byronhsu1230@gmail.com> | Wed Jan 13 21:55:02 2021 +0800 |
committer | Kevin <pingsutw@apache.org> | Thu Jan 14 07:58:49 2021 +0000 |
tree | 08b4024e2ad37b443d740f958d0e31ab3f69760b | |
parent | 80de0787ea87da8e2c4017964171886f69955790 [diff] |
SUBMARINE-706. [web] Refactor workbench experiment page ### What is this PR for? The original functionality can still work fine now. I refactored the code and made these major changes: 1. Split complex components into smaller ones. In that way, it becomes easier to maintain the code. Furthermore, different pages can use the same components easily and do not need to re-write code. 2. Replace dirty trick with a more elegant method. For example, [this bug](https://github.com/apache/submarine/pull/355/files) can be fixed by a shared service between parent and child component rather than checking reload manually. ![Experiment Architecture](https://user-images.githubusercontent.com/24364830/104095135-2c9b9100-52d0-11eb-87b6-cf95e9f1761f.png) ### What type of PR is it? [Refactoring] ### What is the Jira issue? https://issues.apache.org/jira/browse/SUBMARINE-706 ### How should this be tested? ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: Byron <byronhsu1230@gmail.com> Closes #488 from ByronHsu/SUBMARINE-706 and squashes the following commits: ab0a8bc [Byron] change delete title 36bd9bc [Byron] change delete title ec9444a [Byron] fix license typo a5b3ca0 [Byron] fix license 2c5e0ee [Byron] fix format 23aa3eb [Byron] refactor experiment page
Apache Submarine (Submarine for short) is an End-to-End Machine Learning PLATFORM to allow data scientists to create end-to-end machine learning workflows. To elaborate, on Submarine, data scientists can finish each stage in the ML model lifecycle, including data exploration, data pipeline creation, model training, serving, and monitoring.
Some open-source and commercial projects are trying to build an end-to-end ML platform. What's the vision of Submarine?
Theodore Levitt once said:
“People don’t want to buy a quarter-inch drill. They want a quarter-inch hole.”
experiment
on prem or cloud via easy-to-use UI/API/SDK.experiment
and dependencies of environment
As mentioned above, Submarine attempts to provide Data-Scientist-friendly UI to make data scientists have a good user experience. Here're some examples.
# New a submarine client of the submarine server submarine_client = submarine.ExperimentClient(host='http://localhost:8080') # The experiment's environment, could be Docker image or Conda environment based environment = EnvironmentSpec(image='apache/submarine:tf-dist-mnist-test-1.0') # Specify the experiment's name, framework it's using, namespace it will run in, # the entry point. It can also accept environment variables. etc. # For PyTorch job, the framework should be 'Pytorch'. experiment_meta = ExperimentMeta(name='mnist-dist', namespace='default', framework='Tensorflow', cmd='python /var/tf_dist_mnist/dist_mnist.py --train_steps=100') # 1 PS task of 2 cpu, 1GB ps_spec = ExperimentTaskSpec(resources='cpu=2,memory=1024M', replicas=1) # 1 Worker task worker_spec = ExperimentTaskSpec(resources='cpu=2,memory=1024M', replicas=1) # Wrap up the meta, environment and task specs into an experiment. # For PyTorch job, the specs would be "Master" and "Worker". experiment_spec = ExperimentSpec(meta=experiment_meta, environment=environment, spec={'Ps':ps_spec, 'Worker': worker_spec}) # Submit the experiment to submarine server experiment = submarine_client.create_experiment(experiment_spec=experiment_spec) # Get the experiment ID id = experiment['experimentId']
submarine_client.get_experiment(id)
submarine_client.wait_for_finish(id)
submarine_client.get_log(id)
submarine_client.list_experiments(status='running')
For a quick-start, see Submarine On K8s
(Available on 0.6.0, see Roadmap)
If you want to know more about Submarine's architecture, components, requirements and design doc, they can be found on Architecture-and-requirement
Detailed design documentation, implementation notes can be found at: Implementation notes
Read the Apache Submarine Community Guide
How to contribute Contributing Guide
Issue Tracking: https://issues.apache.org/jira/projects/SUBMARINE
What to know more about what's coming for Submarine? Please check the roadmap out: https://cwiki.apache.org/confluence/display/SUBMARINE/Roadmap
The Apache Submarine project is licensed under the Apache 2.0 License. See the LICENSE file for details.