announcements

Polyaxon v1.8: Graph View, New Rendering Capabilities, Customizable Notifiers & Tuners, UI actions

Today, we are pleased to announce the v1.8 release of our MLOps platform, a stable version that brings several new rendering and UI features and scheduling enhancements.

Graph View

Polyaxon provides a DAG runtime that allows users to automate workflows and define complex dependencies between reusable components.

In a previous version we released the timeline view:

timeline-view

This release brings a new graph view to provide other ways of exploring pipelines:

graph-view

The graph view has several features to explore the upstream/downstream relationships and can open all runs in flyout mode similar to the table or timeline views.

New rendering capabilities

Polyaxon UI has several media and rendering capabilities and the artifacts tab can automatically render several file types.

This release introduces some new capabilities:

  • Netron rendering

netron-rendering

  • Notebook rendering

notebook-rendering

To learn about all visualizations and rendering capabilities, please check the tracking integrations section.

Besides the new rendering capabilities, the artifacts tab was improved to allow showing the raw content for extensions with automatic rendering, and it will not attempt at rendering non-recognized extensions, instead, it will show a button to allow users to choose if they want to render those files in a text editor.

Customizable Tuners

Polyaxon has a built-in serverless optimization engine; the way Polyaxon schedules a hyperparameter tuning pipeline is by creating suggestions using a tuner. The tuner is the component responsible to query previous observations and suggesting new configurations to explore.

In this release, we are making all built-in tuners customizable, we just moved all tuners to the public component hub. A user can just provide a custom component to change the default tuning behavior.

For instance to override the default Hyperband tuner you just need to provide your own component instead of the default implementation.

Finally, the scheduler is now using the joins abstraction to query the historical observations, not only this will automatically create upstream/downstream edges between the tuner and the observations, but also it will help with debugging the behavior of each iteration.

Customizable Notifiers

Similar to the tuners, Polyaxon now provides fully customizable notifiers and they are all hosted on the public component hub.

Since v1.5, Polyaxon moved the default notifications logic to hooks. Hooks are an automation feature and a more customizable interface that execute post-done operations based on a component reference, for example, a user can both send a slack notification and start a tensorboard after their experiment is successful:

hooks:
  - trigger: succeeded
    hubRef: tensorboard
    disableDefaults: true
    params:
      uuid: { value: '{{ globals.uuid }}' }
  - trigger: succeeded
    hubRef: slack
    connection: slack-notification

The current notifiers’ implementation was also improved and includes several more information, like the inputs and outputs:

slack-notifiers

Users can easily clone the default implementation and add custom information or charts to send to their favorite channel.

Start Tensorboard from the UI

If your runs have Tensorboard, Polyaxon will automatically show a new button to start a Tensorboard service based on that run, this will reduce the need to copy the UUID and start the operation with the CLI:

single-run-tensorboard

If the current run has already a downstream Tensorboard, the UI will show an icon to redirect the user directly to the Tensorboard service.

running-tensorboard

If a user has a custom Tensorboard component, they just need to use their own reference instead of the default Tensorboard component.

Custom UI Actions

Similar to Tensorboard, which is just a specific use case, Polyaxon UI has two new buttons to trigger custom downstream operations. These buttons allow triggering an operation manually using the UI based on the context of the current run. In order to leverage those buttons, you will need to register a component that expects a run or multiple runs and performs some logic on their outputs or artifacts.

For a single run:

custom-action-single-run

For a selection of runs:

custom-action-multi-runs

Other improvements

Query Manager

We improved the query manager by fixing a regression that coerced values to strings which prevented filtering by scalar/bool params. This change will also allow providing a much better filtering experience over the next following releases, instead of providing aliases like outputs and metrics, the query manager will try to detect the type automatically and allow/disallow a specific filter or operation.

The query manager was also extended to allow filtering by wait time, duration, and upstream/downstream operations.

CLI

The CLI will automatically use a list of default ignore patterns if the user uses the -u/--upload argument without initializing a project, which should prevent uploading directories like .git.

The ignore manager was also fixed to honor some .gitignore rules that were not respected before.

Learn More about Polyaxon

This blog post just goes over a couple of features that we shipped since our last product update, several other features and fixes are worth checking. To learn more about all the features, fixes, and enhancements, please visit the release notes.

Polyaxon continues to grow quickly and keeps improving and providing the simplest machine learning layer on Kubernetes. We hope that these updates will improve your workflows and increase your productivity, and again, thank you for your continued feedback and support.

Subscribe to Polyaxon

Get the latest posts delivered right to your inbox