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

Add UI/SDK support to pyfunc ensemblers #171

Merged

Conversation

deadlycoconuts
Copy link
Contributor

@deadlycoconuts deadlycoconuts commented Feb 28, 2022

Context

In PR #164 and PR #165, a real-time ensembler engine was introduced to process live ensembling requests, using an ensembler that is predefined in the mlflow pyfunc flavour. In PR #170, a process was introduced in Turing API to automatically orchestrate the image building process of a user specified pyfunc ensembler (identified by its given project_id and ensembler_id). Turing API then runs containers based on that generated image as an ensembler service as part of a Turing Router deployment.

This PR introduces user interface changes in order to incorporate the minor tweaks associated with a Turing Router deployment with the inclusion of pyfunc ensemblers.

Minor additions/fixes were also made to Turing SDK to incorporate the pyfunc_config object created from PRs #164, #165 and #170.

Not to be merged before PR #170.

Features

  • Creation of a panel in the router creation/editing page to select a pyfunc ensembler to deploy from a list of created ensemblers stored in Turing:
    Screenshot 2022-03-02 at 5 16 38 PM

  • Creation of a panel on the router details page showing details of the pyfunc ensembler deployed, with the Ensembler ID and Ensembler Name shown:
    Screenshot 2022-03-02 at 5 16 12 PM

  • Changing pyfunc ensemblers in an existing Turing Router will be reflected as expected for all Turing Router configuration on the diff page:
    Screenshot 2022-03-02 at 5 17 27 PM

Main Modifications

  • ui/src/components/form/service_account_combo_box/ServiceAccountComboBox.js - Renaming of ServiceAccoutComboBox.js to the more correctly spelled ServiceAccountComboBox.js
  • ui/src/router/components/configuration/components/EnsemblerConfigSection.js - Addition of a panel to display pyfunc ensembler configuration
  • ui/src/router/components/configuration/components/pyfunc_config_section/* - Addition of a panel to display pyfunc ensembler configuration
  • ui/src/router/components/form/components/ensembler_config/typeOptions.js - Addition of pyfunc ensemblers to the list of available ensembler options
  • ui/src/router/components/form/components/pyfunc_config/* - Addition of a new form to fill for pyfunc ensemblers
  • ui/src/router/components/form/validation/schema.js - Update to schema validation for pyfunc ensemblers
  • ui/src/services/ensembler/PyFuncEnsembler.js - Addition of new pyfunc ensembler service

Minor Changes to Turing SDK

@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from 8487f9b to c4f7c9c Compare March 2, 2022 09:13
@deadlycoconuts deadlycoconuts requested a review from a team March 2, 2022 10:05
@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from c4f7c9c to 3634821 Compare March 3, 2022 06:32
@deadlycoconuts deadlycoconuts changed the title Make UI support pyfunc ensembler Make UI/SDK support pyfunc ensembler Mar 4, 2022
@deadlycoconuts deadlycoconuts changed the title Make UI/SDK support pyfunc ensembler Make UI/SDK support pyfunc ensemblers Mar 4, 2022
@deadlycoconuts deadlycoconuts changed the title Make UI/SDK support pyfunc ensemblers Add UI/SDK support to pyfunc ensemblers Mar 4, 2022
@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch 2 times, most recently from 5236ab4 to de0b0ab Compare March 7, 2022 07:37
@deadlycoconuts deadlycoconuts marked this pull request as ready for review March 7, 2022 08:01
@deadlycoconuts deadlycoconuts marked this pull request as draft March 7, 2022 08:01
@deadlycoconuts deadlycoconuts marked this pull request as ready for review March 7, 2022 08:20
@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from de0b0ab to 6ed052a Compare March 7, 2022 08:52
@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from 6ed052a to ff1d3b3 Compare March 7, 2022 09:44
@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from 15f3577 to 07b73e9 Compare March 9, 2022 08:54
];

if (!!dockerConfig) {
items.push({
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This ensures that the router details screen is minimally able to display a Pyfunc ensembler's name and ID (but not the dockerConfig related stuff) should the image building job fail during router deployment.

@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from d5e455b to 45d7639 Compare March 10, 2022 04:51
@leonlnj
Copy link
Contributor

leonlnj commented Mar 10, 2022

thanks, lgtm!

sdk/turing/generated/model/id_object1.py Outdated Show resolved Hide resolved
sdk/turing/generated/model/id_object1.py Outdated Show resolved Hide resolved
sdk/turing/generated/model/id_object1.py Outdated Show resolved Hide resolved
Copy link
Collaborator

@krithika369 krithika369 left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks for the comprehensive PR!

@deadlycoconuts deadlycoconuts force-pushed the make_ui_support_pyfunc_ensembler branch from 217b39d to ec080a3 Compare March 11, 2022 02:15
@deadlycoconuts
Copy link
Contributor Author

Thanks a lot everyone for the detailed comments, gonna merge this! 🚀

@deadlycoconuts deadlycoconuts merged commit 8493f39 into caraml-dev:main Mar 11, 2022
@deadlycoconuts deadlycoconuts deleted the make_ui_support_pyfunc_ensembler branch March 11, 2022 02:34
@deadlycoconuts deadlycoconuts self-assigned this Mar 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants