Skip to content

Latest commit

 

History

History
181 lines (123 loc) · 12.2 KB

CHANGELOG.md

File metadata and controls

181 lines (123 loc) · 12.2 KB

CHANGELOG

0.8.0 - Jan 21, 2022

🎉 Features Added

  • Tired of hitting "View Selected" over and over? You can now toggle "auto refresh selection table".

    • with the toggle active, the selection table will refresh whenever you make a select plotted data manually.
  • hover.config gives you the ability to customize the behavior of the package.

    • Choose your own color palette by setting hover.config["visual"]["bokeh_palette"].
    • Change selection table image styles through hover.config["visual"]["table_img_style"].
    • Change tooltip image styles through hover.config["visual"]["tooltip_img_style"].
    • try hover.config.hint() to list the possible options!

❗ Backward Incompatibility

  • hover>=0.8.0 may not be compatible with bokeh<3.0.
    • This is because we made low-level bokeh function call changes to keep up with 3.0 in this version.

0.7.0 - Feb 25, 2022

🎉 Features Added

  • Image and audio support through SupervisableImageDataset and SupervisableAudioDataset.

    • all other functionalities are similar to SupervisableTextDataset
    • BokehForImage and BokehForAudio implemented search based on vector similarity.
  • SupervisableDataset

    • can compute arbitrary-dimensional embedding instead of only 2D.
      • this is through a new method: compute_nd_embedding.
      • same signature as compute_2d_embedding except for additional keyword argument dimension=2.
    • embedding column names have changed.
      • used to be "x" and "y".
      • now will be "embed_<n>d_<m>" where m = 0, 1, 2, ..., n-1.
  • all explorers (BokehBaseExplorer subclasses) have more selection options.

    • in 0.6.0, you could toggle "cumulative select".
      • this corresponds to "union" in set operations.
    • starting 0.7.0, you could also choose "intersection" or "difference".

❗ Backward Incompatibility

  • [MultiVectorNet] is removed and no longer under experimentation.
    • we decided not to include noisy-label components in hover.
    • future built-in recipes may use those mechanisms from other libraries like cleanlab.

0.6.0 - Feb 12, 2022

🎉 Features Added

  • SupervisableDataset

    • you can now edit selections, like kicking points from current selection or updating cells on the fly.
  • snorkel_crosscheck

    • allows you to label and filter through functions.
    • you can change those functions dynamically without having to replot!
  • all Loggable subclasses, i.e. datasets and explorers

    • traceback handling for all methods has switched to rich.
  • all BokehBaseExplorer subclasses

    • Selections can now be made cumulatively. Tap on multiple points to view or label at once, without the overhead of re-plotting in between.
      • this option is invoked through a checkbox toggle.
      • by default, built-in recipes link the toggle between all explorers in the recipe.
  • VectorNet

    • now has widgets for configuring training hyperparameters.
      • currently only supports changing epochs.
      • will support changing learning rate and momentum.
    • added a method prepare_loader() that takes SupervisableDataset and returns a torch DataLoader.
  • MultiVectorNet new class under experimentation

❗ Backward Incompatibility

  • SupervisableDataset

    • used to have dual data structure: dataframes and lists of dictionaries
      • now only uses dataframes, i.e. dataset.dfs stays but dataset.dictls is removed.
  • active_learning signature change

    • no longer takes vectorizer or vecnet_callback as inputs
    • will instead take VectorNet directly.

0.5.0 - Apr 30, 2021

🎉 Features Added

❗ Feature Removed

  • A few JavaScript callbacks are converted to Python and will no longer work in static HTML:

    • search widget responses (i.e. glyph color/size changes) in all explorers;
    • synchronization of data point selections between explorers, e.g. in the linked_annotator recipe.
  • BokehDataAnnotator

    • Removed the "Export" button -- it is now with SupervisableDataset instead.

🔨 Fixes

  • Keyword arguments to recipes (simple_annotator, for example) are now correctly forwarded to Bokeh figures.

    • Note that figure tooltips (the info box that show up upon mouse hover over data points) will append to, instead of replace, the built-in tooltips.
  • active_learning's dev set during model re-train will now fall back to using the train set if the dev set is empty.

0.4.1 - Jan 31, 2021

🔨 Fixes

  • Label -> Glyph legends are removed from BokehDataAnnotator and BokehSoftLabelExplorer.

    • instead, SupervisableDataset now keeps track of labels and their corresponding colors consistently with explorers which use colors based on labels.
    • context for those who might be interested: the tie between legends and renderers makes legends hard to read when its renderer's glyphs vary a lot. BokehDataAnnotator and BokehSoftLabelExplorer dynamically update glyphs and fall into this scenario.
  • BokehSoftLabelExplorer now "smartly" calculates fill_alpha.

    • it does so through the mean value and standard deviation of soft scores.
  • Clicking the Commit button on the interface of SupervisableDataset used to fail to reflect changes in the population table when a new class shows up.

    • this is now resolved. Clicking either Commit or Dedup will reflect any population changes.

0.4.0 - Jan 3, 2021

🎉 Features

  • Added loading text before each hover.recipes.<recipe> renders in BokehJS.

    • displays an additional dot every a few (5) seconds.
    • potential security concern displays traceback information if something breaks in the scope of the recipe.
    • this can be useful, for example, when you are visiting a remote Bokeh server with no access to the logs.
  • Partial towards image data support

    • hover.core.explorer.<explorer> tooltips are now capable of displaying images from the image field (http://url/to/image.png or file:///path/to/image.jpg) of your DataFrame.
  • Partial towards audio data support

    • hover.core.explorer.<explorer> tooltips are now capable of running audio playbacks from the audio field (http://url/to/audio.mp3 or file:///path/to/audio.wav) of your DataFrame.

❗ Backward Incompatibility

⚠️ Deprecation / Naming Changes

  • hover.core.explorer.BokehCorpusExplorer: please use hover.core.explorer.BokehTextFinder instead.

    • This is a naming change for consistency; the class functionality stays the same.
    • The original class name will be removed in a future version.
  • hover.core.explorer.BokehCorpus<XXX>: renamed to hover.core.explorer.BokehText<XXX> for consistency with text/audio/image features.

  • hover.core.neural.create_vector_net_from_module: this makes more sense as a class method of hover.core.neural.VectorNet.

    • The original function will be removed in a future version.
    • The class method now takes either a loaded module or a string representing it. It (or the predecessor function) used to accept only the string form.

🔨 Fixes

  • Legend icons used to be broken when a legend item corresponded to multiple glyphs. This is now resolved at the cost of dropping renderer references from the legend item.

    • the context is that a Bokeh legend item shows its own icon by combining the glyphs of its renderers. The combined icon can be confusing when the glyphs' filling colors add up this way, even if they are the same color.
  • Active learning: added a model.save() step in the training callback so that the model resumes its progress on each callback, rather than starting over

  • Cleaned up inconsistent logging format in the hover.core module.