-
Notifications
You must be signed in to change notification settings - Fork 435
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
Revamp Quickstart #604
Revamp Quickstart #604
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
From my side it's good to go |
I just went through this. Some thoughts / feedback in no particular order:
All that said, however, there is a certain kind of more technical / competent user who will find this quickstart amazing and exactly what they wanted, so nice work on that! I think this is a great step forward for them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran the quickstart and noticed a few things:
- The restart button works but then it takes a bit long to actually do the restart. You can even run the next few cells AFTER you execute the restart and it somehow still runs them making them appear as if the restart
- The FacetsVisualizer needs to run twice to get it working. This is a known bug but i would add it in the notebook somewhere
- The DAG Visualizer within the notebook is a bit glitchy. Its zoomed out and doesnt allow for panning properly. Would be cool to make it a bit more palatable within the notebook and also give an option to make it work outside the notebook for non-colab users
- I have not run the actually code yet but shouldnt we use the scritps to run it on kubeflow? That would be a missing link the the story. What I would do is: Hey now you ran it on notebook, run it on a kubeflow stack with these commands and then either point them to the README where everything is written or have like a
run_on_kubeflow.sh
script that does the stack provisoning and running the pipeline
Overall fantastic work! Really love it!
…nd move run.py-specific set up instructions out of prerequisites.
Just merged Hamza's branch (which just merged develop), now the CLI issues should be fixed here as well.
True, the detailed setup instructions are only needed when running with
Very true, I was thinking about this too. I found it hard to show off the value that ZenML creates without making it somewhat complex though (IMO a lot of the value comes from our various integrations and how we abstract them via stacks). I think for type 1 (true beginners) ZenBytes is the place to start. I included a link to that at the end of the quickstart, but now that I think about it a lot of folks might drop out before ever seeing that if they feel overwhelmed during the quickstart already. How about we add some kind of disclaimer at the beginning that mentions that the target audience of this quickstart is type 2 (having basic ML/MLOps experimence) and link to ZenBytes there as well. Thanks for pointing this out @strickvl , this is a big issue IMO. Any other ideas how to address it?
Yes, great point. I think the natural flow is how we do it in ZenBytes:
The reason I changed the ordering here is that I tried to make the quickstart more quick. This way, we just directly define the pipelines, then code up the steps (which I'd expect people to just skim over), then run them both and get done with it. IMO I feel going into detail on each step/part is a bit too much content here. However, this approach also has drawbacks as you said, e.g. one thing I don't like is that the prediction service loader step is defined before the training pipeline is run which makes that step feel really obscure. Personally, I still prefer the current ordering for sake of brevity as mentioned above, but I'm open to change it if more people prefer that.
Good suggestion, I changed it.
This is caused by the new MLflow 1.26.0 not being compatible with ZenML. I think @stefannica already fixed this in this PR: #595, so this also be fixed now that I merged develop.
Thanks so much for your amazing review @strickvl! |
I think the core thing is just going to be how we guide people through our various entry pages / entry points. The core ones are:
All of these should be united and uniform I think in offering two different paths: (1) for ultra beginners and (2) for people with experience who want to get a quick glimpse of the power of ZenML. Those two different paths seem to require pretty different experiences or guides, so we should just be explicit about that and cater to them separately. We should maybe use the word 'beginner' somehow as a signpost for real beginners. In any case, we should just be really explicit about which examples/notebooks are for you if you're new to things vs if you've been around the block a few times. (This intersects with my work on the README, btw, so will sync with you later in the day on that I guess so we have this standardised everywhere). |
Yeah this can be confusing when you just want to shift-enter through it. Already added a comment below the installs telling people to wait for the cell to finish and kernel to restart before proceeding. Not sure how to do this better, any ideas?
I haven't experienced that myself yet but I added a note to rerun the cell if nothing happens.
Haven't experienced that myself either, I will rerun the quickstart myself again now that your branch and develop are merged. Let's see if this can be improved.
Great suggestion, would love to do that, but that will still be a lot of work. IMO this is also the missing link in ZenBytes before we deploy to the cloud. IMO this is the next piece of content we should write and then add it into the quickstart too!
Glad to hear, thanks for the review 😃 |
Maybe a os.sleep(5) to even force people to wait? :D
Thanks!
Yes lets do it. Happy to hear it works for you. @strickvl Did you also find the inline dag visualizer ok to work with?
Is it a lot of work really? Would it not just be a few lines in the README and at the end of the notebook? We already have the code itself in zenbytes |
@htahir1 I never got that far in the notebook since there was some bug which prevented me from running the pipelines at all. |
Doesn't work unfortunately, still kills the subsequent cells |
…zenml-io/zenml into feature/CONTENT-166-finalize-quickstart
* Getting there * midway best practices * Added more explain stuff * Edited best practices * checkpoint * Checkpoint for quickstart * Added notebook * Added dash visualizer jupyter * Refactored imports * Added runner script * Quickstart now follows best practices * Quickstart formatted * Updated zenml go * Latest quickstart * Adapted zenml go to new quickstart * Added event for extending ZenML * Linting fixes * zenml go is now optout too * Made an exception for pipeline yamls * Added config * Apply suggestions from code review Co-authored-by: Alex Strick van Linschoten <strickvl@users.noreply.github.com> * Deleting * preserving user metadata * Fromatted latest * Formatting and linting * Formatting and linting * Typo * One function down * Update stakc comp done * Deregister stack * Create user * Delete user * Get user * Added all events * Added project * Added facade for all base methods * Deleted flavor event delted * Wrapped track event to make sure deduplication doesnt happen * Wrapped track event to make sure deduplication doesnt happen * Registered stack refactored * Flavor event is now properly done * Update stack done * Added import and export stack * Added import and export stack * Analytics events done * Copy paste error * Fixed mypy errors * Toc updated * Restructurung * Restructure * GitBook: [#2] No subject * Fix/update `zenml go` (#606) * Fix broken feature store example (#602) * allow yaml files * include yaml config * Added success message (#603) * Added success message * Reformatted * remove extra colon * add extra spacing * update zenml go behaviour Co-authored-by: Alexej Penner <thealexejpenner@gmail.com> * Analytics turned off in copy_active_configuration * Docstring nits * Formatting * Added todo * Revamp Quickstart (#604) * WIP: rework/reformat quickstart. * Finished quickstart.ipynb (untested). * Improved docs/comments of quickstart.ipynb. * Fix bugs in quickstart.ipynb. Everything except dash integration works. * Update quickstart README and setup.py. * Bug fix: allow Facets visualizer magic in Colab. * Added screenshots for all visualizations to quickstart.ipynb. * Added pipeline visualization to quickstart.ipynb. * Added stack visualization to quickstart.ipynb. * Wrote new quickstart run.py script / code modules. * Fix grammar / spelling of quickstart. * Update quickstart README: declare notebook execution as recommended and move run.py-specific set up instructions out of prerequisites. * Adjust quickstart to reviewer feedback. * Added magic flag Co-authored-by: Hamza Tahir <htahir111@gmail.com> * Changed best practices to misc and added resources section * Finished landing page of resoruces * Half finished best practices * Added eventbrite * Getting there * FAQs added basically * Fixed link; * GitBook: [#3] No subject * Apply suggestions from code review Co-authored-by: Alex Strick van Linschoten <strickvl@users.noreply.github.com> Co-authored-by: Alex Strick van Linschoten <strickvl@users.noreply.github.com> Co-authored-by: Alexej Penner <thealexejpenner@gmail.com> Co-authored-by: Felix Altenberger <felix@zenml.io>
Describe changes
I finished @htahir1 's work on creating a new quickstart.
Overall, I completely overhauled the content, structure, and code of all parts: README,
notebooks/quickstart.ipynb
,run.py
,pipelines/
,steps/
, etc. The new content is basically a compressed & polished version of ZenBytes 1.1 to 3.1.The PR also includes a small bug fix in
src/zenml/integrations/facets/visualizers/facet_statistics_visualizer.py
that allows us to use the Facets visualizer in Colab.@reviewers: Since literally everything changed, it does not make much sense to review the quickstart part by file changes; I'd suggest to manually go through the quickstart notebook / colab / script instead.
Pre-requisites
Please ensure you have done the following:
Types of changes