capitalone / rubicon-ml

Capture all information throughout your model's development in a reproducible way and tie results directly to the model code!
https://capitalone.github.io/rubicon-ml/
Apache License 2.0
129 stars 34 forks source link

publish visualizations via intake #444

Closed ryanSoley closed 4 months ago

ryanSoley commented 4 months ago

Is your enhancement request related to a problem? Please describe

we need to publish viz widgets in the catalogs before we can read them in #441 and #442

Describe the solution you'd like

rubicon_ml.publish should optionally take in a single viz object and publish it as an entry in the output catalog. the arguments for the entry should be all the arguments that are input into the viz object itself so we can recreate it later. the name can just be a placeholder for now

for example, if we have two experiments and an experiment table, the output catalog should look something like this:

sources:
  experiment_1b7b2bbf_b128_4eff_9eef_154f4da079e2:
    args:
      experiment_id: 1b7b2bbf-b128-4eff-9eef-154f4da079e2
      project_name: classifying penguins
      urlpath: ./rubicon-root
    driver: rubicon_ml_experiment
  experiment_cdd11d98_204f_4664_9110_6f73d06b9d15:
    args:
      experiment_id: cdd11d98-204f-4664-9110-6f73d06b9d15
      project_name: classifying penguins
      urlpath: ./rubicon-root
    driver: rubicon_ml_experiment
  # NEW SECTION STARTS HERE
  experiment_table:
    args:
      metric_names: ...
      ...
    driver: rubicon_ml_experiment_table

Additional context

in the future we may only need to take in viz objects. we can just get the experiments from viz.experiments, e.g.

publish(experiments=experiments, viz=experiments_table)

would create the same catalog as

experiments_table = ExperimentsTable(experiments=experiments)
publish(viz=experiments_table)  # also catalogs experiments in `experiments_table.experiments`
ryanSoley commented 4 months ago

closed via #450